架构漫谈读后感

    在这学期,我们开设了软件架构这门课,并在老师的推荐下阅读了漫谈架构九篇博客,对软件架构有了一定的认识,以及对软件架构师的工作有了一定的了解。

    首先要了解架构是什么。架构就是根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。当我们知道架构产生的必然性以及架构是什么之后,就会对他进入深入的了解和发展。根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

    做好架构首先需要做的就是识别出需要解决的问题,架构师的能力判断就是如此,最重要的就是识别问题。当我们处理问题的时候,如果发现自己正在致力于把自己的工作完成,要马上警惕起来,因为这样下去会演变成没有ownership的工作态度。在面对概念的时候,也会不求甚解,最终会导致没有真正的理解概念。软件架构师就要抓住问题的主体,并且确定主体的问题是什么,对主体 进入深入剖析,对问题进行切分调整。每个人的追求都是利益最大化,那如何做到这一点,自然是有舍有得,在切分上又有很多问题,必须在连续时间内发生的一个活动,不能切分。切分出来的部分的负责人,对这个部分的权利和义务必须是对等的如果权利和义务是不对等的话,会伤害每个个体的利益,分出来执行的效率会比没有分出来还要低,实际上也损害了整体的利益,这违背了提升整体利益的初衷。切分出来的部分,不应该超出一个自然人的负载。当然对于每个人的能力不同,负载能力也不一样,需要不断的根据实际情况调整,这实际上就是运营。切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。当然很多时候当我们把问题分析的比较清楚的时候,整个系统的边界会进一步的完善,这就会形成螺旋式的进化。但这不属于架构所应该解决的问题。进化的发生,也会导致新的架构的切分。针对切分又出现建模。软件架构师针对架构切分的任务就是:架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

    软件的产生出现了软件架构,软件架构师就是要解决业务问题和计算机问题。软件架构师一定要清楚软件架构是部署的架构,还是代码的架构。软件架构的落地,需要软件的组织架构和流程来保障。软件架构师不仅仅是做架构的,他要发现问题,找到了问题的主体。最高明的架构师,我们只要让事情权责对等起来,让每个人为自己的权利产生的结果负有义务,大部分时候我们自己根本就不需要做什么,问题就都解决了。领导能力及其重要。技术和语言,都是用来识别和解决所服务的主体的权责,保护并提升所服务的主体的权利的,这些都是架构师需要熟练掌握了解的。 

    由架构出现逻辑,逻辑出现问题,必然导致架构无法快速的横向扩展和分拆,并且增加了修改的成本,这些是不符合开发人员以及业务的利益的。

    最后处理业务、技术还有架构的关系。曾经自己认为,甚至是学习的技术越多,就觉得自己的水平越高。实际上并不全是这样,学多了学杂了,反而失去了专精的方面。而现在我了解到技术总是在人类解决对业务的要求不断提高的情况下产生,目的也是为了获取更大更好的利益。当现有已经存在很多技术,而这些技术却和我们所要解决的问题并不是那么直接对应的时候,我们就需要有意识的组织和识别不同的技术,来实现业务的目标。

    通过这次阅读,我简单的了解到了软件架构和架构师的工作,也认识到成为软件架构师是要付出很多的努力才有机会的,自己在以后的学习中也会更加努力,对软件架构也会进行更加深入的了解和学习。

原文地址:https://www.cnblogs.com/ylx111/p/8529541.html