停不下来的前端,自动化流程

  流程

  关于流程,是从项目启动到发布的过程。在前端通常我们都做些什么?

  1. 切图,即从设计稿中获取需要的素材,并不是所有前端开发都被要求切图,也不是所有前端开发都会切图,但请享受学习新知识的过程吧。
  2. 创建模版(html、jade、haml)、脚本(Javascript、coffeescript)、样式(css、less、sass、stylus)文件,搭建基础的项目骨架。
  3. 文件(jade、coffeescript、less、sass…)编译
  4. 执行测试用例
  5. 代码检测
  6. 移除调试代码
  7. 静态资源合并与优化
  8. 静态资源通过hash计算指纹化
  9. 部署测试环境
  10. 灰度发布现网

  工具化

  每个流程中的过程单元,我们抽象为一个Task,即任务。把可重复规则的过程进行工具化,如把JavaScript代码压缩过程工具化,而UglifyJS是具体执行任务的工具,CSS代码压缩器CleanCSS是具体执行任务的工具。

  工具文化几乎是大平台互联网公司共有的特质,我们无法确定是工具文化驱动了Google、Facebook这类互联网公司的快速发展,还是快速发展的需要使其在内推广工具文化,但可以明确的是工具文化必不可少。在Facebook第二位中国籍工程师王淮的书中也提到提到:

  当时招聘他进Facebook的总监黄易山,是对内部工具的最有力倡导者:

他极度建议,公司要把最好的人才放到工具开发那一块,因为工具做好了,可以达到事半功倍的效果,所有人的效率都可以得到提高,而不仅仅是工程师。

  在腾讯,工具文化虽没有被明确指出,但大平台公司对工具化的坚持是一致的:凡是被不断重复的过程,将其工具化,绑定到自动化流程之中。技术产品也需要Don’t make me think的方式来推广最佳实践。总而言之:依靠工具,而不是经验。

  自动化流程

  任务工具化是自动化流程的基础,我想你已经听说过任务运行器Grunt。Grunt帮助开发者把任务单元建立连接,如代码编译Task执行完后执行检测Task,检测Task执行完后执行压缩Task。虽然Grunt是基于Node.js平台,但其定位是个通用任务管理器,通用往往意味着更高的学习与实施成本。专注于Web开发领域腾讯有Mod.js来实施前端自动化,通过Mod.js有效的简化Web开发自动化流程实施成本。

  实施Mod.js

  Mod.js并不是简单的任务运行器,其内置集成了Web前端开发常用的工具集,覆盖了80%的前端使用场景,而另外的20%则可通过Mod.js的插件机制来扩展。

  相遇

  Mod.js:https://github.com/modjs/mod 可通过NPM来安装最新的版本, 在你来到Node.js的编程世界时已同时附带了NPM,当前Mod.js最新版本0. 4.x要求Node.js要求>= 0.8.0

$ npm install modjs -g

  -g 参数表示把Mod.js安装到全局,如此mod命令将会在system path内,方便在任何一个目录启动Mod.js任务。

  相识

  Mod.js通过Modfile.js文件驱动任务执行,可以手动创建一个Modfile.js文件,也可以通过模版初始化一个Modfile.js文件:

$ mod init modfile

  Modfile.js是一个Plain Node Module, 通过 Runner 对象来描述任务的具体执行过程:

// 暴露Runner对象module.exports = {}

  如是异步配置,则可通过回调模式传递Runner对象:

module.exports = function(options, done){    setTimeout( function(){        // 回调Runner对象        var runner = {};        done(runner);    }, 1000)} 

it知识库停不下来的前端,自动化流程,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。