2016年11月受电子工业出版社付睿编辑的邀请写一本关于前端工程化的书,从选题到开笔间隔了将近半年的时间。之所以前期预备消耗了这么长的时间,是因为期间对于本书所述内容的方向几次出现了偏离。对于垂直话题的技术书籍而言,任何一点微小的偏差都能够令整体方向失控。导致偏差的原因是前端工程体系和前端技术架构两者道不清理还乱的纠缠关系。
这本书讲的是服务
前端工程这个方向目前仍然处于非常原始的阶段,并且暂时没有一个绝对明确的定义和指导原则。本质原因是前端工程师的定位暂未明确,尤其是国内的环境下,有仍然在“面向浏览器兼容编程”的传统前端,有逐渐吞并web service层的“大前端”,也有跨界App开发领域的“泛前端”。
前端工程师定位不同,使用的技术体系不同,从而导致了前端技术架构的差异性。我们在此讨论的所谓技术架构包括技术选型、状态管理、模块化划分等等与业务逻辑相关的方方面面。
那么前端工程体系是什么?
对于这个问题可能不同的团队甚至不同的开发者都有各自的理解。这本书将前端工程体系解读为一种服务,是支撑前端技术架构的一系列工具、规范、流程的统称,同时兼顾开发效率的提升。比如:
- 支撑技术选型包含的编程语言、规范的约束和编译,如ES规范转译和CSS预编译;
- 支撑模块化规范所约束的模块体系的构建和加载,如散列模块打包、压缩,以及异步加载;
- 支撑前后端耦合业务的解耦开发,如Mock和静态资源部署。
这本书并不会告诉你前端工程体系的每一行代码该怎么写,而是剖析在一个前端项目迭代过程的各个阶段中,前端工程服务体系所扮演的角色和面临的问题,以及从何种角度解决这些问题。涵盖的不仅仅是前端,还包括前后端耦合业务以及部署运维层面的部分问题。
致所有原创写书人
我自认是个技术博客爱好者,虽算不得高产但也还算频繁,但写书却是一件完全不同的事情。
技术博客偏向口语化,可以嬉笑怒骂,就像两个人随意的聊天,即使说错了一句话也不会在意。而一本书对于读者来说相当于一个故事,写书人必须把故事讲的明白,让读者有所收获。所以不论是从措辞上还是引用的资料上都必须严谨,来不得半点马虎。
从选题到出版,这本书经历了将近一年的时间,我倍觉疲惫,深感不易。虽然这本书不是科学著作或者科研教材,但技术书籍的每字每行都必须绝对严谨,所写所述需务必正确。初稿编写完毕后向爱民老师请教时,爱民老师反馈说此书的后半段略显单薄。搜狐的邵老大也给了同样的反馈。因为这本书所呈现的所有内容皆是我个人以往的经验所得,经过了实践的检验。其实写到后半段时我个人也觉得单薄了一些,有过想加入一些还未来得及实践的纯理论,但马上否定了这个念头。如果书里讲的东西连作者都未得要领,岂不是误人子弟?
在此对以前所读优秀书籍的原创作者们致敬。当然,抄袭、剽窃、以及那些自己都未得要领便七拼八凑出来一本书的跟风者们不在此列,这些人甚至不能称为写书人。
未来计划
业务的不断变化,技术的不断演进,终将导致架构与服务的进化,即工程也是不断演进的。所以在未来的某个时刻,我想讲一讲架构与服务相辅相成的耦合关系,以及这种关系是如何有效地促进两者共同发展与完善。感兴趣的朋友可以关注博文视点的相关动态。
评论抽奖
发宣传文不抽奖真是有失风度啊,哈哈。自今天(2017.12.22)起一周后截止,随机抽取评论留言的朋友送书,欢迎请大家踊跃评论,也欢迎读了此书之后提出意见。