We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
前端工程化,其实是软件工程在前端方面的应用。什么是软件工程?百度百科的定义:
软件工程是一门研究用工程化方法构建和维护有效的、使用的和高质量的软件的学科。
换句话说,工程化的目的就是为了提升团队的开发效率。例如大家所熟悉的构建打包、性能优化、自动化部署等知识,都属于工程化的内容。
// 核心项目必须使用成熟稳定、可靠的技术栈,边缘小项目可以使用新技术给团队成员练手或者踩坑 if ("是否可控") { if ("是否核心项目") { if ("根据适用性选择技术栈" && "根据易用性选择技术栈") { return "选择的技术栈"; } } else { return "新旧技术栈随意"; } }
模块化
模块化是在文件层面上,对代码或资源的拆分,确保各个模块作用域项目隔离,互不干扰。一个模块就是一个功能,他们可以被多次复用。(分治的思想)
如:JS 的模块化、css 的模块化、资源的模块化等。
组件化
组件化是在设计层面上,对 UI(用户界面)的拆分,组件化更重要是一种分治思想,封装组件需要注意组件之间的依赖关系(继承、扩展、嵌套)
页面成为一个容器,组件时这个容器的基本元素。组件与组件之间可以自由切换、多次复用,丢该页面只需修改对应的组件即可,大大提升了开发效率。
最理想的情况就是一个页面元素全局由组件购惭,这样前端只需要写一些交互逻辑代码。虽然这种情况很难完全实现,但是我们要尽量往这个方向上去做,争取实现全面组件化。
构建工具指能自动对代码执行检验、转换、压缩、打包等功能的工具。
如:webpack、rollup、vite 等。
雪碧图、持续集成、自动化构建、自动化部署、自动化测试(任何简单机械的重复劳动都应该让机器去完成)
chrome 52+ 版本可使用 Lighthouse 工具进行性能检查
修改代码,让代码变得更加容易理解、易于修改、维护、稳定等。
项目越来越大,可以考虑是否对其进行拆分。如使用微服务、 git submodule 和 monorepo 等方式管理项目。
单元测试,E2E 测试。
公共方法库和组件库做单元测试,同时保证一定的测试覆盖率。
为提升团队开发效率,定义开发模式,提炼公共组件,创造实用工具;
The text was updated successfully, but these errors were encountered:
No branches or pull requests
工程化概念
前端工程化,其实是软件工程在前端方面的应用。什么是软件工程?百度百科的定义:
换句话说,工程化的目的就是为了提升团队的开发效率。例如大家所熟悉的构建打包、性能优化、自动化部署等知识,都属于工程化的内容。
1. 技术选型:如何进行技术选型?
2. 统一规范
3. 模块化、组件化
模块化
模块化是在文件层面上,对代码或资源的拆分,确保各个模块作用域项目隔离,互不干扰。一个模块就是一个功能,他们可以被多次复用。(分治的思想)
如:JS 的模块化、css 的模块化、资源的模块化等。
组件化
组件化是在设计层面上,对 UI(用户界面)的拆分,组件化更重要是一种分治思想,封装组件需要注意组件之间的依赖关系(继承、扩展、嵌套)
页面成为一个容器,组件时这个容器的基本元素。组件与组件之间可以自由切换、多次复用,丢该页面只需修改对应的组件即可,大大提升了开发效率。
最理想的情况就是一个页面元素全局由组件购惭,这样前端只需要写一些交互逻辑代码。虽然这种情况很难完全实现,但是我们要尽量往这个方向上去做,争取实现全面组件化。
4. 构建工具
构建工具指能自动对代码执行检验、转换、压缩、打包等功能的工具。
如:webpack、rollup、vite 等。
5. 自动化
雪碧图、持续集成、自动化构建、自动化部署、自动化测试(任何简单机械的重复劳动都应该让机器去完成)
6. 性能优化
7. 监控
8. 重构
修改代码,让代码变得更加容易理解、易于修改、维护、稳定等。
9.项目拆分
项目越来越大,可以考虑是否对其进行拆分。如使用微服务、 git submodule 和 monorepo 等方式管理项目。
10. 测试
单元测试,E2E 测试。
公共方法库和组件库做单元测试,同时保证一定的测试覆盖率。
11. 创造性
为提升团队开发效率,定义开发模式,提炼公共组件,创造实用工具;
参考
The text was updated successfully, but these errors were encountered: