`
QING____
  • 浏览: 2232100 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

《架构漫谈》摘要

 
阅读更多

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

 

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics