引言
天津的冬天还真是冷呢,竟让来自哈尔滨的我丝毫没有感受到南方的温暖。
伴着新年的氛围,一起回忆2019年都经历了什么吧。
重构桌面
今年的桌面重构了不下五次,怎么整都感觉放不下,这是最终的桌面效果,感觉还挺舒服的。
左边写代码,右边浏览器,中间iPad看网课,手机就是用来接诈骗电话的。
说起诈骗电话,大家校招时谨慎填写个人信息,部分招聘网站会泄漏电话、邮箱等信息。
双的智慧
之前使用Hexo写博客,因为没有备份数据,导致Linux炸掉后所有数据都没了,从此明白了“双”的智慧。
多一次不是冗余,是保险。
我在Excel中详细记录着每一笔资金动向,同时也在Web软件中记账,计两次,保障高可用,数据同时丢失的概率很小。
管理小孩们给甲方录单词,两人一组,一个人录,一个人审,下一单元反过来,这才有了高准确率,两个人同时错的概率很小。
私有笔记云,本地数据备份,同时实时上传到iCloud,Mac和iCloud机房同时炸的概率为0。
项目管理
Github上的Project Activity曲线彰显了忙碌的一年。
项目总结:翘课重构alice(脑电波),迷之需求apply(周一要),地铁高峰huasoft(第二站),绝对安全exam(先上线)。
ps:翘课的前提是这门课你都会,去上课就是浪费时间。
Github 2019
今年在Github贡献2,586点,同比去年的1,343点增长92.554%,效率翻倍。
12月9日,全年最高,贡献58点。
最近发现我们小组在Github上开源的实验有人fork,百度地图与智能收费算法足够压轴的了,为了不被骂,顺手更新了一下README。
更新项目的时候发现bower实在太慢了,就按照官网的教程升级到yarn,yarn与npm同源,实践中发现,部分依赖在bower上与在npm上的项目名与版本号不同,依赖实在是太多,修改成本高,最终放弃,在README中说明可能遇到的问题与解决方案。
设计模式
今年的一大收获就是遇到了多种设计模式的应用场景。
不同条件创建对象,就是工厂模式(SMSServiceFactory)。
拥有对象,未获悉创建方式,并添加功能,就是装饰器模式(final logger)。
拥有类,并添加功能,就是代理模式(LimitQueue)。
全局配置,单例模式。类加载时数据ready,饿汉模式(Configuration);类加载时数据不ready,懒汉模式,我还自豪地使用了私有内部类Holder替代双重校验锁实现(Holder)。
订阅与通知,观察者模式。
秋招
挺顺利的,苏州的工作,上海的工资,远离996。
计算了我在Github上的代码行数。
| Project | commit | Additions |
|---|---|---|
| courseManageSystem | 44 | 3,030 |
| beautifulArticle | 197 | 5,907 |
| instrument | 208 | 63,035 |
| alice | 57 | 58,426 |
| checkApplyOnline | 23 | 16,049 |
| huasoft | 483 | 124,110 |
| exam | 351 | 32,771 |
| 总计 | 1,363 | 303,328 |
30万行代码只是为了让我的总结更有指导意义。
如果你是真的热爱一门职业,千万不要把它当成工作,生活的压力会让人在他最擅长的领域受挫、甚至违心,最终厌倦、放弃。
我没有名人的经历,更没有鲁迅的文采,我只是站在一个普通人的角度,总结自己的过去,希望那些与我志同道合,因为996而被迫离开互联网行业的人不要放弃梦想,我坚信no dream, no idea, no code,没有梦想的代码是失去灵魂的。
no dream, no idea, no code,我将这句话送给所有热爱代码的人,同时也作为我Github的签名,来唤醒被埋没的梦想。
新技术
今年的技术可多了,让我们整理整理。
我们启用了前端三大框架之一的Angular,TypeScript让类型更规范,分包加载,让应用启动更快。
第一次商用TypeScript小程序,腾讯照搬的Angular。
通过与C++的交互学会了JNA,同时了解了过去从没听说过的C++新数据类型。
NIO的Spring Cloud Gateway,内网的JWT,认证的OAuth,授权的Spring Security,分布式的Spring Session,最佳实践的Junit 5单元测试。
微服务,RPC与消息队列,负载均衡,虽然我们目前还没有完全过渡到该架构,但目前的积累足够我们在微服务架构上取得优异成绩。
Github Actions CI,尝试了一下,生态还不够完善,感觉对docker的支持不够好,目前应该还没有Travis好使。
同时还有我们些没有启用的技术(都是大厂的同学分享给我的),服务器监控Glances、Jenkins CI,或许这些工具有我们目前所未知的优点吧!
任务完成情况
去年的总结给自己制定的目标:
- 优秀地实现
Android实验 - 学习
Spring Cloud及相关组件 - 学习流行的算法
- 锻炼身体
目标完成情况
Android实验采用RxJava、RxAndroid、Retrofit等多种主流开源框架实现,同时也明白了为什么许多API设计都不直接使用状态码,而是{code: 0, data: {}, message: 'xxxx'}的形式,应该是RxJava的问题,如果观察void时,会报错,因为void相当于没有数据,怎么通知呢?当时研究了好几天也没整出来,最终放弃了,所以不得不保证每个接口返回的http数据都包含body。前台Observable<ResponseEntity<void>>,保证不报错。
这个秋天,除了猪肉,就是微服务。很自信微服务学得还是不错的。
学习算法,这个就算了。书都被我拿来垫显示器了,等我什么时候能看懂的话再学吧,但书真的是好书。
锻炼身体,2019年12月28日,踢球继续。
新年目标
最近养成了“写批注”的好习惯,这个传统要一直地传承下去。
目标一:读书。《深入理解Linux内核》、《图解TCP/IP》,无论什么时候,基础永不过时。
最近公司也发来了所有软件开发岗位员工入职前必读书单,都是基础书籍,开始补基础。
目标二:开源组件。以前就觉得自己写得肯定没有已有的仓库写得好,最近发现其实有的组件用着很难受,并且从零开始搭架子太浪费时间了,所以趁着自己有时间的时候,维护自己的开源组件,提高效率。
目标三:锻炼身体。
目标四:未知的第二兴趣。
想要培养一个新的爱好,能够满足精神世界,让自己更快乐。
加油,奥利给!
2020年的前夕,秉烛夜游,明月楼头。新的一年,新的开始!
本文参与了SegmentFault思否征文「2019 总结」,欢迎正在阅读的你也加入。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。