前端工程化:体系设计与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

推荐序 技术之外

前端工程体系是一种服务,以项目迭代过程中的前端开发为主要服务对象,涉及开发、构建、部署等环节。

——摘自《前端工程化:体系设计与实践》

 

阿里的玉伯曾经问过我一个问题:前端该不该碰业务?具体一点地说,就是前端要不要了解后端的业务逻辑,甚至将部分这样的逻辑与规则放在前端来处理与实现。我当时思考了片刻,给玉伯的建议是:前端还是不要碰业务逻辑,围绕着交互做就好了。

事实上这个问题的答案有很多,不同的场景下也可以各有权衡,所以上面的答案也并非标准答案。但我在这里提及这件事情的原因是:这个问题的前设、背景与分析过程,是技术无关的。显而易见,我们并没有讨论哪一种框架来解决何种技术问题,又或者在技术上如何做前后端分离。我们是在讨论一个根本上的工程协作问题:谁,该做什么?这个问题的关键点,就是“什么是领域划分的事实依据”。

前端的工程化,事实上还处在一个原始阶段。我们如今之所视,可以一言以蔽之:或在对语言内在功能特性的补充,或在对其外在组织能力的补充。这些种种补充,尽是在工程体系的“工具”这一隅上做的功夫。可以预见的是,在前端工程这个体系上前行,必然面临的问题是过程的优化和方法论的建立。然而如今前端在这些大的、根本性的问题上并没有任何触及,甚至连上面这样的“领域划分”问题都没有被认真地讨论过。

这些问题,也都如同开始的那个问题一样,是在技术之外。

所幸作者是意识到了这一点的。他在本书中将“前端工程体系”定义成一种服务,而非一种工程模型。从作者的定义来看,这个体系是可资实用的一种工具——可讨论、可实现,以及可以演化与重构,并遵循这些服务的设计原则、问题场景以及应用的约束。在我看来,这些内容才是书中的闪光点。

除此之外,本书还详细地讨论了其中有关脚手架、构建过程和本地工程化服务等现实中的工程实践所得,并为这些实践构画了一个参考模型。这使得本书提供了大量前端工程师可借鉴、参考并投之于生产实作的最佳实践。我想,作为结果,这些实践的优劣得失尚待时间验证,而作者在这一过程中的分析与观点,也可待业界指正评点。

而我所愿者,亦在读者能与我一道,在技术之外多做一点点观察。

周爱民

2017.11