设计模式之美 -- 经常被用错的 KISS、YAGNI 原则
KISS 原则
内容: 让代码尽量保持简单
代码越少越符合 KISS 原则吗?
答:不一定。
假如实现一个 IP 地址校验的功能,有 3 种实现方式:
直接一个正则表达式搞定(正则不是每个人都那么容易理解的,且容易出错)
使用现有的一些工具类 StringUtils、Integer 实现
什么工具类都不用,自己实现(好处仅仅是用复杂换取微弱的性能优势)
代码逻辑复杂就违背 KISS 原则吗?
如果本身就是个复杂问题,那不算;如果问题本身简单,为了不明显的收益,引入复杂的算法,那就违背。
如何写出满足 KISS 的代码?
不要使用其他人可能不懂的技术实现代码
不要重复造轮子
不要过度优化,不要过度使用些奇技淫巧。
越是简单的方法解决复杂的问题,越能体现能力
YAGNI--You Ain’t Gonna Need It
直译:你不会需要它。不要去设计当前用不到的功能,不要去编写当前用不到的代码。(不代码不需要考虑代码的扩展性,还是要预留好扩展点)
核心思想:不要过度设计。
和 KISS 区别
KISS 强调的是“如何做”,YAGNI 强调的是“不要做”
版权声明: 本文为 InfoQ 作者【GalaxyCreater】的原创文章。
原文链接:【http://xie.infoq.cn/article/3e52093dfe8514321094807e3】。文章转载请联系作者。
评论