ltaoo's web

前端有架构吗?- 《前端架构设计》读后感

工作了一段时间后,想在前端领域有更深入的学习,购入了这本《前端架构设计》(下称本书),看看前端架构是什么、怎么做、能带来什么好处。

下载后迫不及待的打开阅读,两小时后就扔一边再也没有打开过了。本书没有解决我的任何疑问,作者提出的架构,在我理解中更多是“工作流程”,

前端架构是一系列工具和流程的集合,旨在提升前端代码的质量,并实现高效、可持续的工作流。

这是作者给前端架构下的定义,这些具体是指什么呢?下面分别从“代码”、“流程”、“测试”和“文档”四个部分——这是作者认为前端架构的核心——进行讨论。

代码规范属于架构吗?

作为开发者,我们最关注的肯定是写的代码,HTMLCSS以及最重要的JavaScript。在项目日益复杂的今天,我们往往是团队合作,这就要求写出的代码必须有良好的可维护性。

作者提出“为代码和资源设定一个期望”说明架构在代码层面的作用。并给出了CSS可以使用BEM等一些模块化理论;JavaScript需要做到良好的代码设计;以及公司or项目特有的约定。

实际上,每个公司都会有编码规范,这应该是一种基础文化比如使用BEM还是OOCSS。又或者在项目中预设了一些代码规范,但这归属于“前端工程”更恰当而非“前端架构”。

流程属于架构吗?

同样的理由,前端工作流程,也是日常工作中应该遵守的约定,从启动项目到编写代码,从提测到 bugfix,这些都是明确写在工作流程文档中的,几乎不会有变化。

测试属于架构吗?

看到这里有一些要放弃了,虽然作者提到的知识点都是有价值的,但不应该出现在“架构”命名的书中。
测试包括单元测试与端测试,由于端测试产出比太小而很少使用,但无论单元测试异或端测试,都是为了代码质量,后端会将要求写单元测试归属在架构吗?

作者这里提到一个视觉还原测试,比端测试还要夸张,会有人使用吗?

文档属于架构吗?

每个项目都需要完善的文档,这一观点非常赞同。无论是便于自己后续维护还是让后续维护者易于维护,文档的价值是非常大的。
为了解决人工文档维护可能不同步的问题,作者给出了一些现成的文档解决方案,都很有借鉴价值。
但仍无法将文档的维护归属在“架构”领域,实际上真正做到每个项目都有详尽的文档是一件非常困难的事情,导致很多项目没有文档,

总结

作者一开始就提到:

在后端开发领域,系统规划可拓展性非常关键,因此软件架构师备受重视。

是否前端关注这两点也就可以称为“前端架构”了呢?如果可以,作者提出的“流程”、“测试”以及”文档“,并没有过多涉及到这两方面,更多的是作为一个前端日常开发要做的。
所以,前端有架构吗?类似于后端的那种。