野狗君说 | 前端工程师怎么了?? 编程技术及生态发展的三个阶段 ------------------------------
前端工程是软件工程的一个子类别 ------------------------------ 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。 前端是一种GUI软件 ------------------------------
前端又不同于传统的客户端软件/后端,因为前端应用具备“免安装”、“增量安装”等特性。也“得益”于这些特性,前端应用会遭遇客户端应用不可能碰到的资源管理问题,这也是前端最容易引起工程问题的点。 一个符合工程化要求的软件系统(前端)需要包含的要素 ------------------------------ 开发规范 模块化开发 组件化开发 组件仓库 性能优化 项目部署 开发流程 开发工具 1-3是技术业务相关的开发需求,4是技术沉淀及共享需求,5-8是工程优化需求
每一个单独的点或许都比较容易实现,但是把这8条串联起来则是一个很大的挑战,而且这8个点相互之间又互有联系
为什么都说前端目前正遭遇前所未有的工程问题 ------------------------------
工程化到底要解决哪些问题 ------------------------------
举三个案例:
相关工具? ------------------------------
出路 ------------------------------ ES6 Module + ES6 Module Loader + HTTP/2.0 + Others ES6 Module提供了一个原生的模块化语法,ES6 Module Loader则能提供一个原生的模块加载器。对于前端工程而言,资源管理是最核心的问题,而资源管理中加载又是重点更是难点。 可是ES6 Module Loader从ES6草案中移除了现在由WHATWG组织还在维护制定标准,pending状态。。 现在有一个基于这个草案实现的api polyfill Module Loader。可是你不是规范我这种教条主义者是不会用的?? HTTP/2.0是HTTP/1.1的升级版(非革命版,前身是Google的SPDY协议),2015年5月以RFC 7540正式发表,新增了几个关键特性:
其中多路复用是对前端感知最明显的特性,基于此特性,HTTP/2.0时代需要淘汰的优化方式:
ps:目前的各种bundle方案(如browserify&webpack)可能会在http2.0时代被淘汰(替代),有测试表明在http2.0环境下多文件请求会比单请求大文件更快。移动终端的意义更大,你无法想象移动端创建一个连接开销有多大。。多路复用才是未来! 总结 ------------------------------ 前端工程化相关问题是随之前端的发展越来越受到重视的问题,一套好的工程化解决方案能在提高开发效率(包括代码编写的舒适度及多人协作)的同时确保整个系统的伸缩性(各种不同的部署环境)及健壮性(安全),同时在性能上又能有一个很优异的表现(主要上各种缓存策略加载策略等),而且这套方案又应该是对工程师无感知(或感知很小)趋于自动化的一套方案。总知要达到这个目的前端工程化还有很长一段路要走。 ↓戳这里,了解野狗! |
|