• 《架构漫谈》读后感 之“关于软件架构师如何工作”


      首先,对于“架构”这个概念来说,是有很多解释的。在古代,最早开始有父系社会,因为男人在外打猎,女人在家,男人功劳较大。而到后来,由父系社会转变成母系社会,因为女人在家耕种的效率比男人打猎的效率高。这是一种分工合作二生存的整体,相较于一人独立生活,力量更强大。

      “架构”在《架构漫谈(一)》中的解释:根据要解决的问题,对目标系统的边界进行界定;并对目标系统按某个原则进行切分,切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间;并对这些切分出来的部分,设立沟通机制;并使这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

      以我的理解,架构师需要将总任务进行分块,并分配给相应能力的人的一种职业。因为每个人都有强项,也有短板的存在,且每个人的能力和时间都是有限的,因为人的机构的限制,人同时只能专心做好一件事,所以需要分工。一旦产生了分工,就把所有的事情切分成由不同角色的人来完成,最后通过交易,使得每个个体都拥有生活必需品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事情。架构也就是一种分工。架构对于项目是有一定的“贡献度”、“推动力”的,因为通过架构,能够提高项目的质量。

      所以,为了达到架构的目的,软件架构师需具备以下能力:

      软件架构师需要主动识别问题,并解决这个问题。架构之后是对问题的分析以及解决的方案(包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等)。

      软件架构师需要认识概念。《架构漫谈》(二)中,通过对“杯子”、“桌子”和“椅子”等的概念的描述,说明对于同一个概念,用不同的语言描述,但是所面临的问题还是一样的,只不过是名字不同而已。所以,软件架构师所必须具备的能力之一:能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题。

      当软件架构师找出真正的问题后,才算解决了80%的问题。而能准确的找出正确的问题,是具有一定的困难的。

      软件架构师需要认清问题的主体是谁。《架构漫谈》(三)中,通过男女主人公的对话及做法看出,通常在处理问题的时候,会犯两种错误。第一种,被告知要处理一个问题,但是交过来的实际上是一个解决方案,不是问题本身。第二种,被告知要处理一个问题,直接通过直觉就有了一个解决方案,马上考虑解决方案如何落地,或者有几种解决方案,选哪个合适。所以,识别出真正的问题是需要一定的思考的。所以,软件架构师需在确定问题之前,得先确定是谁的问题,即问题的主语。这也是做架构的首要问题——找出问题的主体。

      软件架构师需要拥有这个自觉:发现问题永远都比解决问题来的更加重要。

      软件架构师为了能够正确的认识问题,需要清楚:这是谁的问题、有什么问题。当解决第一个问题时,第二问题也就变得非常容易了。

      软件架构师需要做好机构切分。所有的切分调整都是对相关人的利益的调整。因为维护人与人之间的关系正是利益。在确定了问题的主体之后,系统的利益相关人就确定下来了。所以又从相关利益人上出发,发现问题,解决问题。而切分的原则如下:必须在连续时间内发生的活动,不能切分;切分出来的部分的负责人,对这个部分的权利和义务必须是对等的;切分出来的部分,不应该超过一个自然人的负载;切分是内部活动,应对整个系统的外部透明。所以,软件架构师需权衡许多人的利益来切分。

  • 相关阅读:
    es6小记
    CPU密集型和I/O密集型区别
    Gulp小记
    原生表单的小详解
    div无法触发blur事件解决办法
    HMTL列表详解
    Angular开发小笔记
    Angular组件生命周期钩子
    css小笔记
    HTML格式化标签
  • 原文地址:https://www.cnblogs.com/xiaxiaoshu/p/8516638.html
Copyright © 2020-2023  润新知