架构漫谈阅读笔记

《架构漫谈》读后感

经过一个寒假对《架构之美》的解读,其实我已经对什么是架构有了一个初步的认识,但是还是有一些不太明白的地方。今天,我仔细地阅读了由资深架构师王概凯Kevin执笔的系列专栏——架构漫谈,让我对什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题有了更深刻的认识。

正如文章开篇所说的那样:一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。那么究竟什么是软件架构呢?其实,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。也就是根据要解决的问题,对目标系统的边界进行界定,并对目标系统按某个原则的进行切分,切分的原则要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间,并对这些切分出来的部分,设立沟通机制,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

按照架构的定义,做好架构首先需要做的就是识别出需要解决的问题,通俗的说,找出问题的主体,是做架构的首要问题,只有明白了问题的主题,我们才可能真正的认识问题是什么。这是因为问题的主题是问题的隐含边界,边界不确定下来,问题就是不确定的,一旦确定了主题,剩下的就是去搞明白主题有哪些问题。识别出是谁的问题之后,会发现,在大多数情况下,问题都迎刃而解,不需要做额外的动作。但是总有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整,而这个调整就是架构的切分。我们都非常的清楚,所有的切分调整,都是对相关人的利益的调整。实际上切分的过程就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念。

我们都是软件工程系的学生,但是我敢肯定的,没有一个人可以准确说出什么是软件。学了这么多课程,我们了解软件的历史吗?其实,软件的历史,实际上可以说是用机器模拟人的历史,不知道有人意识到没有,我们都有意无意的在计算机上模仿人类的行为。有了软件之后,实际上,我们是把我们日常生活中所有的事情,包括我们自己本人都一起虚拟化到了计算机中,而人则演化成了,通过计算机的输入输出设备,控制计算机中的自己,来完成日常的工作,以及与其他人的沟通。也就是说,软件一直以来的动力,始终都是来模拟人和这个社会的。

阅读了这么多,我们知道了软件架构实际上包括了代码架构以及重载代码运行的硬件部署架构。我们经常会听说,重写代码,推翻原来架构,重新设计等等说法,来说明架构的进化,这实际上就是当初为了完成任务,没有充分思考所带来的后果。我们已经知道,软件实际上是对现实生活的模拟,虚拟化,这是一个非常重要的前提,直接决定了我们的代码应该分成几部分,结合每个部署单元所承担的责任,可以明确地拆分为两个不同的责任:其一,表达业务逻辑的代码,很多人把这部分叫做Domain Logic,或者叫Domain Model。这部分实际是来源于生活的,必须保持和现实生活中的切分一致,并非人为的抽象而成。其二,对用户提供访问并保存业务逻辑运行结果的代码。计算机的状态保存有一个缺陷,本机保留业务运行结果有很大的问题,一般都在外存储设备上保存,也便于扩展。众所周知,service的代码是最复杂的,需要服务于三方,为了把这三方的变化对service的影响降到最低,对于service进一步的拆分为三个部分,他们分别是Service、Glue Code、Business,让每一个部分都能够独立的变化,这样这三方的变化就不会产生连锁响应,降低成本。

阅读完架构漫谈,我对软件体系架构这门课有了充分的了解,也对架构的概念有了清晰的认识,这对于我以后的学习起了很大的帮助。

时间: 2024-10-19 10:52:40

架构漫谈阅读笔记的相关文章

软件架构师如何工作-架构漫谈阅读笔记

在王概凯先生的9篇关于软件架构师的博客-<架构漫谈>中,我们可以看到文中谈到了架构的定义.含义,架构主要是要认识概念,如何做好架构之架构的切分,然后谈到了软件与架构之间的关系(什么是软件,软件架构是要解决什么问题,从架构的角度看如何写好代码,理清技术.业务和架构之间的关系了),下面依次写出我对9篇博客的理解与感悟,以及对软件架构师工作的理解. 一:什么是架构 在学习软件体系结构这门课之前,我们貌似只对软件开发以及简单的mis系统的开发有一丝丝的开发经验和感触,无架构之言.我们目前还无法像软件架

架构漫谈阅读有感

阅读了架构漫谈九篇博客https://www.infoq.cn/profile/1279517/publish,对架构和软件架构师的工作有了一个初步理论了解,也解决了个人一些对程序员发展方向和职业生涯规划的疑惑. 架构是一种使解决问题高质量高效率,并且可以全程对解决问题进行进度管控.阶段评价与优化的方法.它分为两种,一种是自然形成或者说是无意识形成的,不受人类有意识地去改造或者说是优化的,例如自然界的分工:生产者.消费者.分解者.另外一种是人类社会在长期发展的进程中逐步优化的,例如政府架构.公司

