设计原则 - KISS、YAGNI、DRY
KISS、YAGNI、DRY 原则概念比较简单,主要都是为了让我们写出更简单和合理的代码。越简单的方法,解决复杂问题,越能表现出一个人的技术能力!
概述
KISS 原则
英文 Keep it simple and stupid 的缩写,简单的说就是:尽量保持代码简单。
遵循 KISS 原则的话,日常写代码可以这么要求自己:
- 不要使用同事可能不懂的技术来实现代码。比如复杂的正则表达式(难以维护),还有一些编程语言中过于高级的语法等。
- 不要重复造轮子,要善于使用已经有的工具类库。经验证明,自己去实现这些类库,出 bug 的概率会更高,维护的成本也比较高。
- 不要过度优化。不要过度使用一些奇技淫巧(比如,位运算代替算术运算、复杂的条件语句代替 if-else、使用一些过于底层的函数等)来优化代码,牺牲代码的可读性。
YAGNI 原则
英文 “You Ain’t Gonna Need It” 的缩写,直白的意思就是:你不会需要它。
当用在软件开发中的时候,它的意思是:不要去设计当前用不到的功能;不要去编写当前用不到的代码。实际上,这条原则的核心思想就是:不要做过度设计。
比如前端项目中 package.json 过多的依赖一些没用到的模块,或者是配置一下当前没有用上的配置,编写可能没有用的代码等情况。
要注意的是 YAGNI 不代表在任何情况你不考虑扩展性设计,要明白设计原则中 单一职责、开闭原则、里式替换原则、接口隔离原则、依赖注入原则等都基本是围绕着扩展性、易读性、易维护性等理念的,同样 KISS、YAGNI 也是为了易读性、保持易扩展性。而扩展性是需要在写代码的时候做一些预留的设计,比如将来不久或者可能特换的代码或者配置等。这并不是冲突的,而应该是相辅相成。
KISS重点是如何做(尽量保持简单),YAGNI 是要不要做(当前不需要做的尽量不要做)。
DRY 原则
英文“Don’t Repeat Yourself” 的缩写,直白的意思是:不要重复代码。
违法 DRY 原则的代码重复分为三种:实现逻辑重复、功能语义重复、代码执行重复。
代码复用性(Code Reusability)
区分三个概念:代码复用性(Code Reusability)、 代码复用(Code Reuse)和 DRY 原则
代码复用表示一种行为:我们在开发新功能的时候,尽量复用已经存在的代码。代码的可复用性表示一段代码可被复用的特性或能力:我们在编写代码的时候,让代码尽量可复用。DRY 原则是一条原则:不要写重复的代码。从定义描述上,它们好像有点类似,但深究起来,三者的区别还是蛮大的。
怎么提高代码复用性?
- 减少代码耦合
- 满足单一职责原则
- 模块化
- 业务与非业务逻辑分离
- 通用代码下沉
- 继承、多态、抽象、封装
- 应用模板等设计模式
总结
在设计每个模块、类、函数的时候,要像设计一个 外部 API 一样去思考它的复用性。
在第一次写代码的时候,如果当下没有复用的需求,而未来的复用需求也不是特别明确,并且开发科复用代码的成本较高,那我们就不需要考虑代码的复用性。在之后开发新功能的时候,发现可以复用之前写的代码,那我们就重构这段代码,让其变得更加可复用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论