碎碎念
来杭州也有快两年了,这个时间不长,也不算短。很早就想有个自我总结了,一直拖着。今年也快结束了,这两年也没白干,自我感觉学到了很多东西。还是记录一下,作为一个阶段性的总结,回顾一下前面的知识,并展望一下后面的计划,也让未来总结的时候有个对比的资料。
项目
从去年大概5月份开始(2019),我参与了公司Flutter开发。之前的规划中也是准备后面会学习一些移动开发,没想到这么快。转到Flutter开发后,虽然项目已经有一些雏形,不过还有很多基础功能没有建设很好。期间参与了一些基础建设,如FlutterBoost接入、网络库封装及请求缓存封装、组件库建设、图片上传、WebView封装、自动化打包脚本等。也参与了业务模块的开发,如员工业绩、商品客户新建、登录模块、打印分享、商品客户搜索等。
基础建设中,我印象最深刻的还是网络请求缓存封装,由于我们产品是高度依赖插件控制的,所以很多场景需要动态化,这就导致一些页面展示的比较慢,我写了一个基于sql的本地存储缓存功能,根据请求url、参数与请求头来判断是否命中缓存,命中缓存先返回给前端,然后再去请求网络数据更新本地缓存并再次返回前端刷新页面,这极大的提高了特别是设置页的用户体验。这个功能虽然简单,但在写代码过程中让我对面向对象编程有了更深入的思考,比如如何构建缓存层、缓存管理层、请求层,如何让他们解耦从而使后期维护及重构变得更加方便。
在业务模块开发中,我对最开始做的员工业绩管理模块印象更深,这个功能让我的开发思维从Web前端逐渐转向移动开发,知道了移动端能够深度依赖本地化存储,更加体会到了拥有静态检查语言的优势。
我也在学习Android与iOS开发,主要学习其中的一些特性比如多线程、服务等。
在参与开发中,我系统学习了Flutter的一些基本知识,看了很多源码,如路由、事件等
Flutter知识体系
Dart
Dart是一个语言,因为Flutter的流行,它的生态也越来越完善,VScode插件、AS插件功能都十分丰富。相比JavaScript,我更喜欢Dart,它语法丰富且简单,使用方便,还可以通过AOT编译成字节码以达到更快的运行运行速度。它提供了丰富的字符串、数组、Map、函数的方法,更有便捷的面向对象使用方案。更加重要的是它可以很方便的查看源码方式,让使用者更加容易通过源码来理解方法的含义。它使用Future来定义异步,通过类似JavaScript中事件循环来执行异步。通过线程定义isolate(取决于实现的平台),更高效的利用系统资源且能够不阻塞UI渲染。它提供了丰富的工具库,我使用了analyze
、json_ast
、convert
来分析代码并生成代码,test
库进行单元测试,让我们更加放心的进行开发。
责任
做一个需求,需要有责任心,需要花时间在理解需求及相关的业务场景、开发方案制定、开发、测试,需要更加主动。有人提出问题,需要及时跟进。
全局观
小的方向:开发一个需求不能仅仅只理解自己开发的部分,需要深入理解需求背景,相关业务场景 大的方向:开发只是解决问题的手段,不是方法
产品思维
需要用产品的思维来看待需求而不是开发者的角度,产品经理提出的方案也不一定是完美的,遇到问题需要及时沟通交流方案。
沟通
沟通需要高效,抛出问题、理解问题、解决问题都是一种艺术,需要重视。
人际关系
你是怎样的人,拥有的人脉总是跟你差不多。提升自己,才会认识更多大牛。
没做好的地方
- 工作之间的调度
随着接触的业务和内容爆发式的增加,工作总会被各种问题打断,如何平衡其它同事的问题,让自己效率最大化,需要我自己有一个适应和方式。
- 工作与学习的调度
工作内容增加,给学习留下的空间更小。学习目标没有达到,可能会自己给自己借口从而让学习目标延迟。或者学习目标定得太大,导致学习混乱。今年需要重视这个问题,让自己学习目标能够清晰并有效推进。 3. 沟通的效率 4. 目标的实现
思考与展望
对于现在的我,应该更像是一个应用层程序员。面对市场上繁多的编程语言、框架,我需要不停的学习,技术也只停留在如何调用api解决现有问题。我需要在编程上有更大的野心。现在,我对开发有一个较大的目标——成为一个跨端方向的高级工程师。我目前选择的道路是
- 研究Android底层(编译与UI绘制)
- 把Android学习到的知识移动到iOS端
- 研究跨端技术,成为一个跨端领域的专家
对于我今年的目标,我有以下期望:
编程能力
- Android深入理解UI绘制相关原理(主),做一个自己实现的demo
- 架构设计(辅)注:当一个人在一个领域有较大的认知的时候,才有能力成为一个领域的架构师
- 提高数据结构、算法、计算机网络基础能力(辅)
沟通能力
- 用最佳方式表达自己的想法
- 理解别人表达的意思并能做出响应
工作方式
- 能持续优化我的工作效率
其它
- 学习总结,开始有产出
- 能开始一个我自己的小而美的软件
- 实现一个Flutter版的MVVM框架