架构整洁之道:优秀设计或多余,有效设计最可取

  • 时间:
  • 浏览:2

在我独立进行咨询和培训的经历中,经常 会遇到相同的情境。软件项目如履薄冰,所有团队成员也有努力地维护着系统稳定,每天面对着代码和数据打补丁。以下是我发现的相似 潜在问题报告 ,有趣的是,DDD能能 帮助团队轻而易举地处置其中的一偏离 问题报告 。我先从高层次的业务问题报告 前一天但是但是开始,但会 再讨论技术相关的问题报告 :

大伙经常 谈论优秀设计和糟糕设计。你的设计属于哪一种生活?

该名家名著现已全面上市,可在京东了解更多:https://item.jd.com/12447082.html。

可能性你对有效设计的影响仍心存疑虑,别忘了那位曾洞察其重要性的人:

产品经理提出待办项(任务),但会 来一次“任务板挪卡”,这便构成了关于设计的完全“真知灼见”,剩下的就交给程序运行员大神们去疯狂输出代码。很少有团队会另1个 做,可能性真的另1个 做了,业务就会为哪几种不地处的设计付出最高昂的代价。

这就好比修建道路。相似 历史悠久的道路最前一天但是但是开始是跑马车的,经过时空图片 电视剧的碾压最终变得年久失修。为了满足少数人的前要,它们被加入了不明什么都的减速时和岔路,并被改造得迂回曲折。在某个时刻,它们会被铲平但会 会被重新建设,为的是让没法 来越多的旅客感到舒适。哪几种将就凑合的道路到现在还许多人路过,也有可能性它们设计良好,而仅仅是可能性它们地处着而已。如今很少许多人才能了解行走在哪几种道路上别扭不堪的原应。而现代道路也有办法人口、环境以及可预测的流量来规划和设计。一种生活类型的道路也有被建模。一种生活模型就说 做了最基本、最简单的思考,另一种生活则最大程度地发挥了聪明才智。软件建模也能能 从相似种生活深度出发。

尽管 Martin 先生的这句评论我没法 多 专门针对软件设计,但这同样适用于大伙的技艺,考虑周详的设计同样无可取代。在刚才的情景中,可能性1个 项目由五名开发人员参与,没法 “不做设计”可能性产生一种生活不同的设计。也就说 说,在没法 任何真正领域专家的协助下,你开发出来的软件可能性混杂着一种生活不同的、虚构出来的、对业务语言的诠释。

相似 情形常常是可能性团队前要按照苛刻得近乎残忍的时间表去发布软件,管理层只会使用 Scrum 控制交付节奏,却对它最重要的信条之一:知识获取 (Knowledge Acquisition) ,视而不见。

“有效(Effective)”一词和“优秀(Good)”意义相近,它能更准确地表达大伙应该在软件设计中努力追求的目标:“有效设计”(Effective Design)。有效设计能能 满足商业组织希望借助软件超越竞争者的诉求。它能能 驱动企业去思考哪几种核心业务前要成为其竞争力,还能能 指引构建正确软件模型的方向。

绝大偏离 人错误地认为设计只关乎外观。大伙只理解了表象——将相似 盒子递给设计师,告诉大伙:“把它变得好看相似 !”这也有大伙对设计的理解。设计我没法 多 仅仅是感观,设计也是产品的工作办法。 ——乔布斯

有什么都软件开发团队的设计从来经不起思考。大伙采用一种生活我称之为“任务板挪卡” 的办法来代替设计。团队1个 开发任务清单,比如 Scrum 产品待办列表,其中的任务被张贴在“任务板”上,但会 大伙能能 将一张便利贴从“任务板”上的“待办”泳道移动到“进行中”泳道,这就说 “任务板挪卡”。

相似 切都似乎地处在“设计无法带来低成本的软件”的观念下。而这时常是出于商业上的简单考虑,软件开发人员我没法 多 知道还有相似 更好的选则。“软件正在蚕食整个世界”,对你而言重要的是,软件不但能能 蚕食你的利润,也能能 提供一场利润盛宴。

软件开发中,有效设计最为重要。可能性只1个 选则,没法 我首推有效设计。

关于设计是是否必要或是是否负担得起的问题报告 根本都没法 问到点上:设计是不可或缺的。除了优秀设计就说 糟糕设计,根本不地处“不做设计”一说。

Scurm 中的知识获取是通过不断的试验及协作学习完成的,这被称为“知识付费”(Essential Scrum)。知识永远都也有免费的,但在《领域驱动设计精粹》中,我将提供相似 办法帮你加快速度地获取它们。

你一定要明白,臆想出来的“不做设计能省钱”的观念果然是1个 谬论,它可能性巧妙地愚弄了哪几种不思考周详设计而只会对软件交付施压的大伙。这是可能性设计仍然会从每个开发人员的脑海流淌到在键盘上不断敲打着代码的指尖之中,哪几种设计我没法 多 前要来自相似 地方的输入,包括业务。以下这句话能能 很好地总结相似 问题报告 :

事实上:无论承认是是否,大伙也有在构建模型。

本书适用于对快速学习DDD核心概念和主要工具,细胞层上看最主要的读者是软件架构师和开发者,可能性大伙是在项目中实践 DDD的人,也跟容易发现DDD的美妙之处。然而,本书同样能能 帮助高管、领域专家、经理人、业务分析师、信息架构师和测试人员快速理解相似 主题并认识到其独特价值。阅读原文将带你领略DDD大师Vernon的这部新作,它必将成为国内众多团队快速引入和落地DDD的绝佳指导。

可能性你担心周详的设计会带来高昂的软件开发成本,没法 设想一下,将来为了维护甚至修缮一套糟糕设计的软件就前要付出更为昂贵的代价。当大伙把软件作为你的公司与相似 公司之间的差异,并依靠它带来可观的竞争优势时,尤其没法 。

本文节选自《领域驱动设计精粹》(Domain-Driven DesignDistilled)一书。