一、YAGNI原则:you aren’t gona need it 不要过度设计
不要去设计你用不到的功能;不要去编写当前用不到的代码。
比如,系统暂时使用Redis存储配置信息,以后可能会用到Zookeeper,就没必要提前编写Zookeeper存储配置信息这部分代码。但要预留好扩展点,到时候需要的时候再去实现这部分代码。
比如,有些同事为了避免开发中library包缺失而频繁修改Maven配置文件,去引入大量常用的library包,但有些library包是不需要的,这就违背了YAGNI原则。
二、KISS原则:keep it simple and stupid 尽量保持简单
kiss原则是保持代码可读和可维护的重要手段。
简单并不是以代码行数考量,需要考虑逻辑复杂度,实现难度,代码的可读性等。
但如果是复杂问题,用复杂方法解决,并不违背kiss原则。
除此之外,同样的代码,在某个业务场景下满足kiss原则,换一个场景可能就不满足了。
如何写出满足kiss原则的代码:
(1)不要使用同事可能不懂的技术来实现代码
(2)不要重复造轮子,要善于使用已经有的工具类库
(3)不要过度优化
三、KISS原则和YAGNI原则区别
YAGNI原则讲的是“要不要做”的问题(当前不需要的就不要做),
而KISS原则讲的是“如何做”的问题(尽量保持简单)。