漫谈架构读书笔记

漫谈架构阅读笔记

阅读了漫谈架构这本书后,感受颇深。在此书中,文章书写简单易读,并没有过多的专业词汇,其中还不乏举出了许多生动有趣的例子给人以印象深刻,我认为,此书写的确实不错,值得阅读。

首先关于什么是架构?结合文章和最近所学我认为架构就是软件的框架,软件在设计好的框架中生产运行发展与维护,联系文章世间万物皆有框架,从最早的木头到桌子椅子,做成这一事物所依赖的标准原则便是架构。人的出行时做火车还是汽车还是飞机取决于要去的地方与所需的其他要求,每个交通工具有自己的特点,其相互运行却互不打扰,是架构将它们约束在适当的位置,飞机不能再地上跑,火车不能在公路上跑,这便是架构的边界。

计算机产生的初衷即为模拟人脑,这也是我们为什么称之为电脑的原因。由最初的简单的函数计算到后来不断进化的Java/C++高级语言,软件应运而生,种类繁杂,项目众多,规模扩大。一个程序员再也做不好一个完备的软件。因此产生了分工,这也是一种架构。但我们讨论的是,当要设计的系统庞大,无法由一个人单独来完成,系统的设计就交给了软件架构师。这个背后的动力也是一样的,与人类社会的演变一样,就是提升参与的人的利益,降低成本。架构师是要解决别人的问题,并不是自己的问题。架构师是要去平衡别人的利益,甚至会调整别人的利益的。一旦为别人的利益全心全意的服务,自然就拥有强大的影响力。一个优秀领导者也一定是一个合格的架构师。

我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。为什么这么说呢,因为维护自己的利益,是每个人的本性,是在骨子里面的,我们不能逃避这一点。我们以第一篇文章里面的例子为例来做解释。

我们已经知道,随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化,比如:生活的更舒适,更轻松,更安全,占用并享有更多的东西。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。

对比一个人干所有的事情,结果就是大家都能够得到更多,当然也产生了一个互相依赖的社会,互相谁都离不开谁。这就是自然而然而产生的架构切分,背后的原动力就是人们对自己利益的渴望。人们对自己利益的渴望也是推动社会物质发展的原动力。

在这个模式下,比较有意思的是,每个人必须要舍掉自己的东西,才能够得到更多的东西。有些人不愿意和别人进行交换,不想去依赖于别人,这些人的生活就很明显的差很多,也辛苦很多,自然而然的就被社会淘汰了。如果需要在这个社会上立足,判断标准就变成了:如何给这个社会提供更好更有质量的服务。提供的更好更多的服务,自然就能够换取更多更好的生活必需品。实际上这就是我们做人的道理。

对于第五篇文章来说谈到的是何为软件软件的历史,实际上可以说是用机器模拟人的历史,软件的成本非常高但随着现在软件工程师慢慢越来越多,开发软件的成本越来越低,因为人们越来越愿意用计算机来处理他们的日常事务这就导致了软件越来越丰富,成本越来越低。后来软件规模越来越大,软件模拟人的行为逐步变成了一个大的趋势。软件工程师是实现这个模拟过程的关键人物软件工程师就是组织这些角色的工作,把一个人的连续工作拆分成不同角色的人的连续配合,演化成了不同的软件开发的模式。这就导致了软件架构的出现,软件架构出现的动力就是提升参与的人的利益,较低成本。第六篇主要讨论的是软件架构要解决的问题。提到问题我们要明确问题的主体是谁,还有就是问题是什么。要明确问题的主体是什么首先要解决两个问题第一个是业务问题,第二个是计算机问题。作者提出问题的主体一个事业务的所有者另一个则是软件工程师的问题。那么这两个业务主体分别有什么问题。业务所有者的问题是业务所服务的对象的利益问题,软件工程师就必须理解业务所服务的对象,当然软件工程师还需要考虑软件的性能问题。通常情况下软件工程师需要对问题进行分析因为软件工程师一个人无法完成这么多事所以需要把问题列出来进行分析。第七篇文章作者解释了什么事架构师成文一名架构师首先要明确我们要解决的是别人的问题不是完成自己工作的问题所以身为一名软件架构师就必须要有勇气去克服对时间的空间和压力。其次软件工程师要能准确发现问题的主体是谁。软件架构师必须是一个组织的领导人要学会去平衡别人的利益甚至是会调整别人的利益,软件工程师的义务就是发现问题并解决问题。说起软件架构师,我们难免会好奇软件架构师的技术,作者提出身为软件架构师语言和技术应该是非常精通。我最初以为软件架构师只要是精通管理即可,作者的分析让我深入理解了软件架构师的职责义务和权利

