beckdesignrules.

2015年3月2日

肯特贝克在他开发时提出了他的四个简单设计规则偏爱编程在1990年末。我像这样表达他们。[1]

  • 通过测试
  • 揭示意图
  • 没有重复
  • 最少的元素

规则处于优先顺序,因此“通过测试”优先于“揭示意图”

Kent Beck开发了极端的编程,测试驱动的开发,并可以始终依赖于他当地芭蕾舞的优秀维多利亚面部头发。

最重要的规则是“通过测试”。XP是革命性的,它在软件开发中如何对一流活动提出测试,因此测试应该在这些规则中发挥着突出的作用是自然的。188比分直播完整手机版关键是,无论您对软件做什么,主要目的是它根据预期和测试在那里有效,以确保发生这种情况。

“揭示意图”是肯特的说法应该容易理解的方式。沟通是极限编程的核心价值,许多程序员喜欢强调人们在那里读取这些程序。肯特的表达这一规则的形式意味着能够理解的关键是在代码中表达您的意图,以便您的读者可以了解您的目的在写作它的目的。

“无重复”可能是这些规则最有力的微妙。这是其他地方表达的概念[2],肯特表达了这一点,说一切应该说“一次,只有一次”。许多程序员已经观察到消除重复的行使是推出良好设计的强大方法。[3]

最后一个规则告诉我们,应该删除任何不服务于3个先前规则的事情。在制定这些规则时,将元素添加到架构中有很多设计建议,以提高未来要求的灵活性。188比分直播网 坚持原创具有讽刺意味的是,所有这些元素的额外复杂性通常都使系统更加难以修改,从而在实践中更不灵活。

人们经常发现“无复制”和“揭示意图”之间存在一些紧张,导致关于这些规则应该出现的秩序的论据。由于他们在精炼代码中互相喂食,我总是看出自己的命令。在增加复制以增加清晰度的情况下,这些事情通常会在一个问题上进行纸张,当它更好地解决它时。[4]

我喜欢这些规则的是,他们非常简单地记住,但关注他们以我合作的任何语言或编程范例的代码。它们是肯特的技术方面的一个例子,寻找通常适用的原则,但却具体地塑造我的行为。

当时有很多“设计是主观的”,“设计是一种味道”的胡说八道。我不同意。设计更好,更糟糕的设计。这些标准并不完美,但它们有助于解决一些明显的废话和(重要的)您现在可以评估它们。设计质量的真正标准,“最大限度地减少了成本(包括延迟成本)并最大限度地提高了软件的寿命,”只能评估Hoc,甚至任何评估都会受到全面的大包认知偏差。四个规则通常是预测性的。

- 肯特贝克

进一步阅读

这些规则有很多表达,这里有一些我认为值得探索:

致谢

肯特审查了这篇文章并给了我一些非常有用的反馈,其中许多我挪用进入文本。

笔记

1:权威制定

在那里有许多表达的四个规则,肯特向他们介绍了很多媒体,很多其他人都喜欢他们并将他们留下他们自己的方式。所以你会看到大量的规则描述,但每个作者都有自己的扭曲 - 我就是我

如果您希望自己自己的权威制定,可能是您最好的赌注来自第一版白皮书(p 57)在概述简单设计的XP实践的部分中。

  • 运行所有测试
  • 没有重复的逻辑。谨慎像并行类层次结构一样
  • 各种对程序员来说重要的
  • 拥有最可能的课程和方法

(只是令人困惑,第109页的另一个配方,省略了“运行所有测试”并在最后两条规则中拆分“最少的类”和“最少的方法”。我记得这是肯特在写作时改进的早期配方白皮书。)

2:干燥代表不要重复自己,来自务实的程序员。现场代表单位真理

3:这个原则是我的基础IEEE软件的第一个设计列

4:当审查这篇文章时,肯特说:“在罕见的情况下,他们在冲突中(在测试中是我可以回忆的唯一一个例子),同理心赢得了一些严格的技术公制。”我喜欢他对同理心的观点 - 它提醒我们,当编写代码时,我们应该始终考虑读者。