一、前端架构的由来
2014年10月13日CSS开发者大会上,在新奥尔良会议中心一个拥挤的房间里“举起前端架构的旗帜”成了在一线奋斗着的开发者们共同的诉求。在那之后,那些想要弄清楚自身定位以及在公司中所扮演的角色的开发者们发现,其实他们一直扮演着前端架构师的角色,却从来没有拥有过这个头衔,或者没有足够的信心去争取这个职位所应具有的权力。
在大会召几周之后,很多人把他们在Twitter上的个人简介改成了“前端架构师”。
二、你理解的前端架构是怎样的?
前端架构如同建筑设计,在建设过程中,建筑设计师需要设计和规划方案,并且跟进施工过程。这与前端架构师的工作有着异曲同工之妙,不同的是后者建造的是网站,而不是建筑物。比起浇筑混凝土,建筑设计师会在设计工程构图的工作上倾注更多的精力。同理,相比编写具体的代码,前端架构师更专注于开发工具和优化流程。
前端架构是一系列工具和流程的集合,旨在提升前端代码的质量,并实现高效可持续的工作流。
前端设计架构不是一劳永逸的工作,没有任何设计在一开始就是完美的,也没有任何计划可以一步到位。
三、前端架构的原则
1.体系设计
试想一下,如果一栋建筑没有明确的构造设计,所有的重要事项都由建筑工人直接决定,那么就可能会出现这样的情景:第一面墙用石头垒,第二面墙用砖头砌,第三面墙用木头搭,第四面墙因为追求时髦而留空。
虽然网站的整体外观和风格基调完全由经验丰富的视觉设计师决定,但前端架构师掌控着背后的前端开发方法和系统设计哲学。通过设计所有前端开发人员都要遵循的系统规范,前端架构师清晰描绘了产品和代码的最终形态。
一旦前端架构师建立起了系统设计的规范,项目就拥有了可以衡量代码质量的标准,否则大家如何判断代码是否达标呢?一个精心设计的系统,应当具备完善的检验机制,并做出适当的取舍,以保证系统中的代码有实质的价值,而不是简单的堆砌。
2.工作规划
有了清晰的结构设计之后,就需要制定开发工作流了。开发人员写一行代码并且提交到线上需要经过什么步骤?举一个最简单的例子,这个过程包括使用FTP登录服务器,修改一个文件并保存。然而,对于大多数项目而言,完整的工作流可能会用到多种工具,如版本控制器、任务调度器、CSS处理器、文档工具、测试组件和服务器自动化工具等。
前端架构师的目标是设计出能流畅运转的系统。这个系统不仅能高效快速地启动,还可以通过语言分析、测试用例、文档记录等方法持续地提供有效的反馈,并且大幅减少由于重复操作而产生的人为错误。
3.监督跟进
前端架构设计绝不是一劳永逸的工作。没有任何设计在一开始就是完美的,也没有任何计划可以一步到位。客户和开发人员的需求会随着时间改变。在某个阶段运行得很好的开发流程,随后也可能需要重新调整,以便提高效率、减少错误。
前端架构师的一个非常重要的能力,就是能够持续地优化工作流程。如今各种各样的构建工具可以让大家很方便地改变工作方式,并通知到每一位开发人员。
有些人问前端架构师是否等同于管理角色,不再需要写业务代码。前端架构师不仅要写更多代码,更要会用多种编程语言,还要使用大量的工具。代码量并未减少,只是代码的读者发生了改变。前端开发人员面向终端用户写代码,而前端架构师面向的则是团队里的开发人员。
四、前端架构的核心
1.代码
归根结底,所有的网站都是由一堆文本文件和资源文件组成HTML、CSS、JavaScript的。当大家面对制作网站所产生的大量代码时,就会发现为代码和资源设定一个期望是多么重要。
2.流程
怎么用工具和流程构建一个高效且避免出错的工作流是一个重要的思考。工作流变得越来越复杂,那些用于构建它们的工具也同样如此。这些工具在提高生产力、加快效率和保持代码一致性上带来了惊人的效果,但也伴随着过度工程化和抽象化的风险。
3.测试
要构建一个可扩展和可持续优化的系统,必须保证新代码与老代码能够很好地兼容,大家的代码不会孤立存在,它们都是大型系统中的一部分,创建覆盖面广泛的测试方案,能确保老代码还能正常运行。
4.文档
设计文档是你同他人交流的工具,来阐述你的设计决策是什么,来阐明你的设计决策是什么以及为什么你的决策是好的。如果不是团队中的重要成员要离开,几乎都不会意识到文档的重要性。
这四个核心是构建可扩展和可持续优化的系统的基础。以上就是偶介绍的前端构架,相信大家对前端构架已经有所了解。希望对从事Web前端的小伙伴有所帮助。如果你想了解更多Web前端行业动态和学习资料,可以关注“武汉千锋”微信公众号!