《架构漫谈》文章读后感

news/2025/2/26 16:08:35/文章来源:https://www.cnblogs.com/dmx-03/p/18738722

            今天,我阅读了《架构漫谈》。

    首先,什么是架构?架构就是把一个整体切分成不同的部分,有不同的角色来完成这些分工,并通过建立不同的部分相互沟通的机制,使这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动。架构产生的动力有:1.必须由人执行的工作;2.每个人的能力有限;3.每个人的时间有限;4.人对目标系统有更高的要求;5.目标系统的复杂性使得单人完成这个系统基本上是不可能的。

    第二,讲了认识概念是理解架构的基础。在前一篇中提到,架构实际上是解决人的问题,而概念是人认识这个世界的基础。在第二篇中通过讲述何为相?让我们理解了当一个概念提出来给我们的时候,我们是否能够挖掘出概念背后的问题。

    第三,讲了我们想要做好架构,首先我们需要识别出需要解决的问题,文中以切土豆为例。通过这个例子,我知道了当用户向你提出一个需求的时候。我们不能只停留在这个问题的表面。我们需要从全局的角度看待这个问题。他要的仅仅是他说的吗?他提出这需求的根本目的是什么?他实际上是要解决什么问题。我们怎么做可以让涉众满意?

    第四,讲了我们想做好架构,工作量与利益切分一定要做好。一个不好的架构在切分问题上会出现下列问题:1.某人或者某些利益相关人负载太重;2.时间上负载太重;3.空间上的负载太重,本质上还是时间上的负载太重;4.某人或者某些利益相关人权利和义务不对等。

一个好的架构在切分问题上遵循以下几个原则:1.必须在连续时间内发生一个活动,不能切分;2.切分出来部分的负责人,对这个部分的权利和义务是对等的;3.切分出来的部分,不应该超过一个自然人的负载;4.切分是内部活动,内部无论怎么切,对整个外部应该是透明的。

    第五,讲了什么是软件?软件实际上就是我们将一些我们日常生活中所作的事情,包括我们本人都一起虚拟化到了计算机中。通过计算机的输入输出设备,控制计算机中的自己,来完成日常工作的一种应用。也就是说人是软件发展的动力。随着时代的发展,一个人已经很难独立的完成一款软件。这就需要架构将我们每一个人所需要完成的工作阐述出来。

    第六,讲了软件架构到底是要解决什么样的问题?首先讲了软件架构是要解决业务问题和计算机的问题。业务问题的本质,是业务所务的对象的利益问题。为了能够让软件很好的跑起来,软件工程师必须理解业务所服务对象,他们的利益在哪儿。主要就是为了解决这两方面的问题。

    第七,主要站在企业领导者的角度讲述了不要空设架构师这个职位,给他实权。架构师必须是一个组织的领导人,有权利调动这个组织,才能更好的发挥架构师的作用,更好的把利益落到实处。很多公司设了很多架构师的职位,但是并不具备调动组织架构的权利,那么这个架构师的职位一定是形同虚设。架构师只能够通过建立某些流程来行使架构师的权利,比如强制架构review,反过来造成内部很多不必要的冲突,最终都会导致这些流程流于形式,得不偿失。相信很多人已经历过这些,但似乎很少有人回去探讨这是为什么。反过来,具备架构师能力的领导人,一定是一个很好的领导,这个组织一定是很健康向上的,因为每个人的权利和义务就是比较均等的。

    第八,讲了从架构的角度看如何写好代码。再前面提到,软件实际上是对现实生活的模拟,虚拟化。这就决定了我们代码应该分为几个部分。结合每个部署单元所承担的责任,可以明确的拆分为两个不同的责任:1.表示业务逻辑的代码;2.对用户提供访问并保存业务逻辑运行结果的代码。

    第九,讲了理清技术、业务和架构的关系。技术就是通过人为创造条件,让指定的规律按人的意愿发生。业务就是我们需要解决的问题。实际上就是用户的利益。技术是为了解决业务问题而产生的。有了更好的技术,更差的技术就会慢慢被淘汰。一般先有技术,才会有架构。不同的技术,通过树状结构组合在一起,形成了一个完整的架构解决方案,共同完成业务的目标。这就是技术、业务、架构之间的关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/890155.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年我读过的10本技术书籍(Java、架构、SRE运维)

什么是一本好书? 首先,我们需要定义什么是一本有价值的书籍。个人认为,一本好书应该具备以下特点:它能让我理解其中的一半+内容,引发共鸣,而剩下的部分内容则需要我反复阅读才能逐渐领会。如果我读完后发现完全理解了,那么这本书对我来说意义不大,因为它没有挑战我的思…

