回顾 2019,充满着与 2018 的不一样。每一段你经历过的快乐亦或是难过的时光,在若干年后都是一杯值得你细细品味的咖啡。
年底,必须要做的一件事就是总结。
在写这篇文章的时候,我在想我的 2019 是什么样,感觉过去的一年很忙碌,忙碌中有时很充实有时又很痛苦,不去细细回想还真不知道这一年是怎么过来的,所以借此机会也总结下我的 2019,算是对自我的复盘吧。
2019 年,我的关键词是:多接触。
工作
2019 年 2 月加入现在的公司——万表网,负责前端的开发和管理前端小组的工作。这一年我主要做了以下事情:
运营公众号——《前端格仔杉》
这个公众号是属于我们前端小组自己运营的公众号,弄这个公众号的初衷主要是给伙伴们对前端基础查漏补缺,所以文章的形式是“每日一题”。但是“理想是美好的,现实很骨感”,最终效果不是很好,因为大家都不怎么喜欢看,而且题目的类型很有限,只能是选择题,不可能存在开放性题目。

后面的形式改为了收集文章转发或者想发自己想发或者原创的技术文章,时间也改为了一周两次更新,由每个同事轮流更新,怎么说,有好也有不好把,好的是能让技术开发接触公众号运营,了解自媒体的运作,特别的是,我兴哥每次发的都是“爆文”。而不好的是对大家来说这是一个额外的工作量,或多或少是个负担。
截至现在,一共粉丝量 31 人,发了 45 篇文章。

两个数量对我来说不重要,重要的是坚持,能和大家一起做这份事情。下年也会继续坚持更新文章。也会想有新什么的形式可以输出。
参加开发者大会
2019 年参加了不少技术大会,对于技术大会可能会有一部分“过来人”感觉不屑一顾,因为大多数时候技术大会看起来像是广告大会,分享内容可能往往也过于“空泛”,参加的既得收获其实并不高。
参加这些大会的感受其实也不是抱着能学到什么技巧和有多少干货收获的心态去参加了,而是出去增长见识,了解这个圈子的形式以及市场的趋势,不要“坐井观天”,这才是重要。如果一个程序员永远只完成公司分配的业务需求,那么很容易停滞不前。
今年参加了 4 个分享会,主要有:
- 技术方面:
- HUAWEI Developer Day•广州站•沙龙
- 极客学院&腾讯 TAPD 极客开放日
- 腾讯 Live 开发者大会
- 管理方面:
- TGO 混鹏会的 GTLC 广州分站——协同&进化
如果要数干货,那么最多的是要数第四个 TGO 的会议,一边认真听讲来自广州不同互联网公司的 CTO 分享他们的主题,一边结合自身思考,还是挺有意思。

后面也带着前端小组去参加腾讯 Live 开发者大会,还是会有一些灵感产生,比如 serverless,异常监控工具选择以及可视化组件的工具。当然也被他们吐槽说:很无聊,我什么都没学到。

管理前端小组
总结今年做的比较好的一件事情也就是管理前端小组,但是做的不好的也是这一点。
框架选型
在来万表之前,前端的主要技术框架是:JQuery。针对当时现有的开发人员的状况,最终选择了 Vue.js 为基本的框架。 主要有两大层面:
- 服务端渲染:Nuxt.js
- 小程序:Mpvue 和 uni-app
知乎上和我加入的很多技术群里,讨论的最多的是:到底应该用哪个框架好? 在我眼里,这个问题应该也只有刚毕业出来的大学生才会问这个问题。面对着 Never Stop 的需求,写多了还真的发现无论是 jQuery 还是别的 MVVM 框架,本质都差不多。
每个框架都有每个框架的优缺点,也没有说哪一个是最优的。看热门前端框架和库的 NPM 下载量对比就知道,React 在国际上仍是 No.1 库,并且还在增长,而 jQuery 作为老牌库仍占据第二的位置。至于 Vue.js,可能放眼于国内,那么使用的情况可能就不同了。

