简单设计四原则

这篇具有很好参考价值的文章主要介绍了简单设计四原则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 0. 背景
  •  1. 是什么
  •  2. 极限编程
  •  3. 如何实现

0. 背景

代码设计的问题

简单设计原则,架构,驱动开发,设计模式,架构

1. 是什么

Kent Beck 提出的简单设计4原则

  1. 通过所有测试(Passes its tests),只有通过测试,才能被客户验收,满足需求,体现价值。

  2. 尽可能消除重复 (Minimizes duplication),重复,意味着低内聚,高耦合。

  3. 尽可能清晰表达 (Maximizes clarity),揭示意图,增加代码的可读性,代码的注释,变量和方法命名,类的职责单纯。

  4. 更少代码元素 (Has fewer elements),最少元素,降低代码复杂度。

以上四个原则的重要程度依次降低。

  • 通过所有测试原则意味着我们开发的功能满足客户的需求,这是简单设计的底线原则。该原则同时隐含地告知与客户或领域专家(需求分析师)充分沟通的重要性。

  • 尽可能消除重复原则是对代码质量提出的要求,并通过测试驱动开发的重构环节来完成。注意此原则提到的是Minimizes(尽可能消除),而非No duplication(无重复),因为追求极致的重用存在设计与编码的代价。

  • 尽可能清晰表达原则要求代码要简洁而清晰地传递领域知识,在领域驱动设计的语境下,就是要遵循统一语言,提高代码的可读性,满足业务人员与开发人员的交流目的。针对核心领域,甚至可以考虑引入领域特定语言(Domain Specific Language,DSL)来表现领域逻辑。

  • 在满足这三个原则的基础上,更少代码元素原则告诫我们遏制过度设计的贪心,做到设计的恰如其分,即在满足客户需求的基础上,只要代码已经做到了最少重复与清晰表达,就不要再进一步拆分或提取类、方法和变量。

  • 这四个原则是依次递进的,功能正确,减少重复,代码可读是简单设计的根本要求。一旦满足这些要求,就不能创建更多的代码元素去迎合未来可能并不存在的变化,避免过度设计。

简单设计原则,架构,驱动开发,设计模式,架构

2. 极限编程

极限编程的主要目标在于降低因需求变更而带来的成本。在传统系统开发方法中,系统需求是在项目开发的开始阶段就确定下来,并在之后的开发过程中保持不变的。这意味着项目开发进入到之后的阶段时出现的需求变更(而这样的需求变更在一些发展极快的领域中是不可避免的)将导致开发成本急速增加。

极限编程透过引入基本价值、原则、方法等概念来达到降低变更成本的目的。一个应用了极限编程方法的系统开发项目在应对需求变更时将显得更为灵活。

简单设计原则,架构,驱动开发,设计模式,架构

极限编程鼓励从最简单的解决方式入手再通过不断重构达到更好的结果。这种方法与传统系统开发方式的不同之处在于,它只关注于对当前的需求来进行设计、编码,而不去理会明天、下周或者下个月会出现的需求。极限编程的拥护者承认这样的考虑是有缺陷的,即有时候在修改现有的系统以满足未来的需求时不得不付出更多的努力。然而他们主张“不对将来可能的需求上投入精力”所得到的好处可以弥补这一点,因为将来的需求在他们还没提出之前是很可能发生变化的。为了将来不确定的需求进行设计以及编码意味着在一些可能并不需要的方面浪费资源。而与之前提到的“交流”这一价值相关联来看,设计与代码上的简化可以提高交流的质量。一个由简单的编码实现的简单的设计可以更加容易得被小组中的每个程序员所理解。

3. 如何实现

简单设计原则,架构,驱动开发,设计模式,架构文章来源地址https://www.toymoban.com/news/detail-556853.html

到了这里,关于简单设计四原则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java 设计模式】设计原则之开放封闭原则

    在软件开发中,设计原则是创建灵活、可维护和可扩展软件的基础。 这些原则为我们提供了指导方针,帮助我们构建高质量、易理解的代码。 ✨单一职责原则(SRP) ✨开放/封闭原则(OCP) ✨里氏替换原则(LSP) ✨依赖倒置原则(DIP) ✨接口隔离原则(ISP) ✨合成/聚合复

    2024年02月02日
    浏览(49)
  • 【Java 设计模式】设计原则之里氏替换原则

    在软件开发中,设计原则是创建灵活、可维护和可扩展软件的基础。 这些原则为我们提供了指导方针,帮助我们构建高质量、易理解的代码。 ✨单一职责原则(SRP) ✨开放/封闭原则(OCP) ✨里氏替换原则(LSP) ✨依赖倒置原则(DIP) ✨接口隔离原则(ISP) ✨合成/聚合复

    2024年01月20日
    浏览(44)
  • 设计模式——设计模式以及六大原则概述

    设计模式代表有经验的面向对象软件开发人员使用的最佳实践。 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。 这些解决方案是由许多软件开发人员在相当长的时间内通过试错获得的。 在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四

    2024年02月13日
    浏览(51)
  • 设计模式的设计原则

    为什么需要设计模式? 我的理解设计模式就是一种针对某种问题的套路,是一套被反复使用,多数人所知晓的,经过分类编目的,代码设计经验的总结。 1.开闭原则 1.1 定义:     一个软件实体应当对扩展开放,对修改关闭,即软件实体应尽量在不修改原有代码下进行扩展

    2024年02月09日
    浏览(39)
  • 软件设计模式原则(二)开闭原则

    继续讲解第二个重要的设计模式原则——开闭原则~ 一.定义         开闭原则,在面向对象编程领域中,规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为

    2024年02月06日
    浏览(50)
  • 设计模式-原则篇-01.开闭原则

    ​ 可以把设计模式理解为一套比较成熟并且成体系的建筑图纸,经过多次编码检验目前看来使用效果还不错的软件设计方案。适用的场景也比较广泛,在使用具体的设计模式之前先要学习软件设计的基础 “软件设计原则”,后面的23个设计模式都是遵从“软件设计原则演变而

    2024年02月09日
    浏览(43)
  • 设计模式】引言-六大设计原则

    ● 概念:仅有一个引起其变化的原因。 ● 个人理解:一个类中应该是一组相关性很高的函数及数据的封装 主观性较强,和起名一样困难,一个方法放在ClassA合理还是放在ClassB合理? ● 概念:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码

    2023年04月24日
    浏览(43)
  • 设计模式之六大设计原则

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好

    2024年02月02日
    浏览(49)
  • 设计模式的六大设计原则

    一个类只负责一个单一明确的职责。如果一个类同时负责多个职责,来自职责A的需求变更引起的修改可能会导致职责B的功能发生故障。 比如说一个类T原本是符合单一职责的,后来因为某种原因或者是需求变更了,需要将职责P细分为颗粒度更细的职责P1和职责P2,这时候可以

    2024年02月09日
    浏览(45)
  • 软件设计原则与设计模式

    设计中各各原则同时兼有或冲突,不存在包含所有原则的设计 一:单一职责原则又称单一功能原则 核心:解耦和增强内聚性(高内聚,低耦合) 描述:类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联。 二:开闭

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包