今秉烛夜游,登明月楼头

引言

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

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

image.jpg

重构桌面

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

image.jpg

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

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

双的智慧

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

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

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

image.png

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

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

image.png

项目管理

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

image.png

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

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

image.png

Github 2019

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

image.png

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

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

image.png

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

image.png

设计模式

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

image.png

不同条件创建对象,就是工厂模式(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的签名,来唤醒被埋没的梦想。

image.png

新技术

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

image.png

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

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

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

image.png

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

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

image.png

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>>,保证不报错。

image.png

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

image.png

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

image.png

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

image.png

新年目标

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

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

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

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

image.png

目标三:锻炼身体。

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

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

加油,奥利给!

image.png

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

image.png

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

阅读 941

推荐阅读
Tomorrow
用户专栏

明天,你好

316 人关注
136 篇文章
专栏主页