Download:
吃透前端工程化,大厂级实战项目以战带练
前端工程化
前端工程本质上是软件工程的一种。软件工程化关注的是性能、稳定性、可用性、可维护性等方面,注重基本的开发效率、运行效率的同时,思考维护效率。一切以这些为目标的工作都是"前端工程化"。
前端工程化面临的问题:
(一)开发
大体量:多功能、多页面、多状态、多系统;
大规模:多人甚至多团队合作开发;
- 提高开发生产效率
- 降低维护难度
这两个问题的解决方案有两点:
- 制定开发规范,提高团队协作能力;
- 分治。软件工程中有个很重要的概念叫做模块化开发其中心思想就是分治。
(二)部署
从部署角度,要解决的问题主要是资源管理,包括:
- 代码审查
- 压缩打包
- 增量更新
- 单元测试
(三)高性能
CDN 部署、缓存控制、文件指纹、缓存复用、请求合并、按需加载、同步/异步加载、移动端首屏 CSS 内嵌、HTTP 2.0 服务端资源推送。
前端工程化
1.规范化
规范化其实是工程化中很重要的一个部分,项目初期规范制定的好坏会直接影响到后期的开发质量。
- 目录结构的指定
- 开发规范的目的是统一团队成员的编码规范,便于团队协作和代码维护。开发规范没有统一的标准,每个团队可以建立自己的一套规范体系。
- 前后端接口规范
- 文档规范 readme changelog
- Git 分支管理
- Commit 描述规范
- 定期 CodeReview
2.模块化&组件化
组件(component)和模块(module)应该是两个不同的概念。两者的区别主要在颗粒度方面
用通俗的话讲,模块可以理解为零件,比如轮胎上的螺丝钉;而组件则是轮胎,是具备某项完整功能的一个整体。具体到前端领域,一个 button 是一个模块,一个包括多个 button 的 nav 是一个组件。
模块/组件化开发的必要性
随着 web 应用规模越来越大,模块/组件化开发的需求就显得越来越迫切。模块/组件化开发的核心思想是分治,主要针对的是开发和维护阶段。
3.组件仓库
云物理机部门前端组件工具库:@jd/cloudid_frontend
为什么搭建私有组件库
- 可复用 跨项目可以使用同一套私有组件库
- 方便维护 如需组件调整 只需要修改组件库 不需要跨项目重复修改
添加新组件原则
- 件应先存在于具体项目中,经过重复验证后再抽象、沉淀到本组件库中
- Vue component 只应负责渲染数据和内部逻辑,尽可能不包含 $t 国际化、ajax 请求等业务数据和逻辑
- 组件和其他模块应尽可能的搭配单元测试、可运行的 storybook 例子
- 应该在 CHANGELOG 中记录每次增删改的组件信息等