前端笔记 Front-end Dev Engineer

读《前端 JSer 装逼手册》有感

2017-05-21

偶然看到文章《前端 JSer 装逼手册》,挺有意思的,特此写一下读后感,以及稍作评论

开发

原文认为Macbook Pro是标配,还风趣的指出随着OS X 的版本升级Spotlight被Alfred代替。
事实上,windows系统下的前端开发体验并不差,在开发工具上两者并没有什么本质区别,Sublime / Atom / VS Code在windows上,一样运行良好。 在加上,国内9成以上的电脑都是windows,在windows下直接书写调试与验证,更加方便以及靠近用户。在加上公司内部沟通工具,周边其它软件。单纯冲开发前端而言,真心是windows更加有优势。

编辑器方面,文章提到Sublime / Atom / VS Code,Vim / Emacs,以及IDE。根据我的实践经验,atom有启动慢,容易奔溃等多种原因,导致并不受欢迎。 vim与emace开发前端并不能提高什么效率,毕竟前端常常要查看设计图,检查实现效果,甚至操作一下ps软件等等,鼠标操作太多。 所以最后只有sublime与vscode是值得推荐的。但是最终我抛弃sublime转投vscode了,因为vscode真心太好用了!

命令行方面iTerm2 + Oh-my-zsh 确实比windows上的cmd,powershell好用,不过通过git自带的bash,也足够使用了。

查资料方面,必须说,国内常用技术、框架等等还是查百度靠谱。但是,如果是国外的框架,技术,还是google靠谱,特别是ng、react的最新文档。

提问方面,原文推荐Stack Overflow。但我必须说,我英文不太好,基本不用Stack Overflow,绝大多数情况下,谷歌、百度已经能解决我的问题了。 如果真的遇到我解决不了的问题,我通常是去github的相应框架或者库的issues中查找答案或者提出问题。

语言

语言方面,在2017年的今天,coffeeScript与Dart基本宣告淘汰了! 通常选择Babel+ES6或者TypeScript。通常情况下,除非写angular2+,基本上都是Babel+ES6,涉及庞大,多人开发,特别是后端项目,那么首选Typescript。

代码风格

确实如文章所说,JSLint / JSHint / JSCS确实淘汰了,目前都是推荐ESLint,而且推荐使用airbnb的风格要求,适当做调整。

至于,最后说的,“总而言之,代码越短,可读性越差,逼格越高 不能让人随便看懂,就像人不能轻易让人看透”,其实写多了js,这些其实都是基本的短路,强制转变类型等等,只要js基础好,没有看不懂之说。

奇技淫巧

原文只说了“罄竹难书”,简单的说,有的时候多了解一下,多看看一些技巧,还是有必要的。

常用库

DOM库

Jquery确实还是最好的,至于Mootools ,Prototype太古老了,在jq都快功成身退的今天,完全不必要提他们。
Zepto号称是移动版的jq替代品,但是其实并不好用,api不完全一致,bug太多。在2017年的今天,完全可以直接使用jq3.x,如果嫌弃太大,可以自己配置选择相应的库。

UI

Twitter现在是泥菩萨过江,自身难保,bootstrap4这么久了,也没正式发布,而且现在也宣布不支持ie9。在国内这个大环境下,还是继续bs2/3吧。 不过,在有设计师的情况下,不推荐使用bs框架,不然修改ui的css太耗费时间了。 原文还提到了Foundation6 / Ant Design/Semantic UI / UIkit / Amaze UI … 等等框架,其实到今天,还有mui,weui,饿了么的Mint UI与element等等,多的数也数不清。
原本还是挺推崇他们的,感觉大公司有保证。但是实际使用就会发现各种局限性,他们做的框架都是优先自己的业务,如果业务想死还好,如果不是,呵呵,就需要自己填坑了!

工具库

underscore确实老了,lodash是唯一选择。但是在es6+babel的今天,其实没必要使用它了。

模板引擎

Jade(pug),Mustache,Handlebars,ejs等等是最常见的的了,但是基本上前端不需要,做nodejs后端开发的,自己斟酌吧。

