如今,前端开发涉及的项目包括:

不管是怎样的项目,开发过程中涉及的系统设计、方案调研、技术选型、性能优化、效能提升这些都是相通的。比如这是怎样的一个项目?它遇到了什么问题、存在着怎样的瓶颈?又需要怎么去解决?这些问题便是我在这个课程中主要进行介绍并希望你掌握的内容。
下面,我们来一起研究项目开发过程中常见的一些问题吧!
前端在面试过程中项目经验相关的知识点,主要包括:
首先我们来看看前端框架,不管你开发管理端、PC Web、H5,还是现在比较流行的小程序,总会面临要使用某一个框架来开发。
大多数的框架都有完备的文档和社区资源,怎么使用一些框架和工具在这些文档里都可以找到,但更重要的是你要知道各个框架的区别、掌握框架设计和实现原理,这样便于技术选型和借鉴解决方案。
因此,以下关于前端框架的内容,你需要明白。

以上问题,是我们工作中经常会遇到并需要进行思考的问题,前端框架相关章节会深入讲解框架解决了什么问题、具体的设计和实现原理、三大框架各自的特色。
你也可以在小程序相关章节中了解到小程序的设计初衷、它是如何提升用户体验的;在单页应用与前端路由相关章节中了解单页应用是什么、前端路由库是怎样设计的;在状态管理相关章节中学习如何设计合适的状态管理方案。
很多时候,我们不能局限于解决问题,更应该去思考问题出现的原因,同时还应该去了解下同类问题的解决方案、业界是否有成熟的方案可做参考、这些方案又是否适用于自己的项目中,等等。技术方案选型与对比的方法也会在相关章节中专门介绍。
前文,我也简单介绍过 Node.js 模块和 API 相关,而在使用 Node.js 作为服务端的项目中,面试官更倾向于考察相关的方案选型和设计,比如技术选型和应用场景。

如果要对上述问题归类,这些问题会更偏向后台内容。但我想告诉你的是,前端与后台的区别不仅仅是 Node.js 和 C++/Java/Go 这些语言的区别这么简单。有些时候前端接管一些接入层的工作,可以支援和解决后台开发人力不够的问题,很多时候 Node.js 的确可以给团队带来更多的价值,比如开发效率高、上线速度快等。
但如果你想要成为真正的全栈,不妨从最基础的计算机原理、编译原理、数据库设计等开始学起,而不是仅仅从编写运行在浏览器中的 JavaScript 代码变成了写运行在 Node.js 中的 JavaScript 代码这么简单,因为前端和后台的知识体系完全不一样。比如:
后续我们的课程主要围绕前端相关的知识和技能进行讲解,因此偏向服务端的这些内容涉及不多。
为了能让用户获得更好的体验,性能优化永远是开发者们的重点任务,和用户交互最密切的前端性能更是会影响用户去留的因素。
在前端领域,性能问题常常同样表现为空间和时间两种,顾名思义:

以上都是从面试角度来介绍的一些知识点,但在实际工作中,通常是以某个项目为出发点,从页面启动、请求资源,到解析数据、渲染页面,分析各个过程中哪些阶段的耗时较大,然后针对性地进行优化。比如:
除此之外,很多时候我们的项目在迭代过程中,性能也会随着产品需求的增加、代码的不断变更而逐渐下降,因此我们也可以考虑怎样可以自动发现性能问题,性能分析的自动化实践会在相关章节中专门介绍。
所谓前端工程化,更多情况下是指使用工具自动化地完成一些以前需要开发手动解决的任务,一般来说涉及各式各样的构建/打包工具、脚手架、CI/CD 和流水线的搭建、代码部署及灰度发布等过程的自动化。
如今前端项目大多数都使用了模块化,而如果想要将多个文件的代码打包成最终可按照预期运行的代码,则需要使用到代码构建工具、脚手架等。这部分内容可能会包括前端模块化、 Webpack 和代码编译和构建。

除了构建工具和脚手架相关,如今自动化、流程化的实践也越来越多,包括持续集成和持续部署以及自动化流程。

一些规模较大的项目,通常由多人合作完成。因此,多人协作之间同样需要进行规范化,以及使用工具保证流程按规范执行,包括代码规范和开发流程。

对于以上内容,工程化相关章节会带你了解代码构建过程,以及 Webpack 的设计和运行机制;也会带你认识多人协作项目的问题,学习相关的解决方案;并介绍前端工程化的实现,以及其带来的好处。
如今前端团队规模在不断扩大,团队协作越来越多,如何提升团队协作的效率也是大多数团队需要面临和解决的问题。因此,工程化和自动化是如今前端的一个趋势,相关基础建设也越来越受到重视,相应的解决方案也愈加成熟。
当我们的应用已经稳定上线,更多时候我们会关注如何及时发现问题、如何快速定位并解决问题,此时会需要依赖前端监控。
前端监控涉及页面的整体访问情况、页面的性能情况、用户问题反馈、监控和告警能力等,常见考察内容包括数据上报和实时监控。

对于大型项目来说,灰度发布几乎是开发必备,而监控和问题定位也需要各式各样的工具来辅助优化。更多的时候,上报的数据需要落盘到服务端、同时还需要定时甚至实时的数据清洗、计算能力,因此我们设计的灰度监控方案、数据上报和可视化方案,都会与我们团队的整体系统架构有关。这些内容会在前端监控相关章节中进行详细的介绍。
大家都不喜欢低效的加班,效能提升的意识在工作中很重要。但实际我们的工作中会有很多烦琐又重复的工作内容,因此面对这些工作的态度是否积极、是否会思考如何去解决这样的问题等都可以作为面试的加分项。
候选人通常可能被问到的问题包括: