小姜哥的2019年总结

前言

时间过得飞快,又一年过去了,又到了年根儿。

2019年主要有收获两个,一是有了一个女儿,马上八个月大,可爱同时调皮;另一个是头一次带二三十人的团队,两个对我来说都是不小的挑战。

由于真的很忙,过去一年几乎没有写任何博客,借这次总结多写一些。

团队

因为支持的需求方进一步增多,也会采用了一些方法来保证顺利进行,下面简单列举两例。

需求对接

为了更好的理解清楚需求,评审前或者评审时搞清楚如下几个问题。

1、做这个需求的原因?他会给用户带来什么价值?

2、什么样的用户会用到这个特性?他在什么场景下使用?他会怎样使用?

3、达到这个目的有没有其他手段?是不是一定要开发?

4、这个需求如何衡量他的有效性?

为了更好的落地,评审后做如下几件事儿。

1、列清楚会上不确定的点,写清楚需要谁在什么时间确定或者解决,发到项目开发群里。

2、列清楚需要谁在什么时间提供哪些资源,发到项目开发群里。

3、自己的技术方案是什么样的,有哪些不确定性,事前研究。

4、出现不符合预期的情况及时反馈,大家一起解决。

需求的最终点是上线或者下线,对,是的,对于长期在线上的产品需求的终点是上线,对于有时效性短期在线上的产品需求的重点是下线,在终点之前的所有工作都是在为终点做准备。

我曾经见过一些个人或者团队只闷头开发,不规划整个开发流程和节奏,不规划上线方案,干到哪里算哪里,最后加班加点把项目搞上线,上线之后出一堆问题。

高手都是在预防问题,正如扁鹊说他大哥医术最好,二哥次之,他最差。因为他大哥是治病于病情发作之前,二哥是治病于病情初起之时,他是治病于病情严重之时。

与UI同学合作

之前给UI同学做过一次分享,期间提到了如何保证UI质量的问题,讨论的结果是所有涉及到UI的改动都得经过UI同学。

当然为了保证工作效率实际执行的方法是涉及到颜色、尺寸、位置的改动都需要UI同学参与。注意参与这两个字,也就是说不一定出UI稿,比如要改某一个颜色值,UI同学直接提供一个颜色值也是可以的,如果真的要出UI稿才能保证质量那么UI同学和前端同学都会有自己的判断,大家都是很专业的。

招聘 & 面试

今年有多位新同学加入到团队,有校招,有社招,整体上团队的实力又有了提升。既然大家加入到这个团队,我就要帮助大家成长,我不完全认可成长是个人的事儿,成长需要团队氛围,以前我也是被领导从愚昧的巅峰推下去的。

今年面了很多人,期间也发生了一些有意义或者有意思的事儿,下面列举几个典型。

校招

秋季校招加春季校招累计招聘了5个同学,面了多少人,粗略估计得有七八十吧。

校招我们是很认真的,把所有同学都招来不现实,我们在面试过程中会给新同学一些学习建议。主要是怕他们被个别技术网红给带跑偏了,老实说有个别技术网红为了推销自己或者和自己利益相关的东西讲话不太中肯,甚至有一些网红做的有点过分了。

面试 VS 吵架

我们招聘会先电话聊一下,这样省我们的时间也省候选人的时间,一般我都会以简单的问题开头,然后会逐步深入。

有一份简历看着非常棒,只是工作变动频繁了一点,我打电话过去,接下来给我印象深刻的一句话是“我工作好几年了你问我这么初级的问题是怎么想的”,看来问简单了,深入一下吧,答的还可以,那我得看看到底啥水平,再深入点“这个在工作中一般用不到,你们公司怎么做技术的”。

聊到这里我知道他不适合我们了,简单客气了一下,挂了电话,同时我也知道他为啥工作变动频繁了。

架构师梦

