首页 > 其他分享 >《架构杂谈》读后感

《架构杂谈》读后感

时间:2024-03-01 15:48:50浏览次数:14  
标签:读后感 架构 杂谈 技术 业务 问题 架构师 软件

今天阅读了王概凯的架构漫谈:

      第一节讲的是什么是架构,在文中,他首先列举了Wikepadia上的定义。然后他从早期人们为了生命的延续分工合作来解释了为什么要产生架构?——把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构 。最后又通过建筑,来更深层次的解释了架构。最终给出了他的定义:根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。根据前者,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

      第二节讲的是认识概念。架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要。实际上“相“表达的不是一个具体的东西,每个概念实际上所解决的,还是人遇到的某个特定的问题,我们把解决问题的解决方案,给定了一个名字,这个名字就是对应的某个特定的概念。抽象这个词代表的含义,实际上是把不同的概念的相似的部分合并在一起,形成一个新的概念。

      第三节讲的是架构识别。做好架构首先需要做的就是识别出需要解决的问题。所有的概念基本都有一个很大的问题,就是缺乏主语。而我们大家都心照不宣的忽略这个主语,沟通的时候也都以为大家都懂得对方说的主语是谁,结果大家都一起犯错误。识别问题的一个最大的前提就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。

     一般来说,从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。最坏情况就是当我们时间或者能力有限,实在是无法定位出是谁的问题的时候,比如系统出故障,也就意味着我们无法根本解决问题。这时最好的办法就是去降低问题发生所带来的成本,尽量去隔离问题影响的范围。给我留出时间和空间去识别真正的问题。

     第四节,作者提到了如何做好关于架构的切分的问题。我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。为什么这么说呢,因为维护自己的利益,是每个人的本性,是在骨子里面的,我们不能逃避这一点。我们已经知道,随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化。在这个模式下,每个人必须要舍掉自己的东西,才能够得到更多的东西。

  第五节,作者提到了什么是软件,有了软件之后,实际上,我们是把我们日常生活中所做的事情,包括我们自己本人都一起虚拟化到了计算机中。而人则演化成了,通过计算机的输入输出设备,控制计算机中的自己,来完成日常的工作,以及与其他人的沟通。也就是说,软件一直以来的动力,始终都是来模拟人和这个社会的。比如模拟大气运动(天气预报),模拟人类社会(互联网社交),模拟交易,包括现在正在流行的VR,人工智能等等。模拟的对象越来越高级,难度越来越大。不管如何发展,模拟人的所有行为都是一个大的趋势。也就是说,软件的主要目的,还是把人类的生活模拟化,提供更低成本,高效率的新的生活。从这个角度来看,软件主要依赖的还是人类的生活知识。

     第六节讲的是软件架构要解决的问题。软件实际上就是把现实生活模拟到计算机中,并且软件是需要在计算机的硬件中运行起来的。要做到这一点需要解决两个问题:1业务问题2.计算机问题。这就是软件比较复杂的地方,涉及到软件本身的业务体系,和所虚拟的业务体系。根据以上的分析,所生成的架构,究竟那些算是软件架构呢?

软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

  第七讲的是要给架构师实权。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。所以很多公司设了很多架构师的职位,但是并不具备调动组织架构的权利,那么这个架构师的职位一定是形同虚设。架构师只能够通过建立某些流程来行使架构师的权利,比如强制架构review,反而会造成很多内部不必要的冲突,最终都会导致这些流程流于形式,得不偿失。

  第八节讲的是,作者以他的经验告诉了我们如何从架构的角度写代码。结合每个部署单元所承担的责任,可以明确的拆分为两个不同的责任:表达业务逻辑的代码,对用户提供访问并保存业务逻辑运行结果的代码。,逻辑只允许存在于Business中,Service、Glue Code、Repository都不允许存在业务逻辑。

  第九节讲的是理清技术、业务和架构的关系。在软件设计开发的过程中经常会看到,很多所谓的架构讨论实际上只是在讨论某种技术。在很多人的概念里面,架构和技术实际上是等同的。学会了几种技术,就认为自己是架构师了,甚至是学习的技术越多,就觉得自己的水平越高。这样实际上是对自己很不负责任的。

  技术与技术之间,有两种关系:一种是在解决同一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效,高成本的技术。这是人类利益诉求所决定的。另一种是一般刚开始解决根本问题的技术(钻木取火)的效率是比较低的,只是把不可能变成了可能(从这一点上来说,技术才是业务的enabler)。然后就会有提高效率的需求出现,要求改进这个技术。这个技术的低效率部分就会被其他人(或者技术发明人自己)加以改进,这部分就会形成新的技术。

  架构师应该承担起解决业务问题的这个角色来,专注于Business Domain和软件本身的架构,让技术人员致力于为业务在计算机中跑起来而努力。只有把这两者很好的结合起来,才能更好地完成业务的目标,才会让软件更好地服务于大家。最终一定会得到一个很好的软件架构,令软件开发团队和业务部门都能够很好地开展工作并降低成本。