至于小程序方面,并没有使用原生,而是使用了 Vue.js 为语法的第三方框架——Mpvue 和 uni-app。考虑到万表的业务需求,不只是一个端的问题,而是面对一个需求要多个端实现。
使用第三方框架有利也有弊:
有利的是开发人员可以写熟悉的 Vue.js 语法,重要的是一套代码可以多端使用。当然这是个伪命题,实现的效果来看不能很完美地兼容,还是需要改很多东西;而且不同端(比如 M 站和小程序)使用的一些库可能有所不同。
其中做的比较好的是:
- 一个需求如果要从小程序迁移到 M 站(M 站迁移到小程序),迁移的速度就比较快。
- 万表商城从 mpvue 转移到 uni-app,主要实现了万表商城要打包成多个平台,现在已经可以将一套代码编译成微信小程序以及百度小程序。
不利的是影响编译性能以及开源的框架不再维护。
这里特指 mpvue,mpvue 越来越少维护了。其中里面的很多性能问题也没有解决,尤其是长列表加载的问题。所以商城和奢品也在慢慢往 uni-app 里迁移。
其他工具也有使用,比如:
- Jenkins
- 蓝湖
- 阿拉丁统计
- sentry 异常
- TAPD 敏捷协同工具
周会与技术分享
周会是每周都开的一个习惯,最近年底前端事情不算多,所以开的次数没那么频繁,集中在前面的日子。一般都是大家汇报这周的工作情况以及讨论下周的工作内容。下周的工作内容也会由项目组长去收集,放到 tapd 里面。不过效果来看,组长并没有坚持更新,接下来应该要多督促项目的小组长重视这块工作。

内部技术分享的次数屈指可数,一共只有:
- 公共组件库的探讨
- git-submodules 与 npm 的认识
- TAPD 的培训
- markdown 的语法以及高阶使用
- 从前端角度认识 Flutter
总体来说技术分享这个还没形成一个氛围,一般讲的人就那几个。接下来应该要多培养成员踊跃分享,至少形成一股氛围。
开发规范
规范并没有限定那么死板,更多的是靠工具来规范化。主要体现在:
-
代码规范:eslint+husky+lint-staged+prettier 为了实现团队统一的代码风格及代码检查工作流,使用了上面 4 种工具,当中 prettier 应该是最好用了,至于 husky+lint-staged 有些成员的机器上并没效果。至少 prettier 起了一个很重要的作用,这 4 个暂时使用在 Vue 项目,至于 Jquery 的项目还是没有形成统一规范。
-
Git 规范:Gitlab-flow 工作流 最初提出 git-flow 工作流思想,事实上是行不通,因为万表的需求每天都有,几乎每天都要发代码,所以很难形成版本管理。所以为了满足持续发布,所以选择了 gitlab-flow 思想。为了让成员避免敲命令的风险,也推荐了使用 git 可视化工具——gitKarKen。

-
提交规范:@commitlint/cli+@commitlint/config-conventional 这个更多作用是规范提交的 message。效果不是特别明显。
面试
每一次的面试都认真,花的时间也不少。知道每个面试来的人来到万表确实很不容易。其中时间最长的一次是坚哥的面试,花了快 3 个小时。 问的问题也不是上网找的题库,都是工作中常见的问题,问得比较细。就看开发人员平时有没有留意而已了。所以一般不会看到“什么是闭包,什么是作用域”这些概念题。这一年下来面试了不同的人,厉害的与不厉害的,都见到过,最满意的人当然也是现在在职的小伙伴,每个人各有各的特色。

接下来计划培养成员面试别人的能力,来一场高手较量,练练他们的胆量,让他们在别的能力也有所成长。
整理文档
万表的业务还是挺多的,如果只靠人脑记住和代码注释,那估计很多人死翘翘了。结合之前在 confluence 上整理的文档,后面也细分了以下分类:

至于项目文档做的还不够好,主要是写完了组件也没有说立即写到文档上。有时候有些通用的业务组件不知道怎么使用,要问组件的作者。接下来会统一编写项目组件文档的格式,和使用快速生成组件说明的工具来生成文档。
聚餐
我在想是不是广东人做领导的话都有一个特点,爱聚餐?前端小组平均每 2 周聚餐一次,而且每次去的地方都不一样,什么坑都踩过——牛花粥,烤鱼,牛肉火锅,猪肚鸡,湘菜等等。如果说到“九号私厨”,可能会笑。
下了班去吃吃喝喝,其实是挺开心的。最初每次聚餐都会邀请女嘉宾,饭桌上话题最多就是八卦了,不聊技术,所以“站在八卦的风口”是这样形成的,汉龙永远都是知道得最多的那个人。
遗憾的是,每次吃完都忘了拍照。所以到现在一张合照都没有。
学习和运用 typescript
2019 年,是 Typescript 的大年。TypeScript 在前端环境中越来越受欢迎,已经有 80%的开发人员承认他们想在下一个项目中使用或学习 TypeScript。使用它的优点也有很多:
- 代码更容易理解
- 更少的错误
- 代码更容易实现
- vscode 提示更智能
- 代码更易于重构
typescript 在 vue 项目里实践了几个项目,除了普通的字段和函数声明的参数需要加类型检测外, 更多是结合前端接口来使用。具体来说就是,把 swagger、rap、dip 等多种接口文档平台,转换成 Typescript service 和类型文件。手动把 swagger 的接口转成 interface 是痛苦的事情,然而有工具 sm2tsservice 就帮我们自动完成。

