【架构基础】简单设计原则

简单设计来源于极限编程(ExtremeProgramming,简称XP)。XP是由KentBeck在1996年提出的,是一种软件工程方法学,是敏捷软件开发中最富有成效的几种方法学之一。XP存在四个核心实践:TDD(Test-Driven Development)、重构(Refactoring)、简单设计(Simple Design)、结对编程(Pair Programming)。

简单设计四原则:

1 通过所有测试(Passes its tests)

2 尽可能消除重复(Minimizes duplication)

3 尽可能清晰表达(Maximizes clarity)

4 更少的代码元素(Has fewer elememts)

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

简单设计原则初看平淡无奇,然而慢慢品味,实则大道至简:

通过所有测试,即功能的正确性,意味着我们开发的功能必须满足客户的需求。该原则隐含设计人员与客户沟通的重要性,保证原始需求与代码的设计、实现一致。

尽可能地消除重复,是对代码质量提出的要求。可扩展性是软件质量的八大属性之一,而重复是万恶之源(root of all evils),重复严重影响代码的可扩展性。

尽可能地清晰表达,清晰表达的代码,可以增加代码的可维护性。在宏观层面上,可以通过统一语言(Ubiquitous Language,来源于《领域驱动设计:软件核心复杂性应对之道》),实现业务人员、架构人员、开发人员、测试人员之间的需求传递;在微观层面上,通过引入DSL(领域特点语言,Domain Specific Language),函数名称自注释,引入解释性变量等方法,实现更易于理解的代码。

更少的代码元素,如无必要,勿增元素。它告诫我们避免为了迎合未来可能不存在的变化,落入过度设计的陷阱。在满足客户需求的基础上,只要功能代码做到了最小重复和清晰表达,就要避免进一步拆分或提取类、方法和变量。

最后一句话非常重要,它明确指出了以上四个原则的优先级关系。首先,保证功能正确性;其次,减少代码重复;再次,提升代码可理解性。若已满足了这三点要求,就不必过度设计,新增代码元素。正如曾国藩所言“物来顺应,未来不迎,当时不杂,既往不恋”。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值