标签:读后感,架构,杂谈,技术,业务,问题,架构师,软件
From: https://www.cnblogs.com/qq2143187807/p/18047218

相关文章

  • 互联网架构点
    设计大型互联网网站的项目架构是一个复杂而关键的任务,它需要考虑性能、可伸缩性、可靠性、安全性以及维护性等多方面因素。大型互联网项目的架构设计应该根据具体的业务需求和规模来调整,同时要考虑未来的扩展性。这通常需要深入了解业务需求、技术趋势和最佳实践,以做出明智的决策......
  • 《构建之法》读后感
    构建之法读书心得体会读完《构建之法》第一章后,我对软件开发中的各种问题和挑战有了更深入的理解。这本书以其独特的视角,清晰的分析和实用的建议,使我重新审视了软件开发的过程和方法。以下是我的主要心得体会:1.**理解复杂性**:书中强调了理解复杂性在软件开发中的重要性。我们不......
  • 架构漫谈
    首先来看,什么是架构?为什么会出现架构?文章中是这么说的。在每个人都必须自己完成所有生活必须品的生产的时候,是没有架构的(当然在个人来讲,同一时刻只能做有限的事情,在时间上还是可能会产生架构的)。一旦产生的分工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个......
  • 云计算 - 阿里云最佳云上实践介绍 卓越架构
    相较传统IDC,云计算的快速迭代增加了维持良好架构的难度。云应用需关注稳定性、安全性、性能和成本。阿里云通过多年经验,发展了一套名为"AlibabaCloudWell-ArchitectedFramework"的优秀架构框架,以协助用户构建出色的云架构。关注【TechLeadCloud】,分享互联网架构、云服务技......
  • 《系统科学方法概论》——第五章读后感
    本章主要讲解了自组织系统方法。第一节就简单讲述了自组织系统理论的发展历程,为以下更深入的了解做了铺垫。第二节则讲述了耗散结构理论,它是由比利时自由大学教授普利高津提出的。普利高津在总结前入经验的基础上,根据系统与环境的关系,把系统分为三类:1、孤立系统。即与环境没有物......
  • 架构杂谈的读后感
    软件架构是指对软件系统整体结构和各组成部分之间关系的抽象描述。它不仅包括软件的结构和行为,还涉及到软件系统的演化、性能、灵活性、可维护性等方面。在软件开发过程中,良好的架构设计可以帮助开发人员更好地理解系统需求,提高开发效率,降低维护成本,并且使得系统更加稳定、可靠。......
  • 《程序是怎样跑起来的》第十一章读后感
    《程序是怎样跑起来的》第十一章深入探讨了并发与并行的概念及其在程序执行中的应用。本章首先解释了并发和并行的区别,指出并发是多个任务交替执行,而并行是多个任务同时执行。接着,介绍了常见的并发模型和并行计算的方法,如多线程、多进程和分布式计算等技术,并强调了如何避免并发和......
  • 系统科学方法概论第四章读后感
    关于自动控制的思想和技术,早在古代就已经有了,不过其机械原理都还比较简单,而且主要是用在生活娱乐方面,与社会生产的联系并不紧密。近代的控制论萌芽主要是在机械化大生产之上产生的自动调速技术和后来发展成的伺服机理论。主要表现在1.自动调速技术。2.伺服机理论的建立。无论是自......
  • 《程序是怎样跑起来》第六章读后感
    通过阅读第六章,我们和作者深入了解和探究了核心机制,包括程序的编译与执行过程、操作系统的角色以及内存管理等关键概念。这一章节不仅介绍了这些概念的理论基础,还通过具体的例子和类比,帮助我们更好地理解程序是如何在计算机中运行的。在这一章所讲述的程序运行机制对我启发很大。......
  • 《程序是怎样跑起来的》第四章读后感
    《程序是怎样跑起来的》第四章深入探讨了计算机程序的运行过程,包括算法和数据结构的重要性、内存的物理机制和逻辑模型、程序的编译、链接和执行流程等内容。这一章节首先介绍了算法和数据结构在程序运行中的关键作用。算法是解决问题的步骤和方法,而数据结构则是组织和存储数据的......