时间: 2024-08-05 09:27:19

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

Linux内核架构读书笔记 - 2.5.3 处理优先级

1 优先级的内核表示 内核使用 0 - 139 表示内部优先级,值越低,优先级越高.0 -99 实时进程使用 nice 值 [-20,19]映射到范围100 - 139,如下图 内核定义了一系列宏来辅助优先级之间的转换 sched.h 1 /* 2 * Priority of a process goes from 0..MAX_PRIO-1, valid RT 3 * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH 4 *

Linux内核架构读书笔记 - 2.5.2 数据结构

调度系统各个组建关系如下 激活调度器两种方法:进程睡眠或其他原因放弃CPU,周期性检测 上述两个组件统称为通用调度器或核心调度器. 调度器用于判断接下来运行那个进程,内核支持不同的调度策略( 完全公平调度 实时调度 无事可做的空闲调度进程) 调度器被调用时候 需要执行体系相关的进程上下文切换 每个进程属于某个调度器类,各个调度器负责管理所属进程,通用调度器不涉及进程管理,都由调度器来 下面分别讲述: task_struct 成员 sched.h 1 struct task_struct { 2

Linux内核架构读书笔记 - 2.5.4 核心调度器

什么是核心调度器? 参考前面的博文http://www.cnblogs.com/songbingyu/p/3696414.html 1 周期性调度器 作用: 管理内核中与整个系统和各个进程的调度相关的统计量 负责当前调度类的周期性调度方法 kernel/sched.c 1 /* 2 * This function gets called by the timer code, with HZ frequency. 3 * We call it with interrupts disabled. 4

架构漫谈系列 读书笔记

原文链接:http://www.infoq.com/cn/articles/an-informal-discussion-on-architecture-part01?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 一.什么是架构 1.Architecture is like teenage sex,everybody talks about it,no

大型网站技术架构读书笔记目录

这是一本什么样的书籍 <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型.架构设计.性能优化.Web安全.系统发布.运维监控等在内的大型网站开发全景视图.虽然没有相关的细节内容,不妨碍一览众山小大型网站的各个方面. ? 为什么会读此书 为以后有机会做大型网站做技术储备,深入了解大型网站建设的各个方面.以此形成笔记,方便以后复习和查阅,必经书读一遍是远

聊聊架构--读书笔记

1.认识架构 1.1生命周期: 万物皆有生命周期 生命周期包含各种活动,活动的推进是生命周期的必要因素(对象的行为) 生命周期里面的活动拆分后,形成若干新的生命周期 拆分后主体不变的是核心生命周期,变化了的是非核心生命周期 每个主体的生命周期变化都累积在自身,这个就是所谓的内聚(面向对象分析新思路) 生命周期拆分以后,因为非核心生命周期的主体已经发生变化.主体便可以将这些非核心生命周期分配给其他主体代为执行.这样,生命周期从时间连续的执行变成了空间上并行,时间上串行的连续活动. 新的技术诞生也会

Anndroid 开发架构读书笔记

市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: --------------- --------------- --------------- --------------- | | | | | | | | | 调用网络API | --> | 展现列表 | --> | 选择列表 | --> | 展现单页 | | | | | | | | | --------------- --------------- --------------- --------------- ^ | |

大型网站技术架构 读书笔记1 大型网站架构模式

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计. 关于什么是模式,这个来自建筑学的词汇是这样定义的:"每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作".模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用. 针对现在的高并发访问,海量数据处理,高可靠运行等一系列问题,众多大型互联网公司提出了各种系统解决方案.这些优秀可靠的方案又被别的网站重复使用

大型网站技术架构 读书笔记2 大型网站核心架构要素

通常情况下,一个网站的架构出来功能性需求外,还应该考量以下五个方面: 性能 可用性 伸缩性 扩展性 安全性 性能 性能的官方解释,我就不说了.对用户来说,就是系统的反应速度是否快. 对网站来说,性能问题是无处不在的,继而,我们优化性能的手段也有很多. 我们从前到后一个一个来说 在浏览器端,可以通过浏览器缓存,页面压缩,合理布局页面等方式 还可以使用cdn,让一些静态文件放在网络服务商的机房,这样离用户近一些. 也可以使用反向代理,把静态文件存在反向代理服务器上,例如apache 服务器端就是缓存