前言

软件行业技术开发从业人员众多,但具备若干年开发经验的普通开发人员往往面临个人发展的瓶颈,即如何从普通开发人员转型成高层次的系统架构师和技术管理人员。想成为一名架构师,应当具备全面的知识体系,需要进行系统的学习和实践。很多开发人员有往架构师转型的强烈意愿,但苦于找不到好的方法和路径。本书把“程序员向架构师转型”作为切入点,提供架构师所需的各方面技能和相应的学习方法,包含针对转型的一些思路、方法、工程实践及可能会碰到的问题和解决方法。本书从架构师的定位及如何成为一名架构师的角度出发,除了技术和设计之外,还会介绍各项系统工程方法论和软能力,旨在为广大开发人员提供一套系统的、全面的转型指南。

本书从“向架构师转型”的角度出发,结合作者在传统及互联网行业多年的技术与管理工作经历展开论述,结合方法论和工程实践,具有较强的针对性和适用性。架构师是一种综合性强的工种。本书整体上是“技术”结合“过程”的行文思路,具备一定深度的同时也涉及更广的知识领域和体系,满足读者往架构师转型过程中的各种技能需求。同时,本书在介绍技术及过程管理的内容时,采用“思路→方法论→工程实践”的三段式模型,不光告诉读者可以怎么做,更重要的是提供了对问题的分析及解决思路和方法论,并辅以相应的工程实践和案例分析。对架构师而言,具体的技术和工具并不是重点,解决问题的思路和方法论才是本质。本书会在这些方面提供一定的指导并进行总结。

全书共分为4个篇幅,共计9章内容,分别从不同的领域对架构师转型所需要的各项技能展开讨论。

1.程序员向架构师转型概述篇:剖析架构师角色,提供架构师的视图和视角及程序员向架构师成功转型的思路。

2.系统架构设计知识体系篇:介绍软件架构体系结构、领域驱动设计、分布式系统架构设计、构架实现技术体系等架构师所应具备的主要技术体系内容。

3.软件架构系统工程篇:介绍软件工程学、敏捷方法与实践、软件交付模型等架构师所应具备的系统方法论和相关工程实践。

4.架构师软能力篇:包括架构师与外部环境、自身团队和转型所需的意识形态。

本书面向立志于转型成为架构师的后端服务开发人员,读者不需要有很深的技术水平,也不限于特定的开发语言,但熟悉Java EE常见技术并掌握一定系统设计基本概念有助于更好地理解书中的内容。通过本书的系统学习,读者将在普通开发人员的基础上向前跨出一大步,在思想、方法论、实践能力和综合素质等各个方面往一名合格的架构师方向发展,为后续的工作和学习铺平道路。

在本书的撰写过程中,感谢我的家人特别是我的妻子章兰婷女士在我占用大量晚上和周末陪家人时间进行写作的情况下,能够给予极大的支持和理解。感谢以往及现在公司的同事们,身处在业界领先的公司和团队中,让我得到很多学习和成长的机会。没有平时大家的帮助,不可能有这本书的诞生。最后,要特别感谢北风网的童金浩和罗思捷老师,提供了北风网(http://www.ibeifeng.com)这样优秀的互联网教育平台完成本书配套视频的录制和发布。

由于时间仓促,作者水平和经验有限,书中难免有欠妥和错误之处,恳请读者批评指正。可关注微信公众号“程序员向架构师转型”或扫描以下二维码与本书作者进行联系。

郑天民

2016年12月于杭州钱江世纪城