前端工程化
首先工程这个概念是工业领域的用词,前端工程化的这个概念提出说明前端项目已经发展到了一定的阶段,随便来个前端项目都不是随便拼几个页面,搞几个jq插件就能完成,前端已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用,又如sass和less的代码浏览器也是不支持的。前端领域在扩大,pc h5 混合开发 node 等等,技术也不断更新,前端业务日益复杂化和多元化,就必须要有工程化的技术和思想来解决前端的业务问题。
比如,如何高效多人协作?如何保证项目的性能,稳定性,可用性,可维护性?如何提高项目的开发质量?这些都是工程化需要关注的问题。
工程化是一种思想,没有什么范式来参考,凡是有利于前端项目的可用性,可维护,可扩展的方法我觉得都属于前端工程化。工程化的目的无非就是三点:流程化、规范化、自动化。比如说,js,css的模块化,组件化开发。比如使用更友好的es6语法,ts的使用,可复用的打包编译方案,固话可移植的优化方案,再比如使用代理工具提升开发效率,项目配置sonar或者eslint代码审查工具,再有就是搭建合适的前端监控和日志系统,注重数据埋点和后评估,以及合理的前端单元测试和前端开发规范,敏捷开发,git工作流,持续集成,上线部署都是工程化需要解决和关注的问题。
实现前端工程化需要从哪些角度考虑
1.构建工具
2.持续集成
3.系统测试
4.日志统计
5.上线部署
6.敏捷开发
7.性能优化
8.基础框架
组件化
可组合(Composeable):一个组件易于和其它组件一起使用,或者嵌套在另一个组件内部。如果一个组件内部创建了另一个组件,那么说父组件拥有(own)它创建的子组件,通过这个特性,一个复杂的 UI 可以拆分成多个简单的 UI 组件;
可重用(Reusable):每个组件都是具有独立功能的,它可以被使用在多个 UI 场景;
可维护(Maintainable):每个小的组件仅仅包含自身的逻辑,更容易被理解和维护;
可测试(Testable):因为每个组件都是独立的,那么对于各个组件分别测试显然要比对于整个 UI 进行测试容易的多。