架构漫谈读后感
这周的课程中,老师在上课前就给我们发了一个PDF让我们先行进行了学习,并上课的时候,大家进行了分组的讨论和协商,最后,还请班上的同学进行了发言。当然,课堂上看的只是其中的一小部分,真正的内容老师还是让我们自己课后进行阅读,来体会架构的魅力。
这本书,通俗易懂,很适合我们大学生来观看,在不断的人士学习中,我们也逐渐的解决了很多我们的疑惑,首先,何为架构?最早期社会我们一个人就可以完全独立生活完成衣食住行所有事情,随着需求的增加,比如说人类延续,人们开始群居。接下来人们发现各自有各自的长处,有的人种田厉害,有的人制作工具厉害,有些地方适合产出粮食,这就导致分工,各自做擅长的事情。由于每个人的精力,时间,能力皆有限,当需要完成一个大的工程的时候,人们必须各取所长合作完成,人们如何组织这项工程,如何安排合适的人做合适的事,在最高效最稳定的情况下交付既定任务,这样“架构”就应运而生了。总结而言,架构就是:1.根据要解决的问题,对系统的边界进行界定。2.并对目标系统按某个原则进行划分。划分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。3.并对这些切分出来的部分,设立李沟通机制。,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。架构是为了解决人的问题,那么沟通便显得尤为重要,中华文化博大精深,每一句话可能有多重理解,所以我们要对概念有一个初步的把控,最主要的当然就是识别概念,识别别人提出的问题。
为了可以更好的作出架构,我们要对整个项目需求进行切分,还要把控对于利益的调整。一旦确认问题的主体,我们接下来会发现如下问题,某个或者某些利益相关人负载太重,或者时间上空间上负载太重,或者某个,某些利益相关人的权利和义务不对等。所以我们需要在一定原则上进行切分,第一是自然就无法切分的部分,第二是不违反人性。随后就是一系列建模和组织架构了。
架构在很多方面都是有应用的,但是我们关注的是如何运用架构思维,更好的设计和实现软件。那么软件是什么呢,软硬件两者一结合,就会出现电脑也就是可以编程的大脑,在硬件上编写出的程序,就是软件,是用来控制硬件的行为的。在软件越来越丰富的时候,能够做的事情也就变得越多了,而开发成本也越来越低。有了软件之后,我们就可以把日常生活中所做的事情虚拟化到计算机中。而软件工程师的工作就是实现这个模拟过程的关键人物。但是这个过程需要学习大量的各行各业的专业知识,所以需要很多角色。就开始了角色的切分,也就演变成了不同的软件架构来提升参与的人的利益,降低成本。软件需要解决的问题呢,有两点,一是业务问题,搞明白要解决的问题的主体是谁,解决的是什么问题,是如何解决,如何运作的;二是计算机问题,如何将现实生活用软件来模拟。这是软件的复杂所在。
所以,要成为一个优秀的软降架构师,必须拥有丰富的经验和技术,而且要成为调整利益平衡利益的人。之后,从架构的角度写代码,核心是分层,将业务,技术,逻辑处理分成各自耦合度相对降低的层次,让软件的运营成本降至最低,而且利于维护。最后就是理清技术、业务和架构的关系了。技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。有了更好的技术,效率更差的技术就会被淘汰,一切都遵从人类的利益诉求—也就是业务。再者,在解决同一个业务的问题的前提下,更高效,更低成本的技术将代替其他技术。所以架构师应该承担起解决业务问题的角色,也需要具备识别技术采取技术相应的能力。