R·ex / Zeng


音游狗、安全狗、攻城狮、业余设计师、段子手、苦学日语的少年。

2018 回顾与展望

时间过得真快啊,回想起跨年的时候,仿佛就在前天。(……

不管怎么说,2018 年已经过去了,还是要稍微总结一下的。

技术

作为一个程序员,看到自己去年的技术总结,如果觉得里面的内容特别水,说明这一年的长进还是很大的。

今年除了学到了更多新知识,还对两个比较著名的开源项目做了一点微小的贡献。由于发现前端的内容基本是以抄 API 为主(只有听没听说过,没有会不会),于是我开始追求一些更深入的东西,例如 Babel、代码高亮、不可变数据结构、性能优化。

前端方向

首先要提的就是:把整个网站的样式重写了一遍,看起来终于有一点自己的设计风格了。用到了一些新技术,例如 CSS 变量、ES6 语法、Service Worker、Manifest,当然也没打算支持旧浏览器。看到错误页面的小伙伴们,对不起啦。此外首页和博客首页都用 Lighthouse 测了一遍,照着修改意见改了一遍,应该还比较可以了。

跟同事做了一个可以快速生成 Vue 的中后台页面的库(第二期往后我就没参与了),了解了一些 Vue 底层相关的知识。不过感觉我跟那个同事的倾向相反,他喜欢将自己的东西直接嵌入到 Vue 中,我则坚持尽量保持工具函数的形式。这也是我喜欢 React 胜于 Vue 的最主要原因:Vue 里面的黑盒子太多了,我不喜欢将各种功能(甚至业务)耦合在一起。

于是我现在有一半的时间在写 React。三月份接触了 Reselect 和 react-dnd,前者类似于带缓存的纯函数,后者是一个还能用得顺手的拖拽库。我负责的一个面单编辑器项目需要做大量的性能优化,这也让我对 React 底层的了解更深入了一些。

对 JavaScript 的底层原理了解的也更多了,包括事件循环、一点 v8 的优化、从 asyncPromise 等,但我现在几乎抛弃了 JavaScript,开始全职写 TypeScript。有了类型推导和自动补全,确实能减少掉大部分的运行时错误。但有些库缺少类型文件,这很让人苦恼。

由于对 Prism.js 库的高亮不满意,于是给它提了三个 Pull Request:识别 JS 函数参数、识别 CSS 变量、对 JS 正则内部继续高亮,其中前两个被合并了,最后一个作者在想要不要将其从 JS 中独立出来,单独作为一个语言。这三个 Pull Request 让我对正则表达式了解的更细致了(Prism.js 主要的原理就是通过正则表达式)。值得一提的是,我在那个项目中遇到一个德国小哥,跟我同时开始提 Pull Request,但他几乎霸占了 Pull Request 列表的一页半,还帮我评审了我那两个 JS 相关的 Pull Request。他后来成了那个项目的 Collaborator,而我只是个 Contributor……

后端方向

由于公司的需求,我开始用另一半的时间写 Go。我对 Go 的印象就是“库比较多的 C”,确实如此,Go 的语法几乎说不上灵活:两个人如果有相同的思路,并且都听从了 Golint 的建议,那么极有可能写出完全相同的代码……公司用的是 Gin 和 Gorm 这两个库,加上我自己选的 govalidator,感觉都挺简洁的。

被 gin-cors 和 govalidator 各坑了一次,都是我去翻源码加上单步调试解决的。前者可能作者有自己的理由,后者我给作者提了一个 Pull Request——由于只有几行的修改,很快就被合并了。

至于数据库,之前在大学的时候搞过,但完全自己来设计一套符合业务要求的 RBAC 的数据表,一开始还是把我难住了。此外 Gorm 也让我真正开始用到了 ORM,我也一直在思考它与关系代数之间的联系。

运维方向

Cloudflare 推出了 Domain Registrar 服务,我把我的三个域名都从 Godaddy 转移了过去,发现一年可以省一百人民币,超开心!

由于公司有时候需要我们自己写 Nginx 配置文件,我被一些配置坑了一次,因此专门把 Nginx 的基本流程看了一遍,差不多理清了,以后再写配置文件终于不用照葫芦画葫芦了。

安全方向

以匿名身份水了一次 SUCTF 招新赛,发现在几道题脑抽了没有做出来的情况下居然还到了第五名,说明水平还没有退化的那么快,甚至有些操作我是第一次自己尝试,例如手动盲注。

生活

三月初换了个工作,来到了深圳。我对新公司很满意:首先是薪资比之前翻了三倍,其次是福利好(商业保险、加班餐、零食饮料供应、团建等),而且对上下班时间不怎么控制,只要完成任务即可,同事之间的关系也很不错。之前看群里有人说“家里小孩生病,周报晚一点发”,Leader 回复“不急,家里的事情优先”;以及我有一次在办公室呆到了八点,被深圳这边的老板看见了,他说:“年轻人这时候应该在酒吧啊,你们不要在这儿呆的那么晚。”种种细节让我觉得,如果配上合理的管理,不影响项目进度的话,员工们会很满足。

来了深圳之后,几乎每个周末我都要至少出去玩一天,而且我还出奇的能走,因此深圳南边的大部分地方我都逛了个遍,地铁线也记的差不多了,甚至哪些地方有汉堡王我都能脱口而出。

去年正式开始玩推特,在年底之前已经成为了“千 fo 大佬”。不靠发福利秀才艺谈论政治,只靠发食物照和秀公司,居然还能有那么多跟随者,还是很开心的。这一年,我在推上认识了各种各样的大佬:美食推主、黄推推主、技术大佬、女装大佬……还跟其中的四个人面了基。以前长辈们说的“不要随便见”的沙雕网友,现在反而成为了可以互相倾诉、互帮互助的伙伴。

对香港的好奇心一直没有减退,于是让朋友帮忙买了八达通和香港手机卡,在谷歌地图上看街景,研究香港的各种政策和第一次参观的路线。后来公司帮忙交满了七个月社保,满足了落户条件,于是果断落了深户、办了港澳通行证,有了一周一次的香港签注。短短一个月的时间我去了三次,把中环、弥敦道、大帽山好好的转了一遍。

由于墙和审查的收紧,我逐渐减少了墙内社交平台的活跃度。除了 QQ 和微信这种跟家人和同事聊天必须保留的账号以外,其它的我能注销的就注销了,微博这种不好注销的我便删掉了全部的内容、清了好友、改了个人信息。墙外的帐号统一绑了香港手机号并尽量都开通了 OTP 验证,安全系数会高一些。

跟平儿开始了异地的生活。偶尔我会回南京,或者平儿来深圳,不过也只能小聚几天。之前对异地还是挺恐惧的,这九个月的经历让我放下了心中的顾虑——我们的感情不但没有变淡,反而愈发的亲密起来。

开始逐渐替换掉设备上的盗版软件和游戏、不定期与同事或推友聚一聚、加强身体锻炼、兴趣使然的学日语、注重自己的外在形象、扩展更多的人脉、努力成为一个段子手……这些生活方面的努力,我之前在做,之后也会继续做下去。

展望

经过了一年的升级,我又该换地图了。接下来的挑战大概有:

  1. 为更多的开源项目提交代码;
  2. 成为同事公认的技术大佬;
  3. 做更多的技术分享,写更有干货的技术文章;
  4. 提升日语水平至可以书面交流的程度;
  5. 更加适应香港,并去一趟澳门和台湾;
  6. 把手机里各种音游 A 的成绩玩到 S,S 玩到 MM。

对于我现在的能力来说,还是有一些难度的。不过即使现在的生活已经很安逸了,也需要一些挑战,毕竟在舒适区呆久了是会出问题的。

版权声明:除文章开头有特殊声明的情况外,所有文章均可在遵从 CC BY 4.0 协议的情况下转载。

这是我们共同度过的

第 1157 天