2020 年度总结
2020 年注定是写入史册的一年,这一年发生了太多事情,于人类,于国家,于个人都是令人难以忘怀的一年。
对于我而言,这一年成长飞速,收获颇多。下面来对这一年做一个简单的总结。
关于工作
今年的工作内容主要包括几个方面:横竖屏适配、Flutter 落地、辅导导流需求、Swift 迁移、业务迭代。随着业务的迭代,项目的复杂度也在增加,导致实现需求的难度也在增加。在做业务需求的过程中,没有太多成就感,遇到的琐碎的问题比较多,有时间好好思考一下这些问题的来源和解决方式。
关于技术
关于技术,可以算得上是工作 3 年以来收获最多的一年。上半年,我们开始探索跨平台技术,学习 Flutter。Android 和 iOS 两端各自投入了 3 个人(到后期两端各 1 个人),花了差不多三个月的时间,从零开始学习 Dart 编程语言,Flutter 开发框架,搭建混编环境,解决工程问题、编译问题,建设基础库、插件,实现业务模块,到最终落地发版。期间还做了一次主题为《Flutter 状态管理实践》实践的分享。这样一次快速学习新技术并将其应用实践的经历,对于个人的提升是非常显著的。更重要的是,通过这次 flutter 经历,极大地提升了解决问题的能力。在 flutter 开发中遇到一些网上也没有人遇到过的问题,如:编译问题、环境问题等,面对这些未知问题时,调整心态,从容面对,从本质去挖掘、梳理,总是能解决的。
另外,今年自己的 shell 脚本编写能力也得到了极大的提升,也算是完成了自己多年的夙愿。在做 flutter 项目期间,阅读了很多 flutter 自带的一些脚本,让自己对 shell 脚本不再那么生疏了。下半年,自己业余时间写了一个 shell 工具——NOX。NOX 是一个基于 zsh 的脚本管理工具,以 nox 为主命令,将脚本名称、脚本存储路径转换为子命令,并支持 tab 自动补全子命令、脚本选项。项目的命名、功能的构想、结构的设计、代码的实现、Logo 的设计、wiki 的构建,让我综合能力得到了很大的提升。当然,自信心的提升也是非常显著的,一举抹除了读研时被大神们碾压的后遗症。
今年,系统地阅读了两个开源项目的源码,RxSwift 和 oh-my-zsh。RxSwift 源码多而复杂,上半年阅读它花了我不少时间,不过结果是令人满意的,我基本搞清楚了 RxSwift 的设计,及其背后的思想,并且还产出了一篇文章——《RxSwift 核心实现原理》。在阅读了 RxSwift 源码之后,面对复杂的开源项目源代码时,也从容了许多,oh-my-zsh 就是一个佐证。在做 NOX 项目时,为了找寻一些设计灵感而去阅读了 oh-my-zsh 的源代码,代码阅读非常顺利,也产出了一篇文章——《源码解读——ohmyzsh》。总体而言,阅读开源代码的收获还是挺多的,关于如何阅读开源代码,自己也积累了一些经验,能够为后续进一步学习提供帮助。
关于学习
学习方面,看了些博客和文章,有些是源于工作,为了解决当时的一些疑惑,有些是源于眼缘,类似于公众号文章,社区文章,满足了一时的求知欲,还有些是源于乐趣,比如xxx科技周刊、xxx读书笔记。这些大多数文章和博客大多数没有进行深度学习。
今年业余时间研究了一些主题,如:iOS 证书幕后原理、Swift 性能优化、Swift 泛型与协议底层实现、RxSwift 核心实现原理、Flutter 状态管理、zsh 自动补全、函数式编程、Mach-O,同时顺带也产出了一些文章。不过,总体来说少了一些,这里的主要原因是持续两个多月的校招面试和持续三个多月的 flutter 项目,导致业余学习时间的连续性不够。
关于读书
今年读的书并不多,寥寥数本而已。文学类的书读完了《红楼梦》和《水浒传》,读得比较细,也算是完成了读完四大名著的夙愿。历史类读了《极简二战史》,今年对于历史文化产生了比较大的兴趣,不过看的书少了点。技术类读了《计算机程序的构造与解释》、《Flutter 实战》、《Ruby 基础教程》,零零碎碎阅读了《深入解析 Mac OS X 和 iOS 操作系统》。对于技术书,以前是为了读而读,现在读书是为了作为参考资料而去读,今年有很多书是为了查阅某些内容而去节选地进行阅读,没有在此罗列。
关于运动
疫情关系,今年上半年基本没有运动。后面因为项目和校招面试,没有怎么运动。大概到10月份才开始打球、游泳。运动的频率相比去年也小了不少。游泳技术没怎么提到,蝶泳还是做不到轻松蝶,自由泳倒是可以一直游,但是比较慢。上半年,一直在家办公,基本上一整天都是盯着电脑,导致视力散光度增加了不少,来年要时刻注意保护眼睛。
新年愿景
希望新的一年在硬实力方面,提升架构设计、重构方面的能力;在软实力方面,提升技术影响力、团队影响力、业务掌控力。