KISS 原则
KISS(Keep It Short and Simple):尽量保持简单。
代码的可读性和可维护性是衡量代码质量非常重要的两个标准。
而 KISS
原则就是保持代码可读和可维护的重要手段。
代码足够简单,也就意味着很容易读懂,bug 比较难隐藏。
即便出现 bug,修复起来也比较简单。
并不是代码行数越少就越“简单”
如:检查输入的字符串 ipAddress 是否是合法的 IP 地址。
- 方式一:使用正则匹配。
- 正则表达式本身是比较复杂的,写出完全没有 bug 的正则表达本身就比较有挑战
- 并不是每个程序员都精通正则表达式。对于不怎么懂正则表达式的同事来说,看懂并且维护这段正则表达式是比较困难的。
- 方式二:使用
StringUtils
类、Integer
类提供的一些现成的工具函数。 - 方式三:不使用任何工具函数,而是通过逐一处理 IP 地址中的字符,来判断是否合法。
- 从代码行数上来说,这两种方式差不多
- 方式三要比方式二更加有难度,更容易写出 bug
- 从可读性上来说,方式二实现的代码逻辑更清晰、更好理解
代码逻辑复杂并不一定违反 KISS 原则
如:KMP 字符串匹配算法完全符合逻辑复杂、实现难度大、可读性差的特点,但它并不违反 KISS 原则。
- KMP 算法以快速高效著称
- 本身就复杂的问题,用复杂的方法解决,并不违背 KISS 原则
- 如果使用 KMP 算法处理较小的文本,那就违反了 KISS 原则
如何写出满足 KISS 原则的代码
- 不要使用同事可能不懂的技术来实现代码。
- 不要重复造轮子,要善于使用已经有的工具类库。
- 不要过度优化,牺牲代码的可读性。
YAGNI 原则
YAGNI(You Ain’t Gonna Need It):不要去设计当前用不到的功能;不要去编写当前用不到的代码。
实际上,这条原则的核心思想就是:不要做过度设计。这并不是说我们就不需要考虑代码的扩展性。我们还是要预留好扩展点,等到需要的时候,再去实现。
与 KISS 原则的区别
KISS 原则讲的是 如何做 的问题(尽量保持简单),而 YAGNI 原则说的是 要不要做 的问题(当前不需要的就不要做)。