专栏首页DDD应对复杂性

应对复杂性

资本家主要目标是赚钱、赚很多很多的钱;他们给提出的要求是降本增效

那么作为架构师,目标是什么呢?

在《整洁架构》书中作者写到架构的主要目的是支持系统的生命周期。良好的架构使系统易于理解,易于开发,易于维护和易于部署。 最终目标是最小化系统的寿命成本并最大化程序员的生产力

大多数程序员心里觉得应该是展示最牛B的技术才对,可现实却只是资本家的工具而已,是不是有些惊讶

软件的核心是它为用户解决领域相关问题的能力,保持业务价值的持续交付

可在软件行业,交付能力的持续性是相当有挑战性的,也许前期交付很快,但慢慢交付就很慢,质量也会下降,甚至哪怕一次小小的改动都要经历很久,更可怕的是无法交付,为什么呢?

在之前的相关文章中也提过,有两张图:

《架构师》中提到软件需求并不只是功能需求:

软件复杂度并不仅仅是业务复杂度:

在一起起看似快速交付背后,不合理的设计或者实现积累了过多的技术债,造成无法交付

所以架构师最重要的事就是解决软件中的复杂性

在软件项目中,任何方法论如果最终不能落在“减少代码复杂度”,都是有待商榷的

软件架构设计的实质,是让系统能够更快地响应外界业务变化,并且使得系统能够持续演进

架构设计的主要目的是为了解决软件复杂度带来的问题

《DDD应对复杂》[1]中也提到复杂的来源,对于软件复杂性以及应对方案,特定画了一幅图

对于图中复杂性来源和应对,可以对照以前的文章理解,也可以直接留言交流

References

[1] 《DDD应对复杂》: http://www.zhuxingsheng.com/blog/ddd-copes-with-complexity.html

本文分享自微信公众号 - 码农戏码(coder-game),作者:朱兴生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DDD应对复杂

    Eric Evans所著副标题--Tackling Complexity in the Heart of Software,对于简单系统其实没有必要使用DDD,...

    码农戏码
  • 如何应对混合云网络的复杂性?

    在经过一番艰苦努力的之后,我最终调试解决了一个非常棘手的混合云网络问题。 虚拟私有云(VPC)提供了一个包含免费虚拟机(VM)使用时间的培训项目,学生可以跟随一...

    静一
  • 克服复杂性突变:高复杂性下有益深远适应的算法

    考夫曼在与NK算法的开创性研究中指出,在NK环境中运行的算法的适应度结果显示,由于问题维度之间普遍相互依存,其高度复杂性急剧下降。这种复杂性影响主导(达尔文)适...

    用户8352478
  • 领域驱动应对业务复杂度

    之前的文章提到过,领域驱动设计分成战略层次和战术层次,战略层次我们讨论的很多了,接下来我们主要看下战术层次要搞哪些事情,以及领域驱动如何以架构的形式落地呢。

    春哥大魔王
  • 领域驱动设计对软件复杂度的应对

    不管是因为规模与结构制造的理解力障碍,还是因为变化带来的预测能力问题,最终的决定因素还是因为需求。Eric Evans认为“很多应用程序最主要的复杂性并不在技术...

    张逸
  • 全面的新颖性和复杂性。文学与复杂性科学(CS)

    在一项附带条件下,即考虑整体小说,复杂性理论与文学之间的牢固联系是可能的,即可行的。但是,无论是在一般文学中还是在复杂性科学中,都没有认真考虑文学。本文认为,整...

    Alfred_Yip
  • SpringMVC接收复杂对象

    上帝
  • SpringMVC接收复杂对象

    上帝
  • SpringMVC接收复杂对象

    转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7642977.html

    上帝
  • 浅论C++的复杂性

    C++语言已经有了30多年的历史。作为一门影响广泛的编程语言,它所受到的关注和争论恐怕是任何一门其他的语言所不能比拟的。十几年前,Java等新生语言的出现曾导致...

    Dabelv
  • 监控超属性的复杂性 (CS)

    我们研究超属性的运行时验证,用时态逻辑HyperLTL表示,作为检查系统安全策略的一种手段。超属性的运行时监控器分析由树形Kripke结构形式的共同前缀组织的跟...

    管欣8078776
  • ASR对二级自发语音中语言复杂性和复杂度自动分析的影响

    近年来,评估第二语言(L2)写作中语言复杂性的自动方法在衡量学习者的表现、预测人类对学习者作品质量的评价以及衡量L2发展的基准方面取得了重大进展。相比之下,口语...

    用户8436237
  • 从云计算到边缘:驯服应用供应链的复杂性

    为了满足数字世界中快速变化的客户需求,IT部门必须帮助他们的组织保持行业领先,并保持在预算范围内。例如,为了使IT能够提高敏捷性,并提高服务和创新的交付速度,他...

    静一
  • 大脑,意识和复杂性

    多年来的研究表明,脑电图(electroencephalography,EEG)信号的时间变化在许多时间范围内均表现出长期相关性,表明存在自不变和自相似结构(s...

    脑机接口社区
  • 各种排序的稳定性,时间复杂度、空间复杂度、稳定性

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    海仔
  • 排序时间复杂度对比

    py3study
  • Spring工厂创建复杂对象

    复杂对象是指无法使用 new 关键字直接创建的对象,比如在使用数据库连接的时候,我们需要用如下的方式创建对象:

    wsuo
  • 相对复杂的接口测试

    一个用户下的所有的订单。包含创建时间、支付状态和送货地址编号。一个goods_orders包括多条goods_order记录。

    小老鼠
  • 算法之美——算法复杂性

    《趣学算法》在线章节:http://www.epubit.com.cn/book/details/4825

    rainchxy

扫码关注云+社区

领取腾讯云代金券