购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

PREFACE
前言

为什么写作本书

程序员如何成长为架构师?程序员在成长为架构师的路上,通常会遇到许多问题,以下列举了其中一些比较普遍的。

1)架构知识点繁多,是否存在一个简单的架构知识模型,方便记忆和学习?

2)一个复杂系统是如何设计出来的?是否有架构落地的指南?

3)自己目前处于哪个阶段?是否存在清晰的架构学习框架?

4)DDD(领域驱动设计)和面向对象之间存在什么样的关系?DDD的本质又是什么?

5)敏捷和DevOps是两个事物,还是一个事物的两个方面?它们的关系和本质到底是什么?

6)虽然架构知识掌握得不错,但在面对复杂系统设计时仍然感到没有头绪或者缺乏信心,这种情况应该如何改善?

7)每次较大的业务需求变更,都会导致前期架构设计大的调整甚至推倒重来,如何有效提高处理这种情况的能力?

总之,程序员在成长为架构师的过程中通常会经历3个阶段,每个阶段都有一道主要关卡,即该阶段中的最大难关。一般而言,只有跨过了这道关卡,才表明已经掌握了该阶段的知识,并成功进入下一个阶段。上述问题实际上都可以对应到3个阶段及其关卡中。

第一个阶段是 知识体系搭建 ,即初期如何学习并掌握大量的架构知识。这一阶段的关键是寻找好的学习方法或途径,否则很容易被困在“知识迷雾”中。问题1到问题4可划到这一阶段。

第二个阶段是 认知突破 。许多架构师深有体会,即使已经掌握了丰富的架构技能,在面对复杂系统挑战时也不能游刃有余地处理。因为架构是一项综合性工作,更需要技术之外的认知提升来应对复杂情况,否则就容易陷入“认知瓶颈”。上面的问题5到问题7可划到这一阶段。

第三个阶段是 架构本质探寻 。当一位架构师已经具备了驾驭复杂系统的能力后,就会开始思考架构知识体系的本质是什么,并能持续更新架构知识体系,提升认知和解决问题的能力。

本书旨在为读者厘清架构师成长之路上的3个阶段及关卡,并对每个阶段的问题进行答疑解惑。

本书特色

1) 关注本质的理解。 尽管本书是一本架构技术类的书籍,但是讨论的内容并不仅仅停留在技术层面,而是尝试探讨技术的本质或原理是什么,让读者尽可能知其然,也知其所以然。例如,本书探讨了敏捷、DevOps、DDD等多种技术的本质。

2) 关注案例的类比。 不论架构设计还是编程,都属于计算机虚拟世界中的技术。本书将现实世界中的案例与虚拟世界中的技术进行类比,帮助读者更深入地理解相关技术。

3) 关注模型的抽象。 通过模型来学习相关知识对读者很有帮助。本书不仅提出了架构知识的模型,在讲解企业架构框架TOGAF、数字化等内容时,同样构建出相关的模型,以方便读者学习。

4) 关注思维的融入。 思维模式与技术应用之间的关系,就像是一座冰山的水面下和水面上的关系。我们往往只关注“水面上”的部分,而忽略了“水面下”的部分,这是不完整、不深入的。本书将重点介绍10种底层思维模式,希望能为架构师提供一种打破“认知瓶颈”的思路。

读者对象

本书主要适合以下读者阅读。

1) 程序员。 通过本书,程序员可以学到一种成长为架构师的认知框架。该框架内部已将编程和架构关联起来,能够让程序员从现有编程知识出发,更快地掌握架构相关知识。

2) 架构师。 通过本书,架构师可以学到一种全面认识企业架构的方法。

3) 需求分析人员或产品经理。 通过本书,需求分析人员或产品经理可以掌握一套需求分析和业务架构设计的方法,建立对企业、需求和架构的完整认知闭环。

如何阅读本书

本书共10章,分为3个部分。

第一部分(第1章)提出一种架构认知的方法论,即 架构认知框架=架构知识模型+架构落地方法+架构思维模式 ,后续章节将会围绕此方法论展开。

第二部分(第2~4章)介绍架构知识模型,即 架构知识模型涵盖信息交换、架构编排、架构演进 。该模型将大量的架构知识进行分类与结构化,同类架构知识之间通常存在一些共性规则,可以相互借鉴。

第2章介绍信息交换,帮助读者从全局视角厘清系统描述的3种维度及相应的模型。

第3章介绍架构编排,探讨架构编排的真正内核,给出一种架构设计的通用思路,即从编排维度来解决高并发、高可用等设计问题。

第4章介绍架构演进,重点探讨了敏捷和DevOps的关系与本质。

第三部分(第5~10章)介绍 架构落地方法与架构思维模式 。本书提出一个标准化的端到端架构落地方法,该方法是在RUP(统一软件开发过程)、DDD和TOGAF(The Open Group开发的一种架构框架)等各类架构理论基础上融合而成的,以帮助读者有效应对复杂系统的设计。然而在面对复杂多变的系统设计时,架构师所面临的主要挑战往往不只是技术层面,更多的是对业务、环境、技术、管理等整体性的认知和把控。本部分提出的架构思维模式旨在帮助架构师提升认知水平,以应对复杂系统的整体性挑战。

第5章重点介绍企业架构框架TOGAF,并对其中的企业和企业架构概念进行了扩展介绍,让读者站在宏观视角看待企业架构和实施方法。

第6章介绍需求分析阶段的落地方法,让读者对从需求捕获到业务架构设计的整个流程有一个完整的认识。

第7章详细介绍架构设计阶段的落地方法,同时详细介绍应用架构、数据架构和技术架构的设计,并深入探讨了DDD的本质、DDD与面向对象的关系以及战略和战术设计。本章是架构设计的核心内容,希望读者通过本章的学习能真正领会每一项架构设计的核心关注点,澄清理解上的误区,从而在实践中自如地运用。

第8章重点介绍系统实现阶段的高质量代码标准。

第9章关注系统维护阶段,介绍问题定位、数据分析和系统规模扩张的有效应对策略。

第10章以辩证思维的方式介绍5对底层思维模式,希望读者能够认识到思维模式的重要性,并加以实践。

勘误与支持

如果读者对本书有任何疑问或建议,欢迎发送邮件至lingxi666@yeah.net。此外,笔者的公众号“灵犀架构课堂”会持续发布架构技术栈知识和实践心得。

致谢

感谢曾一起共事的领导、同事对笔者的指导和鼓励。

感谢家人长期以来的爱和无私奉献。 PZ+U22t8KcdwJmDVsW98cJmMLruu08utMa2EAC1HhRuK7Ivc3myaydZK5Gs640le

点击中间区域
呼出菜单
上一章
目录
下一章
×