专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
程序员的那些事  ·  清华大学:DeepSeek + ... ·  昨天  
程序员的那些事  ·  OpenAI ... ·  14 小时前  
程序员小灰  ·  清华大学《DeepSeek学习手册》(全5册) ·  昨天  
程序员的那些事  ·  成人玩偶 + ... ·  4 天前  
51好读  ›  专栏  ›  SegmentFault思否

张喜硕:今秉烛夜游,登明月楼头丨思否年度征文

SegmentFault思否  · 公众号  · 程序员  · 2020-01-04 10:00

正文

# 思否年度征文

一起来总结你的 2019 #




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


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


—— @张喜硕


*本文为 SegmentFault 思否社区征文活动参选稿件,了解活动详情,请点击文章底部阅读原文。





No.1

重构桌面



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


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

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



No.2

双的智慧



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

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

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


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

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



No.3

项目管理



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


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

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



No.4

Github 2019



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


12 月 9 日,全年最高,贡献 58 点。

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


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



No.5

设计模式



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


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

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

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

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

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

No.6

秋招



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

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


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

如果你是真的热爱一门职业,千万不要把它当成工作,生活的压力会让人在他最擅长的领域受挫、甚至违心,最终厌倦、放弃。

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

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



No.7

新技术



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


我们启用了前端三大框架之一的 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,或许这些工具有我们目前所未知的优点吧!



No.8

任务完成情况


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

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

目标完成情况

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


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







请到「今天看啥」查看全文