我总是听到前端工程化这个词,似乎一个不懂得工程化前端的前端就是一个非常low的前端,但是工程化到底什么?又是谁在做工程化这个事儿呢?
这似乎是一件值得商榷的事儿。
相信我们都有过类似的经历,被安排到一个项目中去,然后我们熟悉了代码,开始认认真真的开发业务代码。然后我们在开发的过程中针对常用的组件做了封装,针对常用的工具方法做了抽离,针对打包配置了webpack,针对测试写了测试脚本,针对部署写了部署的脚本...
那么我们做的事情能被称为工程化吗?
这倒未必。因为个人理解的工程化的一个重要的结果是规范化
。
为什么?
因为单个项目只能称之为项目,不能称之为工程,工程是由多个项目组成的,将不同的项目中通用的功能或模块拆分出来形成基建、规范,才能称之为工程化。
而在前端领域的基础建设中,脚手架
、组件库
、工具库
除了这些常见的基础建设之外,日志系统
、数据缓存系统
、静态资源管理系统
、服务接口架构
、单元测试规范
、构建工具
、ci\cd
、版本管理
、代码规范
等等,其实都是基础建设。
虽然我们能开发组件库、脚手架、但是对于其他的基建呢?我们可能也会配置webpack、也会设置eslint
, 但是我们真正的理解它们的运作机制吗?
能够理解并实践过这些东西的,必定是一个具有架构能力的人。
所以,工程化应该由具有架构能力的人来做。
而在工作中,这个人就是你的TeamLeader。