敏捷词汇表 -- 敏捷联盟
# 简单性原则 Rules of simplicity
## 定义
肯特·贝克(Kent Beck)提出的一组优先顺序准则,用以判断某些源代码是否“足够简单”:
- 该代码已通过自动化测试验证,并且所有此类测试均通过
- 该代码不包含重复项
- 代码分别表达了每个不同的想法或责任
- 该代码由与前三个条件兼容的最少数量的组件(类,方法,行)组成
## 常见陷阱
第一个标准很容易判断,但是却暗示着一点琐碎的东西:即所讨论的源代码是“正确的”或没有缺陷。单元测试充其量只是暗示性的证据,表明程序没有缺陷,当然也没有确定的证据。然而,务实地,敏捷话语认为它们是出色的第一道防线。
接下来的两个标准为主观判断留出了更多空间。例如,代码复制可以按字面意义进行,即按字符复制。由于不幸的是,“复制粘贴编程”仍然是行业惯例,因此这是经常发生的情况,可以通过勤奋的重构来缓解。但是,有能力的程序员也认识到更细微的复制形式。
类似地,存在许多使第三标准正式化的独特尝试,但都没有被认为是确定的。示例包括“低耦合和高内聚力 ”以及SOLID设计原则。
## 起源
- 1999年:Kent Beck在IEEE计算机上的文章“用极限编程拥抱变化 ”中首次描述了“ 简单设计规则”,总结了OTUG邮件列表上的先前讨论。