我对前端工程化的几点思考

 

编程技术及生态发展的三个阶段------------------------------最初的时候人们忙着补...



编程技术及生态发展的三个阶段

------------------------------

  • 最初的时候人们忙着补全各种API,代表着他们拥有的东西还很匮乏,需要在语言跟基础设施上继续完善
  • 然后就开始各种模式,标志他们做的东西逐渐变大变复杂,需要更好的组织了
  • 然后就是各类分层MVC,MVP,MVVM之类,可视化开发,自动化测试,团队协同系统等等,说明重视生产效率了,也就是所谓工程化


前端工程是软件工程的一个子类别

------------------------------

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

前端是一种GUI软件

------------------------------

从本质上讲,所有Web应用都是一种运行在网页浏览器中的软件,这些软件的图形用户界面(Graphical User Interface,简称GUI)即为前端。



前端又不同于传统的客户端软件/后端,因为前端应用具备“免安装”、“增量安装”等特性。也“得益”于这些特性,前端应用会遭遇客户端应用不可能碰到的资源管理问题,这也是前端最容易引起工程问题的点。

一个符合工程化要求的软件系统(前端)需要包含的要素

------------------------------

开发规范

模块化开发

组件化开发

组件仓库

性能优化

项目部署

开发流程

开发工具

1-3是技术业务相关的开发需求,4是技术沉淀及共享需求,5-8是工程优化需求

大部分时候我们谈的“工程化”其实只是“工具化”。



每一个单独的点或许都比较容易实现,但是把这8条串联起来则是一个很大的挑战,而且这8个点相互之间又互有联系

  • 模块化开发涉及到性能优化,对构建工具有一定的配套实现要求,同时也会影响开发规范的制定
  • 组件化开发应该基于模块化框架来加载其他依赖的组件,如果组件化框架自带模块管理功能,那么就可能导致工程的性能优化实现困难(我们可以直接使用ES6的module语法及loader)
  • 组件库应该与组件化开发配套,组件仓库中的组件应该按照相同的标准实现
  • 开发规范工具必须容易实现,如果部署上有特殊要求,工具是否能很容易的做出调整而不是修改规范。
  • 工具是否能提供接入公司已有流程的接口,是否能与公司的ci工具相互融合


为什么都说前端目前正遭遇前所未有的工程问题

------------------------------

[*]前端在第1、2阶段耗费了十多年的时间,然后近几年才井喷式的爆发

[/*][*]由于整个生态的发展缓慢、门栏低、构建应用成本低,前端开发长时间停留在刀耕火种、茹毛饮血的阶段

[/*][*]以前大部分前端工作都是切页面加特效,还不能算得上一个真正意义上的webapp,自然很少有公司能遭遇到工程化问题

[/*][*]前端不同于 客户端/后端 的特性(比如增量安装),导致遭遇的工程会很特殊,很难直接从别的领域套用已有的解决方案

[/*]我们自己完全意识不到那是问题


    关注 前端开发攻城狮


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册