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