在王概凯写的的架构漫谈pdf中,作者从什么是架构、认识概念是理解架构的基础、如何做好架构之识别问题、如何做好架构之架构切分、什么是软件、软件架构到底是为了解决什么问题、不要空设架构师这个职业,给他实权、从架构的角度看如何写好代码、理清技术、业务和架构的关系这九个方面给我们讲解了关于架构的问题。
通过阅读作者通过讲解早期人类社会的形成,人们在发展中不断的分工来更好地生存中给我们介绍道了架构的产生,也是从中得到了把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),有不同的角色完成分工,并通过建立不同部分相互沟通机制,使得这些部分能够有机地结合为一个整体,并完成这个整体所需的所有活动的架构的概念,从中我们可以了解到,架构的目的就是为了能够有效的完成所需要的活动,能够更加有效的去提高工作的效率,使得用有限的精力来将利益最大化。架构是解决人的问题,这个概念是人们认识世界的基础,概念的认识是十分重要的,作者通过用桌子来举例说明概念的重要性,并且讲到相与名以及抽象的概念,通过例子介绍道认识概念的误区,如何有效地去认识概念,明白概念背后的含义及如何利用对概念的理解去更快的学习。根据对架构的定义,我们能够知道要做好架构我们需要先知道我们要解决的是什么问题,作者通过举得切一半土豆下锅的问题,来说明我们大部分时候过于关注解决问题,急于完成工作,而不关心真正的问题是什么,当我们去解决一个问题时,一定要先把问题搞清楚,明白事件的主体是什么,这是做架构的首要问题。学会识别问题,当拿到问题时要问问自己这是谁的问题、有什么问题,明白事情的目标,这样才能更好的去做好架构。架构的切分实际上就是利益的切分,而切分的原因是人的负载过重,而切分的最终结果又体现在组织架构上,只有这样才能让架构落地并推进,切分的结果一定是一个树状,这也是产生分层的原因,但是为了将利益、效率最大化最好是变为平衡树,因为树状的分层越多,效率越低,只有达到最优才能够将利益最大化。
如何利用架构思维,更好的实现和设计软件,首先我们需要了解什么是软件,它是在硬件上编写的程序,用来控制硬件的行为。在章节中作者简单的描述了计算机和软件的发展历史,及软件架构的出现,阐述软件的本质,其实就是把人们的日常工作生活虚拟化减少成本提升单个人的生产力,提升人类自己的利益。软件因流量增大而拆分成不同运行单元,在不同机器上部署所形成的架构,及每个运行单元为了让不同角色的人,比如前端、业务、数据存储等能够并行工作,所分成的代码架构都称之为软件架构,所以在我们说软件架构是要分清楚是哪个类型,软件架构要解决业务和计算机的问题,分析他们所对应下的问题。架构师需要我们能够学会发现问题,明白架构师不仅仅要解决自己的问题,还要学会解决他人的问题,明白架构师所具有的权力与义务,想要成为架构师我们不仅要具有很好的知识基础及对自己掌握知识运用的自信,还要能够发现问题并选择最优的方式去解决问题。从架构的角度写好代码,需要我们尽量不要然代码成为系统成长的瓶颈,降低架构分拆的成本,结合每个部署单元的职责,可以明确的拆分为表达业务逻辑的代码和对用户提供访问并保存业务逻辑运行结果的代码两个方面。所以单个部署单元的代码能够写成两个部分,并且划分出相应的职责,它的部署图也是树形架构。这里的业务逻辑指软件代码的逻辑,不是现实生活中的逻辑。想要快速的完成代码的编写工作我们就要克服自己对时间的恐惧,真正的去研究业务问题,只有这样我们才能静下心去想怎样更好地解决问题,并将架构部署的更加完善。技术业务与架构的关系,技术是为了解决业务的问题而产生的,没有业务技术存在的前提就没有了,而技术与技术之间存在这两种关系一种是解决同一业务下,更高效、成本更低的技术会取代低效、成本高的技术,另一种是新技术通过某种方式与原技术连接到一起形成新的技术。技术与架构之间,因不同的技术组成树形结构而形成了一个完整的架构解决方案,这就是及业务与架构之间的关系。