Code Monkey home page Code Monkey logo

introduction-to-front-end-engineering's Introduction

带你入门前端工程

前端工程化,其实是软件工程在前端方面的应用。什么是软件工程?来看一下百度百科的定义:

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科

换句话说,工程化的目的就是为了提升团队的开发效率。例如大家所熟悉的构建打包、性能优化、自动化部署等知识,都属于工程化的内容。

我写这本小书的原因,是想对过去两年的工程化实践经验和学习心得做一个总结。希望能全面地、系统地对前端工程化知识做一个总结。

小书大部分的内容都是以理论知识 + 代码示例 + 图片的方式来讲解的,努力争取让读者更容易理解。另外还有小部分的章节在讲解完理论知识后,还有相应的实践教程。例如前端监控这一节,在讲解完前端监控原理后,将会教你如何利用现有的监控工具对项目实行监控。

可能有人会问,什么时候开始做工程化?我认为在需求评审阶段就可以做工程化了,根据需求选用适当的技术栈(技术选型),然后制定相关规范...

DEMO

在线访问

本地访问

下载或克隆项目后,在项目根目录下执行命令:

npm i
npm run dev

然后访问 http://localhost:8080

目录

  1. 技术选型:如何进行技术选型?
  2. 统一规范:如何制订规范并利用工具保证规范被严格执行?
  3. 前端组件化:什么是模块化、组件化?
  4. 测试:如何写单元测试和 E2E(端到端) 测试?
  5. 构建工具:构建工具有哪些?都有哪些功能和优势?
  6. 自动化部署:如何利用 Jenkins、Github Actions 自动化部署项目?
  7. 前端监控:讲解前端监控原理及如何利用 sentry 对项目实行监控。
  8. 性能优化(一):如何检测网站性能?有哪些实用的性能优化规则?
  9. 性能优化(二):如何检测网站性能?有哪些实用的性能优化规则?
  10. 重构:为什么做重构?重构有哪些手法?
  11. 微服务:微服务是什么?如何搭建微服务项目?
  12. Severless:Severless 是什么?如何使用 Severless?

微服务、Severless 按理说不属于工程化的内容,但从提升开发效率的角度来看,也可以归纳到这一范围。

目录的顺序是以一个项目的生命周期来分配的:

  1. 接到新需求,进行需求评审后根据具体情况做技术选型。
  2. 开发前需要统一规范。
  3. 学会模块化、组件化,对于写代码很有好处。
  4. 开发完,需要对代码进行测试。
  5. 构建打包。
  6. 部署上线。
  7. 对项目进行监控,随时发现问题。
  8. 根据项目运行情况决定是否要做性能优化。
  9. 项目越来越复杂,需要重构以提高可维护性。
  10. 项目越来越大,可以考虑是否用微服务对其进行拆分(或者使用 git submodule 和 monorepo 的方式管理项目)。
  11. 不想自己管理服务器或数据库,可以考虑使用 Serverless。

注意

本书的定位是入门级教程,主要对前端能接触到的工程知识做一个较全面的介绍。适合对前端工程化不了解或了解得不多的“菜鸟”同学。如果你是个“老鸟”,那本书可能不太适合你。

另外,建议读者在阅读本书时,能够配合书本的实践部分去做实践。如果读者能够严格按照指示去做实践,在阅读完本书后,不仅会收获前端工程化的理论知识,还会获得对应的实践经验。

你会学到什么?

  • 对前端工程化有一个全面、清晰的了解
  • 为架构师之路打下扎实的基础

适宜人群

  • 想学习工程化的前端
  • 具备基础的 HTML、CSS、JavaScript 知识

扩展

由于这本小书主要就是针对一个技术点讲解它是什么?怎么做?对于更细的点不会有深入的讲解。为了弥补这一点,我写了一些其他文章来对此做为补充:

License

MIT

赞助

如果你觉得本项目对你的帮助很大,可以请作者喝一杯奶茶🎁😉。

introduction-to-front-end-engineering's People

Contributors

uxieverity avatar vsirrr avatar woai3c avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

introduction-to-front-end-engineering's Issues

miao

你这代码保熟吗?

前端工程化总结感想

很开心发现这个项目,感谢作者,同时也有了一些感想。身为前端开发工程师,我觉得前端工程师刚起步做的都是无用功。因为要积累专业知识、技术经验,可是这些东西不过是很基础的东西,每个前端开发工程师如果把职业生涯的大部分时间花在走前人的路子上,整个前端的创新其实是落后的。希望这个项目作为一个开头吧,让前端工程师们对于必要的经验积累可以快速跑起,缩短这些基础经验的积累过程,抽出更多的时间可以花费在前端的创新上。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.