一个来自滴滴的候选人,毕业两年。我问换工作是出于什么考虑,他说他想做架构,将来成为架构师,团队满足不了他。我还是从简单问题开始,发现他基础还是比较薄弱的,以他的能力应该不会有哪个稍微有点技术实力的团队让他来做架构。我觉得关键还是提升自己的能力,技术能力+做事能力,这两个能力都强你领导自然就会找到你。我曾经有一段工作经历是被领导提出了“无礼”要求,让我放下手头工作去做一些更有挑战的工作,现在想来真的非常感谢这位领导。

手淘P6

之前猎头推荐了一个手淘的前端,P6,我面的。

言语中透漏着自信,我很喜欢,我特别喜欢有自信的人,而且我都觉得面试对他没什么难度。

之前做的移动端,说自己做的产品会展示在手淘或者其他淘系App。

我问在前端如何区分手淘还是其他App。

答曰JSBridge。

我说用UA可以吗?

他说也行,但是没有JSBridge好。

这个超出了我的认知,我问为什么,他说因为UA不靠谱。

我问为什么不靠谱,他说因为JSBridge是App开发同学写的。

我问UA不是App开发写的吗?

他说不是。

我问,那为什么别人家的App没写成手淘,而只有手淘的UA写成了手淘。

答曰,反正就是UA不靠谱。

后来又主动要聊https,说https其实不安全。

我说不安全有没有什么前提。

答曰没有。

我问,那就是说只要别人想攻击你就绝对不安全了?

他说对。

我说我现在手边的电脑没有加任何代理,访问淘宝会不会有安全问题?

他说会。

我问为什么。

他说因为中间可能会被人拦截。

我说我没加代理,并且没有信任任何额外的根证书会有问题吗?

他说会,因为证书可能被盗用。

我说盗用在别的域名吗?

他说对。

我说盗用到别的域名浏览器会有提示吗?

答曰不会。

聊到这里我就放弃了,面试要敢于说,别瞎蒙呀。另外,靠谱这个事儿很重要,如果一个候选人简历或者聊得过程中有明显造假成分,在我印象里会大打折扣。

自信与自负

这个也是猎头推荐的,面了一下还可以。我也了解了一下他以前工程化方面的做法和工作流程,不算优秀。到了最后几个问题。

我问如果你加入到我们团队你能给团队带来什么?

他说我能给团队带来规范流程,吧啦吧啦说了很多,什么提效质量什么的说了很长时间。

我耐心听完了,我问有啥问题要问我吗?

他说没有(这时他还不知道团队情况,包括团队的工程化、技术栈、规范和流程)。

我说不想了解一下这边的技术栈和团队情况以及规范和流程吗?

他说HR自然会告诉他。

我问他为啥HR会告诉你呢?

他说他们公司都是HR来讲。

聊到这里聊不下去了,本来想抢救一下,我尽力引导了,面试找工作是不是得考虑一下目标公司的情况?毕竟你没牛到公司围着你转的程度,能融入团队很重要。

猎头

从一个收购案例开始,陌陌上市有钱了,收购了发展中的探探。

看看猎头怎么说的“探探的发展目前还不错,前不久不是把陌陌合并了,在社交这个领域,它们家还是可以独当一面的”,这样一说探探马上形象高大了起来,把上市公司陌陌给合并了,陌陌市值70多亿,而且还是美元,探探100%的股权卖了7亿美元。按照这个逻辑,我把我的博客作价一分钱卖给陌陌(赔钱卖),那就可以这样说“小姜哥的发展目前还不错,前不久不是把陌陌合并了,……”

诚实这个事儿我看的特别重,你可以骗我,但是请精心设计一下,不要用粗制滥造的谎言欺骗我。

小结

今年面试了很多人,很多同学的离职原因是公司倒闭或者公司多月没法发工资,真的挺同情大家的,但是我也觉得这是一个不错的成长时期,以前可能各种原因掩盖了技术方面的不足,早点暴露出来反而是好事儿。

在一个完备的平台你想做什么都有基础设施支持,会让有错觉,我想说的是平台的能力不等于个人能力,当你离开了你依赖的平台的时候还能徒手做出原来水准的工作那才能证明你的真正个人能力。

