漫谈架构阅读笔记
阅读了漫谈架构这本书后,感受颇深。在此书中,文章书写简单易读,并没有过多的专业词汇,其中还不乏举出了许多生动有趣的例子给人以印象深刻,我认为,此书写的确实不错,值得阅读。
首先关于什么是架构?结合文章和最近所学我认为架构就是软件的框架,软件在设计好的框架中生产运行发展与维护,联系文章世间万物皆有框架,从最早的木头到桌子椅子,做成这一事物所依赖的标准原则便是架构。人的出行时做火车还是汽车还是飞机取决于要去的地方与所需的其他要求,每个交通工具有自己的特点,其相互运行却互不打扰,是架构将它们约束在适当的位置,飞机不能再地上跑,火车不能在公路上跑,这便是架构的边界。
计算机产生的初衷即为模拟人脑,这也是我们为什么称之为电脑的原因。由最初的简单的函数计算到后来不断进化的Java/C++高级语言,软件应运而生,种类繁杂,项目众多,规模扩大。一个程序员再也做不好一个完备的软件。因此产生了分工,这也是一种架构。但我们讨论的是,当要设计的系统庞大,无法由一个人单独来完成,系统的设计就交给了软件架构师。这个背后的动力也是一样的,与人类社会的演变一样,就是提升参与的人的利益,降低成本。架构师是要解决别人的问题,并不是自己的问题。架构师是要去平衡别人的利益,甚至会调整别人的利益的。一旦为别人的利益全心全意的服务,自然就拥有强大的影响力。一个优秀领导者也一定是一个合格的架构师。
我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。为什么这么说呢,因为维护自己的利益,是每个人的本性,是在骨子里面的,我们不能逃避这一点。我们以第一篇文章里面的例子为例来做解释。
我们已经知道,随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化,比如:生活的更舒适,更轻松,更安全,占用并享有更多的东西。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。
对比一个人干所有的事情,结果就是大家都能够得到更多,当然也产生了一个互相依赖的社会,互相谁都离不开谁。这就是自然而然而产生的架构切分,背后的原动力就是人们对自己利益的渴望。人们对自己利益的渴望也是推动社会物质发展的原动力。
在这个模式下,比较有意思的是,每个人必须要舍掉自己的东西,才能够得到更多的东西。有些人不愿意和别人进行交换,不想去依赖于别人,这些人的生活就很明显的差很多,也辛苦很多,自然而然的就被社会淘汰了。如果需要在这个社会上立足,判断标准就变成了:如何给这个社会提供更好更有质量的服务。提供的更好更多的服务,自然就能够换取更多更好的生活必需品。实际上这就是我们做人的道理。
对于第五篇文章来说谈到的是何为软件软件的历史,实际上可以说是用机器模拟人的历史,软件的成本非常高但随着现在软件工程师慢慢越来越多,开发软件的成本越来越低,因为人们越来越愿意用计算机来处理他们的日常事务这就导致了软件越来越丰富,成本越来越低。后来软件规模越来越大,软件模拟人的行为逐步变成了一个大的趋势。软件工程师是实现这个模拟过程的关键人物软件工程师就是组织这些角色的工作,把一个人的连续工作拆分成不同角色的人的连续配合,演化成了不同的软件开发的模式。这就导致了软件架构的出现,软件架构出现的动力就是提升参与的人的利益,较低成本。第六篇主要讨论的是软件架构要解决的问题。提到问题我们要明确问题的主体是谁,还有就是问题是什么。要明确问题的主体是什么首先要解决两个问题第一个是业务问题,第二个是计算机问题。作者提出问题的主体一个事业务的所有者另一个则是软件工程师的问题。那么这两个业务主体分别有什么问题。业务所有者的问题是业务所服务的对象的利益问题,软件工程师就必须理解业务所服务的对象,当然软件工程师还需要考虑软件的性能问题。通常情况下软件工程师需要对问题进行分析因为软件工程师一个人无法完成这么多事所以需要把问题列出来进行分析。第七篇文章作者解释了什么事架构师成文一名架构师首先要明确我们要解决的是别人的问题不是完成自己工作的问题所以身为一名软件架构师就必须要有勇气去克服对时间的空间和压力。其次软件工程师要能准确发现问题的主体是谁。软件架构师必须是一个组织的领导人要学会去平衡别人的利益甚至是会调整别人的利益,软件工程师的义务就是发现问题并解决问题。说起软件架构师,我们难免会好奇软件架构师的技术,作者提出身为软件架构师语言和技术应该是非常精通。我最初以为软件架构师只要是精通管理即可,作者的分析让我深入理解了软件架构师的职责义务和权利