第一部分 架构设计方法论
■第1章 架构师的修炼
■第2章 逻辑架构设计
■第3章 数据架构设计
■第4章 开发架构设计
■第5章 运行架构设计
■第6章 物理架构设计
成为一名优秀的架构师,是很多对技术提升有着无比执着甚至痴狂追求的技术人的梦想。那么,顶级架构师的核心竞争力到底是什么?笔者认为,是对架构设计的认知以及顶级的思维模型。这种顶级思维模型就包括能够根据不同的业务场景权衡利弊的设计思维,而不是照搬一线大厂的架构设计。
俗话说:不想当将军的士兵,不是好士兵。同理,不想成为顶级架构师的架构师,也不是好架构师。那么,顶级架构师与普通架构师的差距到底是什么呢?有人认为是情商,有人认为是智商,有人认为是自身的努力程度。但笔者认为,这些都不是最关键的因素,最关键的因素在于对技术的认知。
认知的差距是决定人与人之间差距的最关键因素。因为认知决定你的方法,方法决定你的选择,而选择决定最终的效果。作为顶级架构师,首先应当具备与身份相匹配的技术认知。如果没有这样的认知,还在思考低层次的问题,即使学了再多的知识,有再多的工作经验,也都只能做简单的重复劳动。这就是为什么有些人工作了五年却只有一年的工作能力,而有些人只工作了一年却拥有五年的工作能力。其中的本质原因就在于你的思维方式、你的认知。
总结起来,架构师的认知有四个阶段(下图所示),愚昧之巅(不知道自己不知道)、绝望之谷(知道自己不知道)、开悟之坡(知道自己知道)与持续平衡的高原(不知道自己知道),这也是架构师的认知逐步提升的过程。
架构师的四个认知阶段
在这个图中,纵坐标是架构师的自信程度,横坐标是其知识与认知的水平,也就是这四个认知阶段。在“愚昧之巅”阶段,架构师比较自大,不愿接受新鲜事物,自我感觉良好,但很多时候并不知道自己不知道。这个阶段的架构师最大的特点就是,当他与人沟通的时候,只要发现与他的认知不一致,都会认为对方不对,开始攻击和抵制对方。他听不进去别人的意见,但自己去做又做不好,总是有很多问题。
这个阶段的架构师在碰壁多次、遇到很多问题后,就逐步开始思考为什么会出现这些状况,开始自我反省。通过碰壁与自我反省,逐渐发现自己其实还有很多不知道的,会坠入“绝望之谷”。坠入“绝望之谷”的架构师,自信心受到了很大的打击,开始变得不自信,甚至开始绝望。这时候就有两个选择,要么继续堕落,要么知耻而后勇,开始奋发努力。
处于“绝望之谷”不可怕,可怕的是不能正视自己。成长需要学习很多知识,不仅是技术知识,还有思维方法、沟通技巧,甚至哲学。进入学习状态的架构师已开始进入第三个阶段:开悟之坡。
“开悟之坡”是一个非常漫长的爬坡过程,需要架构师长期学习、持续进行项目实践。在这个过程中,我们强调努力学习,但更强调将学习到的东西快速地在软件项目中实践。没有实践,学习再多的东西也是无用的,只有实践才能让知识产生价值。因此,好的架构师都是技术的实践者。
经过“开悟之坡”阶段的架构师,既具备理论知识,又拥有实战经验,性格也变得越来越开放,愿意与人探讨,能接受不同的声音,变得越来越谦逊。在与人探讨的过程中,不害怕自己不懂。当发现自己不懂时,应该以开放的心态去学习、去了解,学会了就懂了,就会让自己变得更强大。相反,生气、发脾气、掩饰自己的不懂,都是一种不自信的表现,只会让自身拒绝成长、停止进步。
当架构师开始变得谦逊,不断努力积累知识与经验,就逐步达到了最后一个阶段:持续平衡的高原。在这个阶段,架构师的认知必须逐渐上升到哲学思维的高度,具备透过表象抓本质的“击穿”能力。也就是说,这时你在一些具体的领域已经具备相当丰富的知识与经验,但如果将你放到另外一些新领域又该怎么办呢?怎么通过以往的经验去攻克新的难关?这时,你必须要从以往的知识与经验中提炼共性,甚至是更高层次的方法论、思维方式与学习方法。只有抓住事物的本质,架构师才能更加高效地攻克更多新的领域,实现举一反三。架构师只有达到了这样的层次,才能站得更高,看问题更透彻,提出更多优雅的解决方案。
比如说,制订技术架构和做技术管理,是不同的领域,但都是架构师必须面对的问题。这时候,架构师应当怎样去思考,怎样优雅地解决问题呢?你会发现,它们虽属不同领域,要解决的问题的本质都一样,那就是“降本增效”。这个本质就是“道”,但解决问题的方法各不同,那就是“术”。大道至简,就是能够在纷繁复杂的事物中敏锐地发现它们的共性,但实现“道”的“术”各有不同。作为顶级架构师,就是要具备敏锐抓住“道”的能力。
那么,怎样才能具备这样的能力呢?一上来就开始悟“道”,这可能吗?不可能。人类对抽象的认知都是非常困难的,但所有对抽象的认知都是源于对大量具体事物认知的抽象。因此,架构师不能好高骛远,必须踏踏实实地积累基础知识,同时,需要勤于思考,学会抽象,学会抓本质。
此时,到了最后一个层次,“不知道自己知道”。也就是说,达到这个层次以后,你会经常去接触更多新的领域,尽管一切都是陌生的,但你已经具备举一反三的能力。拥有这样的能力,你就可以快速学习新的领域,甚至在新的领域中获得比别人更深刻的认知与领悟,这就是架构设计的哲学本质。
明白了这些道理,那么我们就沿着这样的思路开启顶级架构师修炼之旅吧!