前端集成方案——理论(一)

集成方案在项目中的地位?
 
书面解释
前端集成方案指的是将前端开发领域中所有的技术元素集中到一起,对常见问题提供一套解决方案。
 
为什么要有集成方案?
前端达到一定规模后,一些孤立的技术元素(模块化、打包、部署、压缩合并、组件管理...)就成为束缚了研发人员的瓶颈。
 
好,接下来我们以研发流程为主线, 来探讨集成方案究竟应该包含哪些,需要哪些。
 

首先,你需要建个工程,工程在前端就是目录结构

  

  包划分讲究得是以什么为核心,为什么这么划分。至于命名,尽量遵守通用的命名。

 

其次,编码阶段

  写法要统一,你一个JS类太大了,要拆分成几个类,几个文件,他们之间要依赖吧。这叫写法规范和依赖管理。这两者合起来叫模块化。

类型 代表框架 优点 缺点 目的 原理
AMD RequireJS  依赖不需要字面解析
和NodeJS遵循的规范不一致 统一写法
按需加载依赖的JS
通过关键字define强制你按模块化的规范写;
加载依赖<script src>标签+load事件
CMD SeaJS 和NodeJS遵循的规范相同 不能直接压缩,需屏蔽require字符等
依赖需通过toString静态分析


推荐大家使用SeaJS,因为它的源码中文注释,书籍github一大堆。非常容易看懂。像我这种有英文障碍的就很高兴。而且它是国人开发的,具体谁我就不说了,反正你们都知道。   

 

接下来,编得差不多了,需要编译打包

gzip压缩是配置apache的http.conf文件,响应头Content-Encoding:gzip

图片不进行gzip压缩,是压缩后不一定不小,甚至会稍微变大。

我想问个问题,模块化有前端框架,压缩合并有没有。没有!为什么呢?前端语言读文件有安全限制,你没法主动去访问、读取文件。需要后台语言,通过IO流去读它,过滤它的空格,回车符,按规则替换它的变量名,这就是压缩。同样的合并,通过IO流写到一个文件里。

  

编译打包完了,做做通用的性能优化

  

CDN服务器配的,cache-controller、304等也是配的。至于HTML5 的web存储不兼容IE,且它最适合的是离线程序。我们主要关注的就是压缩合并。

 

然后,测试

 


最后,发生产

   发生产有覆盖式发布和非覆盖式发布两种
 
 
整个研发流程过完了。我列出来前端研发过程中,除应用框架以外的技术元素。
这些元素放到一起集中处理的方案就叫前端集成方案。点这。
 
 
posted @ 2014-11-06 18:50  莫名   阅读(1240)  评论(0编辑  收藏  举报