设计模式之美学习笔记20: KISS原则和YAGNI原则
2019-12-18
今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第20节的学习笔记,介绍面向对象设计原则中的KISS原则和YAGNI原则。
笔记 #
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
KISS原则 #
KISS原则直译过来就是"尽量保持简单"。 KISS原则是保持代码可读性和可维护性的重要手段,足够简单,也就意味着很容易读懂,这就让BUG不容易隐藏且更容易修复。 这个原则从另一个角度也给出了我们在做开发时不要过度设计,要学会用简单的方法解决复杂的问题。
KISS原则的"简单"不是以代码行数衡量的,代码行数少不代表简单,还要考虑逻辑复杂度、实现难度、代码可读性等。本身就复杂的问题,用复杂方法解决,并不违反KISS原则。 除此之外,同样的代码,在某个业务场景下满足KISS原则,换一个应用场景可能就不满足了。
KISS原则的几个指导原则:
- 不要使用同事可能不懂的技术来实现代码
- 不要重复造轮子,要善于使用已经有的工具类库
- 不要过度优化
YAGNI原则 #
YAGNI原则直译就是"你不会需要它",意思是"不要设计当前用不到的功能;不要去编写当前用不到的代码",核心思想就是: “不要过度设计”.
YAGNI原则根KISS原则的区别: KISS讲的是"如何做"(尽量保持简单),而YAGNI原则说的是"要不要做"(当前不需要的就不要做)。
个人理解 #
这是偏指导方针的两个原则,看看好了。