目前团队的项目仍然是 JavaScript,还没有一个很好的时机可以引入 typescript,毕竟这个东西要真正使用好起来,这绝对也不是容易的事情。否则就很容易变成 anyscript,前后端没打通的话,就只能是 any 了。
研究跨平台框架——flutter
研究这个技术,更多的也只是停留在研究的层面,运用层面还是有待考究。
之前给部门分享过《从前端角度认识 Flutter》,前端成员也对此有所认识,其中也有同事跑过。flutter 的思想有很多和前端的思想是类似的,所以入门这块比较容易上手,比如:
- Widget 组件也虚拟 Dom 和组件的概念,
- dart 语法跟 JavaScript 类似。
等等。实际运用起来还是等等吧。
不足之处
部署问题
Jenkins 线上部署前端项目依然问题存在,由于以 jquery 为框架的老项目和以 vue.js 为框架的新项目二者共存,加上项目的目录结构不一样,二者打包的命令暂时无法统一。jquery 为框架的老项目需要登录服务器后台手动操作命令行,vuejs 为框架的项目使用 Jenkins 部署,但是新项目也会存在偶尔因为 pm2 的原因打包失败,需要登录服务器后台手动操作命令行,对服务器的使用造成一定的风险。解决方案可以是:所有新旧的项目统一使用 Jenkins 部署。vue.js 为框架的项目可以采用 K8S 的技术构建和部署,不需要再使用 PM2 进程管理;jquery 为框架的项目部署方式可以放在 Jenkins 处理。
项目管理的问题
有很多 egg 项目,组内成员由于目前都是接触 vue.js 框架居多,碰到 egg 项目就有些力不从心,尤其对业务的不熟悉,很多时候都需要汉龙一个人回顾和协助。
项目管理没有达到预期。主要体现在项目小组长各自的责任没有做好,比如没有按时在 tapd 写每周工作情况给到组长。很多需求还是要经过组长这边去分配,尤其是商城这块,需要思考如何改善。
成长问题
组内新老成员担心自己一直重复写业务需求,担心自己未来进步不大。之后会除了技术能力要求以外,还会从从别的方面去培养。
生活
2019 年的兴趣比 2018 年多了几个。
养猫

一只不够还要第二只。很多人羡慕能养猫,现在对于我来说,家务就是头等大事——每天要吸尘,拖地,铲屎等。幸福的背后还是要付出很多的。 之前也在早会给部门的人分享了一个宠物行业在 2019 年的情况。市场份额差不多可以和整个游戏市场来看,养猫也成为了很多一线城市的选择,毕竟养猫比养狗方便。同时也出现了宠物美容等新兴产业,还有满天都是的“袖虎宠物”,由它推广的自助洗护。
采耳
推拿,足疗玩不够,2019 年还踏入了采耳行列。 发现现在市场上采耳店越开越多,越来越火爆,反而盲人推拿按摩越来越少。调查带来的产业也有采耳培训班。相比于足浴,身体按摩保健,采耳可以夸张的说是躺着赚钱了。25 分钟 50-60 元不等。越来越多的人到一些专业采耳店里面去掏耳朵,一张沙发躺椅,一张床趟在上面享受采耳,安静又休闲又时尚,采到舒服的时候可以静静入睡,平常睡眠不好的人都可以轻松入睡,甚至有的人还会发出鼾声。一觉睡醒,浑身舒泰,那种舒适的感觉无与伦比。
减肥


读书看电影
关于读书,每天阅读 15 分钟,这是 2018 年保持下来的习惯。 关于电影,2019 年看得比较多,还养成一了个习惯——去电影院看深夜场。以为深夜没什么人去看电影,原来也是自己想多了。有些复刻版的电影还是挺不错的,比如《海上钢琴师》等;还有些 有些国内比较晚,而且网上已经有高清版上映的电影也是不错的,比如《祈祷落寞时》,《调音师》等。
旅游
今年旅游的地方也不是特别多,比较满意的也只有福建·福州·平潭岛。为了看海与追蓝眼泪,目的都实现了。盗一张网络图片,自己那时候拍的很糟糕。

总结
总之 2020,大家加油。忧愁时写一篇文章,快乐时编一段人生。
愿诸位未来不会十年如一日,在面对世间万般讲理与不讲理时,终能找到属于自己的落处,心安处即汝乡。