技术

标准

与前端同学息息相关的HTML和DOM标准,WHATWG“战胜了”W3C,赢得了标准的话语权,可喜可贺,浏览器厂商控制更靠谱一些。

前端微服务

我第一次听到这个“前端微服务”这个词是去年,其实在我听到这个词的时候我们早就这么做了。

早在十几年前就有人用frameset和iframe把一些异构的页面整个到一起,这算什么?是ESB吗?

我们项目拆分的比较开一些,这样每个维护起来都比较轻量。假设所有业务放到一个项目里,二三十人一起开发,加上我所在公司业务及其复杂,那简直就是灾难。今年又进一步做了拆分,尤其是仅短期使用的代码剥离出去,让长期维护的代码变的更轻量。轻快,轻快,轻才能快。当然拆分的度很重要,要是一个页面拆成一个项目那更灾难。我的一个老师在讲结构化编程的时候问了一个问题,“是不是拆的越小越好”?我当时的回答是不是,因为管理每个模块的成本会很高。老师接着说,“对的,如果一行代码一个模块想想会怎么样”?

前端高可用

前端有没有高可用?这样来说吧,我每天上班骑的自行车有没有高可用?维基百科这样描述了高可用“指系统无中断地执行其功能的能力,代表系统的可用性程度”。

一般的没有轮训或者推送的场景可能前端确实不容易出问题,只要有一套稍微成熟一点的工程化体系开发上线即可。我们的场景是socket一直推送,socket出问题会轮训,如果要上线对数据结构有变化的代码会不会导致用户无法正常使用呢?

关于5G

5G是个好东西,大家都怎么说,说了各种好处,我觉得有一些就是瞎胡闹。比如5G时延小可以解决远程手术的问题,那我想问为啥不用可靠性更高的光线?还有人说可以带火物联网,比如冰箱、洗衣机、电视等等都能联网,我不认可这个观点,家里用的电器和5G没啥关系吧,光纤入户买个WIFI不就得了,毕竟我们不常带冰箱洗衣机出门。

有人说5G速度快,不见得吧,得分在哪里,城市里基站铺设的很密集,荒山野外你总不能满上遍野铺设基站吧,不经济不实惠。其实5G早就设计好了,对于这种情况使用低频段,跟4G速度差不多。

写这些是想大家对待新东西别脑子过热,很多场景是意淫出来的,这样讲吧,3G视频通话多少人用过?当时各大新闻报纸没少报道,还在说以后出轨困难了。后来就像大家知道的,我们用上了微信视频通话,出轨好像并没变困难,反正微博压力挺大的。

自媒体时代,谁都出来写,靠不靠谱不好说,他们也很难擅长所有领域,很多还都是人云亦云,加速了正确知识传播的同时也加速了错误知识的传播。

前端框架

暂时还没有能战胜Vue和React的,想写点额外的,很多人对前端的认知还是10年前的传统前端。尤其那些以前自己看过一点前端后来一直在做后端或者不在一线写代码的同学,还停留在jQuery时代。

小程序 & 小游戏

在推标准化,今年有了本质的进展,有标准对于前端同学来说是好事儿,群雄乱战前端同学会很辛苦。但是也别指望完全统一,这么多年了浏览器就没完全统一过,一个道理。

Node.js

今年如期迎来了Node.js v12,代号Erbium,同时2019年一过Node.js 8也就寿终正寝了,建议大家用最新版,用那些已经不再支持的版本等同于“挖坟”,而且虐自己也没啥意思。

Deno

作为一个Runtime,还不适合放到生产环境使用,但是估计我将来可能会喜欢。

ES2019

这个好像没有啥可写的,因为很多人写了,我就不写了。

工程化相关

webpack依然是主要的bundle工具,也延续着自己版本帝的风格,4.X版本2019年发布了十几个版本,5.X版本alpha + beta发了四十多个版本。具体有哪些变化请点击 https://github.com/webpack/changelog-v5/blob/master/README.md 查看。
babel7今年成为了主流,我们团队今年也做了全面升级,毕竟6太老了,印象里4年前就在用babel6。

