《架构漫谈》摘要

一、“Architecture is like teenage sex,everybody talks about it,nobody really knows what is it.”

     “Architecture is both the process and the product of planning,designing,and constructing buildings and other physical structures”

    把一个整体切分成不同的部分,由不同角色来完成这些分工,并通过建立不同部分互相沟通的机制,是的这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构

    架构产生的动力(原因),当系统规模达到一定程度:

    1)必须有人执行的工作。(无需人工介入,也意味着不需要改造,也就不需要架构了)

    2)每个人的能力有限。(分工细致,所能专注的事情有限,需要协同)

    3)每个人的时间有限。(系统工程需要有限时间内完成)

    4)人对目标系统有了更高的要求。(提升,是推动架构变革的源动力)

    5)目标系统的复杂性使得需要多人完成。

    架构就是:

    1)根据要解决的问题,对目标系统的边界进行界定。(解决有限问题,而非无限延展的问题)

    2)并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或者串行的开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。

    3)根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

二、架构实际上解决的是人的问题,而概念是人认知这个世界的基础,自然改变的认识就非常的重要。

    根据架构的定义,要做架构所首先必须具备的能力就是能够正确的认识概念,能够发现改变背后所代表的问题,今儿才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

    做好架构首先需要做的就是是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决80%了,这个能力基本上就能决定架构师的水平。

    找到问题的主体,是做架构的首要问题,我们要解决的问题,一定都是人的问题。更进一步,架构师要解决的,基本都是别人的问题,不是自己的问题。我们一定要明白,任何找上架构师的问题,绝对都不是真正的问题。为什么呢?因为如果是真正问题的话,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。(解决方案,不是问题的主体;比如用户需要一把锤子,这是解决方案,不是问题主体,问题的主体是“用户需要锤子解决什么问题?”)

三、架构切分

    切分的本质就是利益的调整;切分的几个原则:

    1)必须在连续时间内发生的一个活动,不能切分。比如孕妇怀孕,必须要10月怀胎,不能切分成10个人一个月完成。

    2)切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。如果权利和义务不对等的话,会伤害每个人个体的利益,分出来执行的效率会比没有分出来的还要低,实际上也损害了整体的利益,这违背了提升整体利益的初衷。(利益相关者)

    3)切分出来的部分,不应该超出一个自然人的负载。

    4)切分是内部活动,内部无论怎么切分,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。

    所有的架构分拆,都应该是形成树状的结果,不应该变成有向图,更不应该是无向图。很多人谈架构,必谈分层,但是基本上都没有意识到,是因为把一个整体分拆为一棵树,因为有了树,才有层。

    实际上切分的过程就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念。

    任何架构调整都会涉及到组织架构,千万不可轻视。同样,如果对于stakeholder的利益分拆不够透彻,也会导致架构无法落地,因为没有人愿意去损害自己的利益。一旦强制去执行,人心就开始溃散。这个也不一定是坏事,只要满足原则2)就能够很好的建立一个新的次序和新的利益关系,保持组织的良性发展,长久来看是对所有人的利益都是有益的,虽然短期内有对某些即得利益者会有损害。

四、架构师的前提条件:

    如果一个人在工作中,只是致力于完成自己的工作,已做好自己的工作为主要目标,那么最多只能成为一个工匠,无法成为一名架构师。因为这个过程解决的还是自己的问题。当我们所做的工作处于社会分工的一环,需要帮助别人解决问题,并且按时解决别人的问题成为我们自己的问题的时候,我们就有了时间压力,潜意识里就会自然而然的有一种对时间的恐惧。这个恐惧在潜意识里会想方设法推动我们采用各种手段,以便及时的完成工作。

    要成为架构师,必须要超越这个恐惧才能看清楚,我们要解决的是别人的问题,不是自己完成工作的问题。因为仅仅完成了自己工作的问题,也并不一定就解决了别人的问题。

    “如果问题不解决,究竟谁会有利益损失?如果问题解决了,究竟谁会有收益,谁的收益最大?”回答了这两个问题,我们就能找到“问题”的主体。

    架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。所以很多公司设立了很多架构师职位,但是并不具备调动组织架构的权利,那么这个架构师的职位一定是形同虚设。架构师只能够通过建立某种流程来形式架构师的权利,比如强制架构review,反而会造成很多内部不必要的冲突,最终都会导致这些流程流于形式,得不偿失。相信很多人都已经经历过这些,但似乎很少有人回去探讨这是为什么。

    所有架构的核心就是组织架构。或者也可以这么说,一个合格的组织领导人,一定必须是一个合格的架构师。

五、技术与架构、业务之间的关系

    技术是为了解决业务的问题而产生的,没有业务,技术就没有了存在的前提。

    1)在解决一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效、高成本的技术。这事人类利益诉求所决定的。

    2)一般刚开始解决根本问题的技术效率比较低的,只是把不可能变成了可能。然后就会有提高效率的需求出现,要求改进这个技术。

    不同的技术,通过树状结构,组合在一起,形成一个完善的架构解决方案,共同完成业务的目标,这就是技术、业务和架构的关系。

猜你喜欢

转载自shift-alt-ctrl.iteye.com/blog/2342331