解构领域驱动设计读后感-系统复杂度

软件复杂度

最近阅读了<结构 领域驱动设计> 针对里面的一些细节做了一些读后感

计算机编程的本质就是控制复杂度 - Brian Kernighan (反正我也不认识,就引用下)

什么是系统复杂度

专门从事复杂系统研究的学着在接受杂志访问时,”勉为其难”的为复杂系统给出了一个相对通俗的定义:

由大量相互作用的部分组成的系统.与整个系统比起来,这些组成的部分相对简单,没有中央调度和控制,组成部分之间也没有全局性的通信,并且组成部分的相互作用导致了复杂行为. 

软件复杂度的特征

对于软件复杂度的特征.基于力度的不同可以是函数,类,模块,组件,服务等维度,这些都可以算是软件元素.这些软件元素单看相对简单,而彼此之间的相互作用却导致了软件系统的复杂行为.

从软件系统的复杂度上,我们可以通过 理解能力维度 和 预测能力维度 来分析复杂度的成因.

理解能力维度

理解能力维度 - 简单的 和 复杂的

规模

软件的需求决定了系统的规模
  1. 1000行代码一定比100行代码复杂
  2. 这个服务有500个函数一定比100个函数的服务复杂
  3. 一个类被10个方法引用一定比被一个方法引用的复杂
  4. 异步代码逻辑一定比同步代码逻辑复杂
  5. 多线程一定比单线程复杂
  6. 调用远程方法一定比调用本地方法复杂
  7. 有10个外键关联关系的表一定比没有关联关系的表复杂
  8. ....

虽然软件开发不受物理法则的约束,但是无法多笔来自熵的暴击.是一个物理属于,他定义了一个系统的无序总量,不幸的是,热力学法则决定了宇宙中所有的熵都会趋向于无穷大.所以领域驱动也只是减缓系统复杂度熵的增速,而非彻底解决.

的结果就是技术债,只要是在开发就无可避免存在技术债.随着需求的增加,即便每次都看似合理的设计都逃不掉技术债.<font color=red>区别就在于技术债的多少以及利息多重</font>

结构

结构 - 决定了系统复杂度的一个关键指标,结构之所以复杂,取决于质量属性
  1. 多级缓存方案一定比仅有本地缓存复杂
  2. 分布式存储一定比单一存储复杂
  3. 微服务后的组织架构重组一定比单体应用时的组织架构复杂
  4. 可伸缩扩容的分区架构一定比固定区间设计复杂
  5. 可靠性99.999%一定比98%复杂
  6. 主从架构一定比单节点的复杂

无论设计是优雅还是拙劣,系统结构都可能因为某种设计权衡而变得复杂.但是我们还是得做.
这就像人都会死,干嘛要努力的活着.
区别就是我可以主动去控制复杂度的变化,而无视这些结构复杂化,会导致偶发性的事故发生,错误的滋生,这也是一种技术债.

预测能力维度

预测能力维度 - 有序的,复杂的,混沌的

当我们掌握了事务发展的客观规律,就具备了一定对未来的预测能力.例如我能知道下一辆12号线什么时候来,但这也不是绝对的.所以影响预测能力的关键要素在于变化.对变化的应对不妥,就会导致过度设计设计不足

过度设计

设计软件系统时,变化让我换得换失.主要体现在如何把握系统设计的度.总觉得这也要有,那个也要有.但是又没有可靠的依据,难以说服同事观点的论据.究其根本,对于行业领域的理解是影响设计的关键因素.

在设计层面,过度的抽象会增加方案的复杂度,扩展式设计不可预知的未来做投资,一旦未来变化不符合预期,就会导致过度设计.所以对于方案的不可预测变化,首先应该保证方案的简单些.例如设计提炼接口.

设计不足

这部分主要体现在设计人员能力不足,也就是产品经理或者业务方.本身没有明确识别出来未来的变化,或者对需求的发展方向缺乏前瞻性.所以导致整个设计比较讲话,修改的成本比较高.从而走了另外一个极端.

我曾经负责过一个网约车的项目,我们只是一层代理商.用于向我们的客户提供网约车能力.当时产品经理找了一家网约车的服务方.我们通过接口对接的方式很容易的完成了整个下单,选车,预约,支付的闭环逻辑.但是没想到的是.这家网约车的服务质量并不高.此时需要接入另外一家网约车服务商.虽然在流程上都差不多.但是对于每个城市编码的定义,订单状态的字段含义,价格的类型,甚至是经纬度的坐标系都不是统一的.这个时候的接入工作比单纯接入一家网约车更加困难.

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

推荐阅读更多精彩内容