http3

或者叫QUIC,发音“quick”,当大家都在讨论HTTP/2优点的时候谷歌又在搞事情,想进一步做完HTTP/2没做完的事儿,同时规避一下HTTP/2引入的问题。啥是伟大的公司,这就是伟大的公司。只是现在浏览器基本上还不支持,不过马上就支持了。

Typescript

今年真正写了东西上线了,虽然是个人的东西,刚开始写难受一点,写几天之后发现真的很爽。

安全

安全是个永恒的话题,永远不过时。

npm今年还是出现了几次安全问题,简单列举几个。

3月某国际银行闹了个笑话,因操作失误把自己的private package发成了public packge,更搞笑的是3年了才发现,之后找Amazon、Cloudflare等删包,这让我想起了前几年大疆。

6月加密货币钱包Agama依赖的package被植入恶意代码,npm官方的说法是他们一起阻止了一千三百万美元的资产损失。攻击者的手段为钓鱼,守株待兔,感兴趣可以看这个链 https://blog.npmjs.org/post/185397814280

7月Purescript npm安装脚本被植入恶意代码。

12月npm cli曝了一个文件写权限漏洞。

此外,阿里开源的fastjosn今年也爆了两个漏洞。

个人成长

过去一年读了很多书,还是有比较多的收获,无论技术方面还是非技术方面。

非技术方面如《杜月笙传》、《认知天性》等,还有一些历史方面的,当然有一些没有完全读完,或者有一些干脆我不打算读完了(写的不好),读历史是一辈子的事儿,贵在坚持。

技术方面今年读书比往年少一些,读的层次提升了一些,更多的还是通过网络的方式来获得。

Spring Boot加强了一些,因为我们团队还负责多个服务端web项目,看了一些其他一些服务端中间件,接下来会重点去补一下服务端能力。

此外去年看了openresty + lua,学习了一段时间,今年在继续看,进一步学习nginx后对它有了更深刻的认识。同时今年花了一点点时间看了下njs,对前端同学更友好一些,虽然也发展好几年了,但还不适合生产环境。这里多说一句,VSCode Remote真的挺好用,很喜欢。

其他

我还是闲不住,喜欢自己亲自动手去尝试,虽然工作忙且娃小,如果在古代我一定是一个优秀的工匠。今年攒了两台电脑,拆了一台电脑,还卖了两台电脑。

第一台配置如下:

CPU:酷睿 I5 9500,6核6线程,睿频4.4

主板:华硕 B365M-A,MATX

内存:芝奇8G * 2,DDR4,2666MHz

显卡:核显,Intel的核显不玩儿大型游戏没问题

硬盘:台电NVMe固态硬盘,240G

机箱:大水牛S0203,美观度一般,放在显示器后面看不见

电源:机箱配套电源

显示器:家里有

整体上很顺利,小插曲是主板只支持8pin的电源接口,电源只有4pin的接口,买的时候忘记check,所以中途买了一条4pin转8pin的转接线。

装了双系统,其中一个是Windows,我现在已经用不习惯Windows了。

整体算下来花费约3K,性能相当棒,开很多应用都不会卡,有一种事半功倍的感觉,一定程度上叫做“工欲善其事,必先利其器”。

当然也被我的一个朋友调侃了,说花这么少的钱组装电脑而不是买更好的品牌电脑配不上带二三十人团队的身份。

拆的电脑:

八年多前我买过一台笔记本,宏基5750G,花了3699,因为自己加内存和换硬盘,所以成本在大约4K。用了很多年,我用它做了很多事儿,后来用Mac就很少再用了。因为很旧,如果卖估计能卖个两百三百的,都不如拆机卖散件。

我之所以拆了它是因为想“废物”利用,拆出CPU、内存、硬盘,其他卖废品。

第二台配置如下:

