过程自动化 你很有可能认为 Grunt是任务自动化工具的不二选择, Gulp和 Broccoli提供了一个不同的方法来进行自动构建。我没用过Broccoli,并且我只浅尝了一下Gulp,即使Grunt有一定的局限性,但我绝对要感谢它依靠其它服务帮助我把复杂任务自动化——尤其每天要运行上千次任务的时候。 Yeoman在我2012年写文章之后的 45天就发布了。我承认它刚一出来时我并没有用它,但最近我(用不熟悉的技术从纸上草稿开始一个项目)尝试找出如何标准化我们在Bazaarvoice平 台上开发第三方JS应用的方法,Yeoman的确在这些案例中闪闪发光。在命令行中输入一个简单的yo react-webpack就可以为你创建一整个新项目,项目里的你想要的应有尽有——测试、开发服务器、一个Hello World应用,以及更多。如果React和Webpack不是你的菜,可能一个生成器就可以满足你的需求,同样,你可以很轻松地打造自己的生成器。 考虑到Yeoman是一个你通常只在项目开始的时候使用的工具。并且考虑到你不总会开始新的项目,它只是一个值得了解的工具。当然了,如果你正在跨越项目尝试标准化实践,那么它或许还有那么一些价值的。 Broccoli作为ember-cli的核心被委以重任,我信任的人们说这一对儿将来会有大作为,还会改一个新的名字,在未来会逐步替代 Grunt/Yeoman组合。使用Grunt和Yeoman组合进行开发的确会渐渐淡出人们的视野,所以我们一起看看未来能带来什么有趣的东西。 代码质量 如果你像我一样,当你只要看到代码违反了项目良好的文档风格指南时就情不自禁开始抽搐,那么像 JSCS和 ESLint这样的工具简直是天赐之物。2012年的时候他们都还没有出现呢,他们都提供了一个格式化你的样式指导规则的方法,然后在你创建一个pull request之前自动地按照规则校验你的代码,说到这儿我们就不得不提Git了。 Git 我认为自从2012年以来,世界范围内的Git工作流没有太大的变化,话说回来,Github pull request页面上仍然没有给分支名加上链接,谁知道是因为什么天杀的原因。 很显然,在特性分支下工作你应该感到非常舒适,将你与他人的工作成果进行衍合(rebase),借助交互式衍合工具来改写(squash)提交,而 且在小的单元里工作不太可能导致随时可能产生的冲突。另一个必备的Git工具的是钩子(hooks)——你尤其需要预推送和预提交钩子来运行你的测试案例 并执行所有代码的质量检查。你可以自己写这些钩子,但类似于 ghooks这样的工具可以帮你完成这些繁杂的过程,你没有理由不将他们集成到你的工作流中去。 客户端模板 对于一些“错误”的定义可能是我在以前的文章中犯下的最大的错误。客户端模板仍然很有价值,毫无疑问——它的价值高到它将会内建到ES2015中去——但过度滥用依然会有不好的后果。许多团队将所有的渲染工作转移到浏览器中,极大的性能开销使得这种“客户端生成所有HTML”的方法逐渐失宠,这是来之不易的教训。成熟的项目现在都在服务器端生成HTML——甚至还预生成它,将它存储为静态文件可以快速响应提供服务——然后在客户端逐步补充这个HTML,当事件触发的时候用客户端模板更新它。 我希望无论对于你还是我自己,在考虑到自己的决策对于性能的影响时,不仅局限于浏览器领域,这也就是我接下来要谈到的…… Node 你说你很了解JavaScript,所以接下来的时间我期待你能够深入研究Node,如果你知之甚少,那你起码需要投入一点精力去了解它。的 确,Node世界里有一些有关文件系统、流、服务器的知识,甚至还有一些完全与前端开发不一样的范式,但作为前端开发者,如果你把这些宝贵的财富拒之门外 将会极大地限制你的潜力。 即使你实际开发的产品没有使用Node作为项目的后端,你仍然可以利用它来模拟后端服务的状态来尽快完成前端开发。最起码的,你应该熟悉如何 初始化一个Node项目,如何配置一个 Express服务器和路由,以及如何使用 request模块来代理请求。 原文链接:A Baseline for Front-End [JS] Developers: 2015 译文链接:前端(JS)开发者的新起点:2015 |