架构漫谈阅读感想

应老师的要求将王概凯老师的架构漫谈总体读了一遍,接下来谈一谈我读了之后的感想,大致上就是用自己的语言谈一谈短浅的理解. 首先我们要了解一下什么是架构? 根据要解决的问题,对目标系统的边界进行界定. 并对目标系统按某个原则的进行切分.切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间. 并对这些切分出来的部分,设立沟通机制. 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作. 把所有需要完成的工作分成多份不同的工作,不

架构漫谈阅读感悟一

在一个人可以完成所有事情的时候,是没有架构的概念的,因为所有问题,所有事情都是一个人解决,这时架构没有任何意义:但是当一群人在一起的时候,这时候需要给每个人分工,需要让每个人根据自己的能力发挥自己的长处,来为群体完成交代的事务,这时在给每个人分工的时候就用到了架构的原始概念,根据每个人的实际能力,给每个人分工不同的工作,让每个人做自己擅长的事情,提高每个人的生产力,那么整个人群的生产力就会提高. 架构必须是由人执行的工作,因为每个人的能力.时间有限,但是人对目标系统有着越来越高的要求,所以目标系

大型站点技术架构PDF阅读笔记(一):

1.数据库读写分离: 2.系统吞吐量和系统并发数以及系统响应时间之间的关系: 3.系统负载的概念: 4.反向代理的概念: 5.使用缓存来读取数据: 6.利用cookie来记录session: 利用cookie记录session的缺点: 7.站点应用公布流程: 8.使用消息队列 9.异步调用: 10.应用的无状态性: 11.CDN的概念: 利用CDN的站点架构: 12.Hash表是怎样存储的: 13.memcache缓存:

《架构漫谈》阅读笔记

架构漫谈是由资深架构师王概凯执笔的系列专栏,通过对其阅读,我从中逐步认识到了什么是架构,怎样做好架构,软件架构如何落地等内容. 一.什么是架构 在软件行业,对于什么是架构一直有很多的争论.事实上,架构在软件发明时的N多年以前,就已经存在了,这个词最早出现在建筑上.架构产生的五个动力可以概括为:由个人执行的工作:每个人的能力有限:每个人时间有限:人对目标系统有更高的要求:目标系统的复杂性使得单个人完成这个系统.当这五个条件同时成立,一定会产生架构.从这个角度上来说,架构是人类发展过程中,由懵懵懂懂

大型网站技术架构阅读笔记2

第二次主要阅读了第二篇的架构,阅读了瞬时响应,网站的高性能,万无一失,网站的高可用架构,永无止境,网站的伸缩性架构. 网站性能是客观的指标,可以具体体现到响应时间,吞吐量等技术指标,同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西,用户的感受和工程师的感受不同,不同的用户感受也不同.网站性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准.不同视角下的网站性能有不同的标准,也有不同的优化手段.对于一些软件工程师来说,说到网站性能的时候,通常和用户说的不一样.开发人员关注

阅读《架构漫谈》后,思考软件架构师应该如何工作

老师上课围绕<架构漫谈>前四篇图文并茂的讲解了何为架构,架构的基础,以及识别问题和架构切分这些作为架构师需要了解的最基本的知识.现在要讨论的是软件架构师应该如何工作,如何更好的,更快的,更有效率的工作. 要想做好一个工作就应该了解这个工作最基本的需求是什么,而作为一个软件架构师就必须应该清楚的知道自己的职责是什么.也就是说,软件架构师需要负责什么工作,要解决什么问题.以下内容,就<架构漫谈>为中心,一步步细谈软件架构师应该如何工作. <架构漫谈>第五篇介绍了什么是软件.

阅读架构漫谈九篇博客有感-1500字

架构漫谈是由资深架构师王概凯撰写的系列专栏,逐步讨论什么是架构.怎样做好架构.软件架构如何落地.如何写好程序等问题. 架构漫谈分为九篇: 什么是架构? 认识概念是理解架构的基础 如何做好架构之识别问题 如何做好架构之架构切分 什么是软件 软件架构到底是要解决什么问题? 不要空设架构师这个职位,给他实权 从架构的角度看如何写好代码 理清技术.业务和架构的关系 第一篇 什么是架构? 主要讲到了缘起,什么是架构和为什么会产生架构. 由于问题越来越复杂,一个人已经很难完成想要完成的事情,而许多人一起却可