CPU:酷睿 I3 2332M,笔记本拆机获得

内存:南亚易胜,DDR3,4G,1333MHz,笔记本拆机获得

主板:全新HM65,ITX主板

硬盘:朗苏256G固态,msata接口,花了160

机箱:无牌itx机箱

电源:机箱自带,类似笔记本电源

显示器:用不到

除了拆机零件外花了大约500,装了CentOS7.7,无图形界面,运行速度还是挺可观的,24小时不关机。

卖掉的电脑:

其中一台是Cubieboard 4,也是个开发板,卖掉的原因是他的CPU是32位的arm架构,本来arm软件不好找,还是32位的,可玩性差的太多。

另一台是一个原因类似,32位的凌动CPU,软件缺失,此外就是运行速度很慢。

如果不卖也只能放着落灰,等到它们彻底被淘汰扔掉,还不如多少卖点钱,以第二台为例,买的时候花了268,用了三年卖了105。

小结

写这些其实是想说心态,扳着手指算了一下,毕业很多年了,从一个十五六人的前端团队中年纪最小的同学已经变成了二三十人团队中年纪最大的同学。很多人随着年纪的增长失去了折腾的能力和劲头,我这些年还是有增无减,可能是心态还比较年轻。

另外,我想说的是,以上这些都是我在带娃的时候完成的。我拆电脑,娃在旁边看,抢螺丝刀,用手去拿拆下来的组件,把手伸到电脑里摸。我组装电脑,娃拿着配件玩,还要不下来,还往里丢东西。我装系统,娃帮忙按键盘晃鼠标,输入的指令比我输入的都多。但是我依然很愿意带着她一起,其实这是符合我的时间规划的,利用带娃时间完成一些自己想做的事儿,同时坚持带着娃做一些东西娃的动手能力会好很多,一举两得,而且随着时间的推移以后她能帮助我。

我父亲就是一个动手能力很强的人,我就是这样过来的,小的时候就跟着他在旁边看,给他拿工具。后来我开始修家里的一些电器,以至于我父亲天真的认为这孩子以后可以靠修理家用电器为生。

我装的两台电脑主要还是给我自己学习和实践创造环境,我们生活在一个需要不断学习的时代,历史上人类发展曾经是很慢的,从历史教科书来看,中国封建王朝几十年甚至几百年没有什么明显的进步。

总结

今年前前后后写了大约一个月,有时间就写点,终于在2020年到来之前完成了。

为了提升团队的整体技能,今年还是做了很多事儿,坚持每隔一周的分享,坚持技术快报,邀请其他团队来分享,给别人分享以及交流等等,还有很多,核心目标还是帮助团队同学不断成长,同时自己也得不断成长。

以一个问题作为结尾吧,问题是工作只为了赚钱吗?

有些人认为老板给钱少,所以不好好干。生活中有很多这样的人,因为老板给的少,因为领导对我态度不好了,所以我就混日子。其实浪费的是自己的大好青春年华,混日子只能让自己变得越来越平庸。到头来还是耽误了自己,就像读书的时候因为不喜欢某个老师所以我不好好学某一科,这样好像不影响老师的工资。这么多年了应该长大了。就算老板给你的少了,领导对你态度不好了,那又怎样,哪怕做完了什么都得不到,但是你在江湖上有了声誉,这才是最重要的。

顺便做个广告,我们团队还在招人,在这个寒冬时期,很多公司趁着年末裁员,我们还在招人还是很难得的,有意者加我微信lw20170313。

致谢

感谢公司和领导给了我机会,感谢公司的每一位同学和团队中的每一位同学。

感谢我妻子,又带娃又上班真的很辛苦。

感谢岳父岳母帮忙带娃,尤其是带一个调皮的娃。有多调皮呢?45厘米高的桌子,桌子旁边放个枕头,自己爬到桌子上站着,让你一刻不得清闲,除非她睡了。

最后给大家拜个早年,祝大家在新的一年里多赚钱。

2019.12.某日夜

推荐文章