很多人可能和我一样是第一次听到“前端架构”这个词,第一反应是:“前端架构呢?”在后端开发领域,系统规划和可扩展性非常重要,所以在开发工作开始前很久就邀请架构师加入项目,他们会和客户讨论要搭建的平台的架构需求,将使用什么技术栈?什么是内容类型?创造?软件架构师的职责是确保项目中的每一步都在总体架构的指导下进行,而不是随意决定。在目前的前端领域,随着JS框架、UI框架以及各种类库的丰富,前端架构也变得非常重要。如果一个大型项目没有合理的前端架构设计,那么前端代码可能会被不同的开发者随意引入。各种库和UI框架会导致代码量变得异常臃肿,最终的结果可能是代码变得无法维护,页面性能低下,不得不推翻重构。因此,我们需要在项目开始前就对前端代码进行结构化。一旦前端架构师设计了所有前端开发人员必须遵循的检查机制,建立了系统设计的规范,那么项目就有了衡量代码质量的标准,前端开发人员就可以还可以享受更高效的工作流程。因此,前端架构的定义可以用下面一句话来概括:前端架构是一系列旨在提高前端代码质量,实现高效可持续工作流的工具和流程的集合.本系列前端架构文章将围绕前端架构的四大核心展开,即代码、流程、测试、文档。前端架构的四大核心(一)代码归根结底,所有的网站都是由一堆文本文件和资源文件组成的。当我们面对制作网站产生的大量代码时,我们会发现对代码和Resources设定一个期望是多么的重要。在代码部分,我们将重点介绍如何在系统架构中实现HTML、CSS和JavaScript。(2)流程已经过了FTP上传文件的时代,所以现在重要的是思考如何使用工具和流程来构建一个高效无差错的工作流程。工作流程变得越来越复杂,适用于它们的工具也是如此。这些工具带来了更高的生产力、更快的效率和一致的代码的惊人效果,但同时也伴随着过度工程化和抽象化的风险。因此,需要改变现有的工作流程。(3)测试要构建一个可扩展的、持续优化的系统,需要保证新旧代码能够很好的兼容。我们的代码不是独立存在的,它们都是一个更大系统的一部分。创建广泛的测试解决方案以确保旧代码它仍然可以正常运行。(4)文档一般来说,如果不是团队重要成员的离开,我们很难意识到文档的重要性。到时候,大家就得停下手头的工作,优先把所有的文件写好。作为一名前端架构师,在开发项目的同时,一定要善于写出好的文档。ProcessCore目前的前端工作流程已经发生了很大的变化。在Web开发初期,一般的工作流程是通过邮件往来了解客户需求,然后通过FTP登录他们的服务器,对网站代码进行必要的修改。这种做法非常不成熟。如果您误解了电子邮件的内容并更正了错误的代码,会发生什么??如果修改了一部分css代码,导致很多页面布局被破坏怎么办?如果我更改了一个JavaScript错误,但导致了两个错误怎么办?经过多年的项目开发,现在我们已经有了一套完整成熟的开发流程,一般公司的开发流程是这样的步骤:PM(产品经理)提出需求,与开发人员讨论需求的具体细节和可行性.确定需求后,发布原型图和需求文档。文档开发好了,前端还需要UI(网页设计师)提供设计图。项目总监使用JIRA等项目管理工具跟踪工作流程,搭建测试环境对代码进行测试。开发人员完成功能开发并自测通过后,提交给测试人员和需求方测试通过后,将代码合并到远程master分支并部署上线。下面从各个环节来探讨他们在现代开发过程中的必要性:(1)需求提案是开展在开发初期的工作中,PM提出明确的需求后,FE(前端开发人员)就可以进行开发。当然,对于开发者在提出需求时是否需要参与讨论,互联网行业存在着不同的争议。有人认为,开发人员在需求阶段应该有人员参与,可能会因为开发人员的技术认知水平、思维惯性等因素,限制PM提出创造性需求。有人认为应该让开发人员参与需求讨论,因为可能是因为PM根本不懂技术,导致需求根本无法实现。毫无疑问,PM比开发人员更懂需求,因为他们在将需求通知开发人员之前,会完成一系列的需求收集、需求描述、需求全景图、需求分析、用户故事等专业工作。但是我同意开发者在需求方面也可以有一定的话语权。PM让UI、FE、BE(后端开发人员)在需求表达阶段参与讨论,这不仅可以让开发人员更好地理解需求,还可能让PM发现一些被忽略的点,从最好提出一个完整的计划。(2)Prototype原型图是现代开发过程中不可或缺的一部分,它对于项目中的各个角色都有着重要的意义:PM需求验证方式:PM使用Axure绘制原型的过程也是构思自己的产品。通过原型,PM可以更好地了解产品。需求方确认需求的工具:PM理解的需求可能与需求方的需求不同。设计为需求方制作原型图来验证需求的正确性是非常必要的。UI设计的设计图还是老样子:原型几乎就是整个界面的原型。拿到原型图后,UI可以更好的根据原型图和PM讨论其设计风格,更快的将设计图交付给FE,大大降低了沟通成本。开发者开发依据:初级前端可能只持有设计图进行裁剪,很可能裁完图后发现功能根本无法添加。有经验的前端会同时使用设计图和原型图进行开发。通过原型图写js的业务逻辑部分,通过设计图写html和css。同时,原型图也是后端开发者提供业务接口的依据。测试人员测试的依据:作为现在的测试人员,可以从原型快速了解产品的核心功能,以及页面大概的展示形式,方便测试人员提前了解和评估需求。制定测试计划,分配测试任务,然后开始编写测试用例。可以说,(1)和(2)步骤是前端开发人员进行开发的前提条件,而原型实际上是为了让项目中的每个角色更好地理解需求。下面我就用一个例子来说明什么叫真正理解需求。需求场景假设你加入了一个目前有论坛的项目,产品经理C提出了一个“论坛增加评论功能”的需求。作为前端工程师,A在接到需求后,如何高质量的完成这个需求?项目名称:兴趣论坛项目主要成员:前端工程师小A,后台工程师小B,产品经理小C产品需求:论坛增加评论功能。这时,小A接到需求后,脑子里可能会出现如下画面:Requirementclarificationandrequirementconfirmation可能有的同学听到需求后就开始开发了。不就是一个简单的评论功能吗?一个
