2018 新年伊始·技术·工作
已经不关注社区有大半年了,或者起码有一年了,毕竟被持续增长的业务缠了也有一年了,虽然很“充实”,但毫无疑问地说,也是一无所获。
因为这一年来始终在 React Naitve
体系上工作,传统 Web 的知识也忘得大半了。还记得去年专门写过一篇文章来总结2016年前端社区的现状,一年过去了,如果我不是特别孤陋寡闻的话,那么,我认为,现状并没有改变多少。
框架
React
React 经历了一次许可证的“惊心动魄”,虽然新版本的许可证已经是安全的,但有一定研发实力的公司都已经在造自己的轮子。当然,从开发者的角度,肯定是使用成熟的方案更舒服,显然近在咫尺的理想也不见得能容易实现。
React 16 启用了新的引擎,这些细节是值得玩味的。
除此之外,React 依然拥有大量的开发者用户,就像去年一样。
Angular
未曾想到的是,Angular 2 还立足未稳,Angular 4 就出现了。刚刚看到一篇文章,作者抱怨自己的项目使用了 Angular 2 的 beta 开发之后,暂且不表 TypeScript 语法的绑定,光是要快速 follow 短时间内几十个版本的升级就已经相当心累了。
当然你可以说这位开发者在一开始就不应该使用 beta 版本,但是要等到正式版本发布的话,究竟是什么时候呢?我还记得 Angular 2 的核心包去掉了 beta 后缀的时候,其官方维护的一众功能包,比如动画等等,依旧是在 alpha/beta 状态。好吧,即使等到所有包都达到了起码的 stable 状态,Angular 4 的出现又是几个意思呢?
可以预见,Angular 1 时代的用户,相当一部分会放弃继续使用 Angular 的升级版本。曾经也一味推崇 Angular 2 的我,也渐渐失去了耐心。说到底,还是 Angular 的开发团队自己玩死的。
Vue
其实去年的这个时候,我是比较看衰 Vue 的,语法不喜欢、个人维护难以为继,和 React、Angular 甚至 Ember 完全没法比。
不过 Vue.js 的流行程度经过这一年来,毫无减弱的趋势,我想至少有一下几方面原因:
- 稳定,用户不必在业务迭代的同时,额外烦恼于持续升级基础框架;
- 简单,上手容易,具有普通开发经验的人,也可以在十分钟内写出一个较为复杂的应用;
- 生态工具较为丰富,特别是重要工具由作者维护,质量有保证且唯一,不用担心选择恐惧症
说白了,对于真正的业务开发环境,稳定和简单是特别重要的两个特性,不求能有多激进的特性,但求省心。
另外,Vue 的 ssr 方面也有足够的能力和性能支持,这在今天的 web 应用中,还是比较有吸引力的。React 生态也仅有一个简单的 next.js 还算勉强能用,而 Angular 和 Ember 基本都属于残次品。
Ember
Ember 属于比较小众的框架,我已经关注它有两年了,毕竟推广不多,很多人不知道,社区发展也有限。过去这一年依旧表现平平。
React-Native
如果说去年上半年我起码还在 React Native
上积累了点经验的话,那么下半年基本就达到了瓶颈了。许可证是一方面,公司环境是另一方面,但这都不重要。重要的是,我依旧不看好这个东西。
“行百里者半九十”,我们已经写了成千上万行代码,过亿的用户,以及良好的开发上线流程,但依旧避免不了要时刻面对框架底层缺陷带给我们的额外工作量与业务损失。作为前端开发者,过去面对浏览器兼容性起码还有前辈多年的经验积累,但 React Native
带给我们的就是大大提升了自身的技术钻研能力。
工程化
Webpack
Webpack 也从 2 升级到了3,但变化俨然远远不如从 1 到 2。使用配置难度依旧居高不下,想我这种上了年纪的人,没得商量,每次使用都要再看一遍 doc。
Rollup
Rollup 的定位十分明确,与 Webpack 不构成竞争关系。写 library 用 Rollup,写 app 用 Webpack。
npm
jspm、bower 几乎已成骨灰,yarn 依旧不支持 scope。
新方向
webassembly
在下一代人上小学之前能看到定稿的 webassembly 我就已经满足了。
webcomponents
在下一代人上小学之前能看到普及的 webcomponents 我就已经满足了。
数据
断断续续学习 D3,但明显精力不如从前。
微信小程序
如我所料,半温不火。令人鄙视的是,支付宝和百度都还在模仿,简直了。
我的工作
去年我还在研究一种解决方案,能够兼顾的开发效率、运行时性能这两个看似简单却互为矛盾的指标。最后确实有了一个雏形。今年,我已经不再感兴趣,没有别的,就一个原因,想的太多,跟本没有那么复杂的使用场景。
总体来看过去一年,对于个人来讲是毫无建树的,今年上半年,我可能需要拓展一下视野,找一找我不会做的事情做一做。