如何在WEB前端页面嵌入桌面程序EXE运行窗口?

在数字化转型浪潮中,企业常面临WEB与本地桌面应用割裂的痛点:‌复杂文档编辑需频繁切换系统,专属行业软件无法融入B/S架构‌……如何在WEB页面中直接调用并嵌入EXE程序窗口,实现真正的“云端+本地”一体化体验?猿大师中间件自从2019年发布以来,已经发布了三个重要产品:猿…

探索2025年客户管理新方向,看这家企业如何成功落地

某企业近年来销售业绩一直停滞不前,尽管产品质量过硬,企业的销售业绩却始终未能实现预期的突破。企业内部对销售策略进行了深入分析,发现销售业绩不佳的主要原因在于重复购买率低。 在管理层进一步分析后,发现是企业的销售和市场推广手段过于单一,缺乏有效的客户留存策略。…

使用Git拉取项目并对idea,vs-code配置(图解)

方法一:在线拉取(直接拉取到本地文档,后面还有一个IDEA直接在线拉取)在gitee中找到自己要拉取的项目,点击克隆/下载 对下图标红的命令复制打开你的文档,这个文件夹(名称不为中文)自己选择(想把项目保存到哪里看自己),我这里随便新建了一个文件夹。 注意:在这…

REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

ReAct:结合推理(COT)和行动(动作生成)。 ReAct主要内容将COT方法与ACT方法结合起来,引入了 ReAct,这是一种新的基于提示的范式,旨在将推理和行动在语言模型中协同起来,以解决通用任务。 展示了在少样本学习设置中,ReAct 相较于仅进行推理或动作生成的先前方法的优势。…

数字孪生城市:北斗网格码破解地下管网难题!

城市地下管网如同人体的“血管”和“神经”,承载着供水、供电、燃气、通信等核心功能。然而,传统管理模式长期面临“看不见、摸不着、管不好”的困境:施工误挖、管线老化、信息孤岛等问题频发,每年因管网事故造成的经济损失高达数百亿元。如何破解这一难题?北斗网格码技术…

供应链管理系统--升鲜宝收银系统功能解析,登录、主界面UI 设计图(一)

供应链管理系统--升鲜宝收银系统功能解析,登录、主界面UI 设计图(一)登录界面

振动电阻式传感器测量模块 差动电阻式 驱动与测量RM502

振动电阻式传感器测量模块 差动电阻式 驱动与测量RM502RM502模块是一款高精度、多功能的传感器驱动与测量解决方案。本产品采用先进的模拟信号处理技术,专为差动电阻式传感器及其他高精度电阻测量应用而设计。通过恒流驱动与4路实时电流测量技术,配合高精度采样电阻,有效消除…

No.13 CSS--简介

一、CSS 1.1概念CSS(Cascading Style Sheets)层叠样式表,又叫级联样式表,简称样式表。 CSS文件后缀名为 .css。 CSS用于HTML文档中元素样式的定义。1.2 作用使用css的目的就是让网页具有美观一致的页面。1.3 语法CSS 规则由两个主要的部分构成 : 选择器,以及一条或多条声明(…

Go红队开发—并发编程

Go红队开发之并发编程目录并发编程go协程chan通道无缓冲通道有缓冲通道创建⽆缓冲和缓冲通道等协程sync.WaitGroup同步Runtime包Gosched()Goexit()区别同步变量sync.Mutex互斥锁atomic原子变量SelectTicker定时器控制并发数量核心机制并发编程阶段练习重要的细节端口扫描股票监…

【DeepSeek部署实战】正点原子RK3588开发板本地化部署DeepSeek R1 大模型视频教程来啦!

【视频发布】正点原子RK3588开发板本地化部署DeepSeek R1 大模型视频系列视频教程来啦!一、课程内容 承接上一次板端部署DeepSeek R1大模型的文档教程,应粉丝们的要求,本次推出视频教程,手把手教学实现端侧部署,无需依赖云端服务器即可本地化处理数据,功耗更低、成本更优…

接口新特性--java进阶day03

1.接口新特性 在JDk8和JDK9开始,接口可以定义普通方法这时就会感到很奇怪,明明之前说好接口只是用来制定规则的,为什么现在又可以定义普通方法了呢? 我们以一个公司案例进行讲解,公司1.0上线了接口,之后有新项目,要更新接口,但我们都知道,接口如果写了新的方法,之前所…