zoukankan      html  css  js  c++  java
  • 《架构漫谈》读后感

      作者通过一个人群的分工配合的例子引出了他对架构的一个定义:把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动。再总结一下,架构是一个有不同部分构成的一个整体,且不同部分之间是相互联系的。

    架构是由人类自身的缺陷和出于目的而产生的。人类自身的能力和专注力有限,而想要的目标却往往是一个人不能达到的,于是不同的个体联系成一个整体,通过个体之间的协调和沟通而达到一个共同的目的,使得整体的存在有明确的意义。

      在作者的第二篇内容中,我们首先要有的一个了解就是“架构实际上解决的是人的问题”,我们已经知道,架构的产生是由人驱动的,因为人的存在,架构才有意义。而理解架构的基础是“概念”,然后他给我们详细的介绍了几个概念,包括“概念”,还有相和抽象。作者从辩证的角度来为我们解释这几个概念,感觉作者都要成为哲学家了。这些概念的解释都是为了作者对做好架构首先必须具备的能力所做的铺陈,而这个能力就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。我们有对于概念已经到了一个下意识的认识的阶段,就是当我们谈论到一个概念的时候,我们在了解的情况下,会立刻在脑海浮现这个概念所代表的实际意义,但这个理解有可能会被我们的非下意识的探索而瓦解,瓦解之后重新建立起来的“理解”,则是对这个概念的本质的探索。老师经常会说,遇到事情要多问为什么,一个很简单的问题,当遇到一连串的问什么,就会变成一个复杂却更有意义,更能贴近我们询问的出发点的答案。

      “为什么?”真正明白“为什么”的工程师,才可能成长为一个合格的架构师。几乎所有与软件有关的职业和著作都要求对一个问题的解决,那就是“问题”,这不是文字游戏,而是实实在在的关键所在。但是怎么弄明白“问题”呢?首先就要找到问题的主体,因为架构是和人分不开的,虽有问题的主体往往就是问题的对象——人。一个问题,对象不同,即主体不同,主体不同所带来的解决方式也很可能不同,不同的解决方法,其中的绝大部分往往就不是最让人满意的解决方法了,因为我们没有搞清楚这到底是谁的问题。 

      找出了问题,我们就可以去解决问题了,怎么去解决?不同的个体构成一个整体,那这个作为整体的问题也需要分成不同的个体到每一个个人身上。在分解的过程就产生了怎么去分解的问题。切分的调整即是对个人利益的调整,说到切分和利益,就想到一个老师讲过的故事:一群人分粥,怎么分才最公平。当然有很多选项,也可听者自行发挥,这里就直接说老师的答案了——让一个人来为大家分粥,分粥的人最后取粥,这或许不是最好的答案,却已经是很好的结果。分粥的人想要得到的更多,但是如果给别人分的少的话,别人就会抱怨他,给别人分的多了,自己就又少了,于是就产生了大家都认可的公平。切分的过程有舍才有得。以下是作者最架构切分的总结:

    1. 架构的切分的导火索是人的负载太重。
    2. 架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。
    3. 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
    4. 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

    谈了半天架构又是为什么呢?不仅是在建筑中存在架构的概念,软件中也是这样存在的。早期的软件和硬件都是昂贵的,而要完成软件的开发,除了这两个,当然还需要更为昂贵的人的参与,软件发展到后来,各种各样的开发语言和技术,不仅培训相应技术的软件工程师是一件高成本的事,对软件工程师来说,学习掌握多种技术也是一个极大的负担,在成本和负担的驱动下就有了软件架构师的重要性。用为软件工程师设计不同的分工来完成一个整体,从而达到最大利益。

     

  • 相关阅读:
    火狐firefox进行post提交测试
    spring cloud:config-eureka-refresh
    spring cloud:config
    使用Docker部署Gitlab
    Docker配置加速器
    spring cloud:eureka
    Sql Server 出现此数据库没有有效所有者问题
    将VS2012的项目转化成VS2010
    SQL Server 2008将数据库数据导出到脚本
    Sql Server 显示插入Identity字段
  • 原文地址:https://www.cnblogs.com/little-clever/p/5443936.html
Copyright © 2011-2022 走看看