永别2016,你好2017

回首2016年,感觉有点坎坷,技术上也没啥大的突破,虽然这一年js社区非常热闹,但我啥都没折腾,就连博客也都半年没写了,感觉都要被淘汰了。。

热闹的前端界

这一年,算是变革最快,格局也算非常明显的一年。

一开始就react轰轰烈烈的席卷了整个前端,说一枝独秀都不为过。
可是我也仅仅是 hello world 而已,没有继续深入,但一直都处于观望状态,说不定哪天就入坑了。
相对而言,我更喜欢vue,但说来也惭愧,一直没能在之前的公司里推基于vue的spa,直到9月份进了新公司才真正的vue了一把,但也仅仅是一把,因为后面开始pc项目了。
当然还有个非常重量级的angular,只能说本人真的不是特别喜欢这种风格,也仅仅到 hello world 而已,而且ng2开始都ts了,更要命的是跳崖式升级,没多少公司吃得消玩。

说到ts,现在发展的确实越来越好,我也希望新的一年里能在项目里使用,并且发挥他的优势,真正的来爽一把。

这些东西,其实没有谁好谁坏,就比如之前听群里朋友讲,说来了个1年 react 的人,让他搞个活动页,就一个页面,也上react,人家jq分分钟完事的事情,他也不嫌麻烦就上react。
这就不是框架的问题了,而是人的问题了。
现在很多新手,一开始就问什么什么框架好,然后就学那一个,其实连js都不怎么会。。
真不知道这些东西对于前端来说是福还是祸。

前端构建的变革

除了框架之外,webpack也是不得不提的,虽然不新了,但确实也是这一年特别火。

前两年,各种grunt/gulp,到今年,都开始 webpack + npm-script 了,甚至有的都开始 makefile 了,我也是下半年才开始 npm-script 的,目前用的还是比较爽的。
之前入坑的 seajs,说死就死,唉,,不过无所谓,反正我之前的模块是amd/cmd兼容风格的,webpack不用单独加插件就可以直接兼容,这问题不大。
但最大的问题是对 webpack 的了解不够深入,导致打包出来的东西非常蛋疼,有时候异步模块会出现找不到的情况,不知道是我的配置问题还是webpack的bug,有待研究下。

来到新公司后,项目基于 webpack 组件化构建的,多入口配置,有利有弊,现在是每个页面一个入口文件,外加一个公共的vendor.js好处是方便,es6编译,ejs预编译,都直接处理了。
但问题是重复打包,有的插件只到2,3次,如果提取到vendor,肯定不合理,但重复打包到入口,也不是特别合理,之前用过异步加载,被坑了,也许姿势不对,目前一直同步。

不过工具嘛,用着顺手就好,不一定非得最新的,有时候项目急,那老方案直接上,妥妥的。

基于 node中间岛 的前后端分离

之前的几年间,一直没做过真正的前后端分离,直到入职这家新公司后,项目都是基于 node中间岛 的模式进行分离的。

有个比较坑的问题就是,假设有10W的PV,因为接口拆分,本来php直接承受10W请求,经过node的拆分,变成了30-50W请求,php服务器瞬间挂了。
其实真正有用的请求也就10W的用户会话信息,其他都是共用接口可以合并,算起来也就10W会话 + 十几个公共接口。
但由于项目陈旧,没办法大幅修改代码,而且没单元测试,所以这个计划只能在新项目或者完全改版的时候实施了。

还有个坑爹大问题是,node是单线程的,基于pm2运行的node是多进程的,他们没办法进行交互,pm2官网给的方案是使用 redis, mongodb 之类的来存储公共状态。
我们的项目,啥都没加,导致我之前加了个基于session的flash,各种不显示。

新的起点

前面算是总结加吐槽了吧,,反正我就是想写点啥而已。

2017年了,希望世界和平,希望川普不要乱来,然后是希望自己能升级加薪。

祝看见这篇帖子的各位也升职加薪吧。😁