异步编程

不用说了,Async都快成标准了(不出意外,就是今年的es2017中成为标准了),其它方案(Q / Bluebird / co / then)都淘汰了。

包管理工具

现在基本上就集中在npm与yarn中了,其它的(Bower / spm / Component / Duo)也是淘汰了!

构建工具

目前构建工具主流还是gulp。grunt已经被淘汰。至于webpack,其实是打包工具。当然现在webpack的地位也不是那么稳固,说不定会被rollup替代。 至于FIS3,百度出的玩具,除非你的工作流程和百度一致,不然,到时候,你怎么死的都不知道。(太小众,连资料除了官网,其它地方就没有了)

模块化方案

nodejs本身支持AMD方案。babel提前让我们用上了es6的import、export方案。所以还是继续npm+webpack吧。其它方案都淘汰了。特别指出SeaJS,阿里出的KPI产物,现在连阿里自己都不用。

框架

Backbone 已经淘汰
Angular ng1基本上只是需要维护老项目。ng2用的人不多,目前已经升级到ng4了,还是没啥人用了。背后还有google撑着,不知道还能不能继续走下去,目前的前端的三大框架之一。
Vue 2017年发展的挺快,开发者只有一个人,而且是个华人,中文文档相对完善,你还可以和作者直接中文沟通,尤大大,还常常出没于微博,知乎与各大国内前端大会。目前前端三大框架之一,受到国内热捧。
React 目前,全球最受欢迎的框架,而且衍生的React Native,也是发展迅猛,微软甚至基于rn退出了reactXP。目前前端三大框架之一,甚至可以说NO1,国内阿里也是主要使用react技术栈。

其它 ( Ember / Knockout / Avalon)也是属于淘汰状态。 至于(YUI / Dojo / Ext / KISSY)已经是史前生物了,现在只有部分历史悠久的公司,还有些遗留项目。

混合 / 原生开发

PhoneGap的替代品cordova(其实它俩是同一个东西),在加上ng,诞生的ionic确实是Hybrid APP的巅峰。
出于性能考虑,rn应运而生,目前成果喜人,微软的reactXP推出(基于Electron),让他通吃APP与桌面应用。

nw.js与electron的最初开发者是同一个人,跳槽后,才诞生的Electron,在加上inter公司没用心,所以nw.js基本上已经淘汰出局了。

weex目前来说还是一个笑话,玩玩可以,生产环境使用还有待考验。有传闻weex是阿里的kpi产物,连weex的开发者自己都是用rn的。。。

后端框架

nodejs玩的比较少,毕竟我不是全栈。 就我所知,Express 还是主流,koa2,自从node原生支持async后,广受好评,效率比Express高,不少nodejs的开发人员,说要切换到koa2去。

其它比较常常听到提起的就是ThinkJS,Meteor。至于Sails,不太听人提起,估计应该是离淘汰不远了。

服务器进程管理

原文举例了很多,但是,我只听闻过pm2与supervisor,其它的,我都没听人提起过。。。pm2是被推荐次数最多的,不出意外还是使用pm2吧。

浏览器的新动态

虽然和JSer不是特别相关,但是我还是想补充一下 WebAssembly:字节码技术,c/c++入侵前端开发,虽然目前还是实验性质,但是应该离我们不远了。提升效率就靠它了。
PWA vs 小程序:首先,必须声明他们两不是同一个东西,连类型都不一样,但是效果近似,所以就一起说了。都是web APP的一种表现形式。 目前来说,他们都有商业运用的可行性,但是也有相应的局限性。而且很好笑的是,他们都名声大噪,但是推广方面都是困难重重。继续观望吧。

结束语

原文是2016年的文章。我是将近一年后的今天才看到,变化还是有不少,不过值得庆幸的是,前端界没有太多的新框架加入。目前而言,国内开发者,将精力投入vue中,相对保险。 马上就快到2017年的6月了,es2017快要发布了,期待中。


评论

Content