歪读《架构整洁之道》第(15-16)章之什么是好架构

成本

都是钱惹的祸

? ? ? 邓爷爷说过一句话,“黑猫白猫,抓住老鼠就是好猫”。好的架构也同理,在软件系统的整个生命周期里面,系统便于理解,易于修改,方便维护,能轻松部署,那就是好的架构。一言以蔽之,最大化程序员的生产力,最小化系统的运营成本。

? ? ? 软件架构不只是需要考虑开发成本,也需要考虑部署成本,运行成本以及维护成本。

? ? ? 对于一个小于5人开发的单体系统,是不需要一开始就设计一个上层建筑来进行限制的,人与人之间的面对面交流效率更高,而如果一个系统涉及多个团队,多个组件,那么就需要将系统划分定义清晰的组件和可靠稳定的接口,否则交流成本急剧提高,开发工作就没法进行下去。

? ? ? 对于部署来说,目标永远都是一键部署,但是对于单体系统和微服务架构系统来说,实现这个目标的难度是天壤之别的。

? ? ? 而对于运行依赖的环境来说,因为摩尔定律,硬件成本反而是所有成本中最低下的,只要不是操作系统层级的代码,性能优化永远是排在最后的,硬件能解决的问题,尽量先不考虑软件的优化。

? ? ? 软件系统的各个方面综合来看,维护所需要的成本反而是最高的,修复一个现场故障带来的成本,十倍甚至百倍高于修改代码本身的工作量。所以好的架构需要重点考虑定位问题的难易性,新增功能的容易性,降低修改过程引入新问题的可能性。

重复

? ? ? 本章节中对重复的见解出乎我的意料。平时编码过程中,一直是号召整洁代码,那么对于重复代码就是一件需要尽力消除和减少的事情。重复本身会引入很多问题,比如结构不清晰,比如修复故障的时候,可能只修改了一处,另一处重复代码未被修改等,sonar系统中一个技术债定义就是代码重复度。

? ? ? 不过本书认为,如果可以预料随着时间推移,重复代码本身会各自演变,直到最终完全不同,那么尽早让代码分离开反而是更好的选择,可以避免同一代码兼容不同场景造成的复杂度急剧上升。

解耦

? ? ? 组件的设计原则是高内聚低耦合,如何解耦就是软件架构中需要更多考虑的事情。根据不同层次,解耦可以分为下面几种:

源码解耦:源码之间是通过函数调用来产生关系,如果没有一定的规则限制,那么这个调用关系很可能会出现你中有我,我中有你的网状关系。所以在源码层级就需要进行模块划分,进行接口定义,减少??橹涞鸟詈铣潭?。

部署解耦:对于单进程软件来说,一个??榈谋浠恍枰硪桓瞿?橹匦卤嘁?,就说明解耦不错,对多进程软件来说,需要考虑进程间通信(socket或者共享内存),一个进程重新部署不需要另一个进程重新构建或部署,那么就是成功的部署解耦。

服务解耦:当组件之间的依赖降低到数据结构级别,只通过网络数据包,也就是我们常用的restful接口来进行链接,这样每个部署单元都可以认为是独立的个体,微服务架构即使如此。

? ? ? 三种层次的架构无所谓高低,好的架构是允许一个系统从单体结构开始,以单一文件的形式部署,然后逐渐成长为一组相互独立的可部署单元,甚至是独立部署的服务或微服务,最后还可以根据情况的变化,允许系统以单体的结构部署,也就是可分可合的状态。

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容