引言

天津的冬天还真是冷呢,竟让来自哈尔滨的我丝毫没有感受到南方的温暖。

伴着新年的氛围,一起回忆2019年都经历了什么吧。

重构桌面

今年的桌面重构了不下五次,怎么整都感觉放不下,这是最终的桌面效果,感觉还挺舒服的。

左边写代码,右边浏览器,中间iPad看网课,手机就是用来接诈骗电话的。

说起诈骗电话,大家校招时谨慎填写个人信息,部分招聘网站会泄漏电话、邮箱等信息。

双的智慧

之前使用Hexo写博客,因为没有备份数据,导致Linux炸掉后所有数据都没了,从此明白了“双”的智慧。

多一次不是冗余,是保险。

我在Excel中详细记录着每一笔资金动向,同时也在Web软件中记账,计两次,保障高可用,数据同时丢失的概率很小。

管理小孩们给甲方录单词,两人一组,一个人录,一个人审,下一单元反过来,这才有了高准确率,两个人同时错的概率很小。

私有笔记云,本地数据备份,同时实时上传到iCloudMaciCloud机房同时炸的概率为0

项目管理

Github上的Project Activity曲线彰显了忙碌的一年。

项目总结:翘课重构alice(脑电波),迷之需求apply(周一要),地铁高峰huasoft(第二站),绝对安全exam(先上线)。

ps:翘课的前提是这门课你都会,去上课就是浪费时间。

Github 2019

今年在Github贡献2,586点,同比去年的1,343点增长92.554%,效率翻倍。

129日,全年最高,贡献58点。

最近发现我们小组在Github上开源的实验有人fork,百度地图与智能收费算法足够压轴的了,为了不被骂,顺手更新了一下README

更新项目的时候发现bower实在太慢了,就按照官网的教程升级到yarnyarnnpm同源,实践中发现,部分依赖在bower上与在npm上的项目名与版本号不同,依赖实在是太多,修改成本高,最终放弃,在README中说明可能遇到的问题与解决方案。

设计模式

今年的一大收获就是遇到了多种设计模式的应用场景。

不同条件创建对象,就是工厂模式(SMSServiceFactory)。

拥有对象,未获悉创建方式,并添加功能,就是装饰器模式(final logger)。

拥有类,并添加功能,就是代理模式(LimitQueue)。

全局配置,单例模式。类加载时数据ready,饿汉模式(Configuration);类加载时数据不ready,懒汉模式,我还自豪地使用了私有内部类Holder替代双重校验锁实现(Holder)。

订阅与通知,观察者模式。

秋招

挺顺利的,苏州的工作,上海的工资,远离996

计算了我在Github上的代码行数。

courseManageSystem443,030
beautifulArticle1975,907
instrument20863,035
alice5758,426
checkApplyOnline2316,049
huasoft483124,110
exam35132,771
总计1,363303,328

30万行代码只是为了让我的总结更有指导意义。

我没有名人的经历,更没有鲁迅的文采,我只是站在一个普通人的角度,总结自己的过去,希望那些与我志同道合,因为996而被迫离开互联网行业的人不要放弃梦想,我坚信no dream, no idea, no code,没有梦想的代码是失去灵魂的。

no dream, no idea, no code,我将这句话送给所有热爱代码的人,同时也作为我Github的签名,来唤醒被埋没的梦想。

新技术

今年的技术可多了,让我们整理整理。

我们启用了前端三大框架之一的AngularTypeScript让类型更规范,分包加载,让应用启动更快。

第一次商用TypeScript小程序,腾讯照搬的Angular

通过与C++的交互学会了JNA,同时了解了过去从没听说过的C++新数据类型。

NIOSpring Cloud Gateway,内网的JWT,认证的OAuth,授权的Spring Security,分布式的Spring Session,最佳实践的Junit 5单元测试。

微服务,RPC与消息队列,负载均衡,虽然我们目前还没有完全过渡到该架构,但目前的积累足够我们在微服务架构上取得优异成绩。

Github Actions CI,尝试了一下,生态还不够完善,感觉对docker的支持不够好,目前应该还没有Travis好使。

同时还有我们些没有启用的技术(都是大厂的同学分享给我的),服务器监控GlancesJenkins CI,或许这些工具有我们目前所未知的优点吧!

任务完成情况

去年的总结给自己制定的目标:

  1. 优秀地实现Android实验
  2. 学习Spring Cloud及相关组件
  3. 学习流行的算法
  4. 锻炼身体

目标完成情况

Android实验采用RxJavaRxAndroidRetrofit等多种主流开源框架实现,同时也明白了为什么许多API设计都不直接使用状态码,而是{code: 0, data: {}, message: 'xxxx'}的形式,应该是RxJava的问题,如果观察void时,会报错,因为void相当于没有数据,怎么通知呢?当时研究了好几天也没整出来,最终放弃了,所以不得不保证每个接口返回的http数据都包含body。前台Observable<ResponseEntity<void>>,保证不报错。

这个秋天,除了猪肉,就是微服务。很自信微服务学得还是不错的。

学习算法,这个就算了。书都被我拿来垫显示器了,等我什么时候能看懂的话再学吧,但书真的是好书。

锻炼身体,20191228日,踢球继续。

新年目标

最近养成了“写批注”的好习惯,这个传统要一直地传承下去。

目标一:读书。《深入理解Linux内核》、《图解TCP/IP》,无论什么时候,基础永不过时。

最近公司也发来了所有软件开发岗位员工入职前必读书单,都是基础书籍,开始补基础。

目标二:开源组件。以前就觉得自己写得肯定没有已有的仓库写得好,最近发现其实有的组件用着很难受,并且从零开始搭架子太浪费时间了,所以趁着自己有时间的时候,维护自己的开源组件,提高效率。

目标三:锻炼身体。

目标四:未知的第二兴趣。

想要培养一个新的爱好,能够满足精神世界,让自己更快乐。

加油,奥利给!

2020年的前夕,秉烛夜游,明月楼头。新的一年,新的开始!

本文参与了SegmentFault思否征文「2019 总结」,欢迎正在阅读的你也加入。

03-05 13:23