天津的冬天还真是冷呢,竟让来自哈尔滨的我丝毫没有感受到南方的温暖。
伴着新年的氛围,一起回忆 2019 年都经历了什么吧。
今年的桌面重构了不下五次,怎么整都感觉放不下,这是最终的桌面效果,感觉还挺舒服的。
左边写代码,右边浏览器,中间 iPad 看网课,手机就是用来接诈骗电话的。
说起诈骗电话,大家校招时谨慎填写个人信息,部分招聘网站会泄漏电话、邮箱等信息。
之前使用 Hexo 写博客,因为没有备份数据,导致 Linux 炸掉后所有数据都没了,从此明白了“双”的智慧。
多一次不是冗余,是保险。
我在 Excel 中详细记录着每一笔资金动向,同时也在 Web 软件中记账,计两次,保障高可用,数据同时丢失的概率很小。
管理小孩们给甲方录单词,两人一组,一个人录,一个人审,下一单元反过来,这才有了高准确率,两个人同时错的概率很小。
私有笔记云,本地数据备份,同时实时上传到 iCloud , Mac 和 iCloud 机房同时炸的概率为 0 。
Github 上的 Project Activity 曲线彰显了忙碌的一年。
项目总结:翘课重构 alice (脑电波),迷之需求 apply (周一要),地铁高峰 huasoft (第二站),绝对安全 exam (先上线)。
今年在 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 总结」 ,欢迎正在阅读的你也加入。