We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
文章是学习 《设计模式之美》- 王争 的总结
《设计模式之美》- 王争
KISS、YAGNI、DRY 原则概念比较简单,主要都是为了让我们写出更简单和合理的代码。越简单的方法,解决复杂问题,越能表现出一个人的技术能力!
英文 Keep it simple and stupid 的缩写,简单的说就是:尽量保持代码简单。
遵循 KISS 原则的话,日常写代码可以这么要求自己:
英文 “You Ain’t Gonna Need It” 的缩写,直白的意思就是:你不会需要它。
当用在软件开发中的时候,它的意思是:不要去设计当前用不到的功能;不要去编写当前用不到的代码。实际上,这条原则的核心思想就是:不要做过度设计。
比如前端项目中 package.json 过多的依赖一些没用到的模块,或者是配置一下当前没有用上的配置,编写可能没有用的代码等情况。
要注意的是 YAGNI 不代表在任何情况你不考虑扩展性设计,要明白设计原则中 单一职责、开闭原则、里式替换原则、接口隔离原则、依赖注入原则等都基本是围绕着扩展性、易读性、易维护性等理念的,同样 KISS、YAGNI 也是为了易读性、保持易扩展性。而扩展性是需要在写代码的时候做一些预留的设计,比如将来不久或者可能特换的代码或者配置等。这并不是冲突的,而应该是相辅相成。
KISS重点是如何做(尽量保持简单),YAGNI 是要不要做(当前不需要做的尽量不要做)。
英文“Don’t Repeat Yourself” 的缩写,直白的意思是:不要重复代码。
违法 DRY 原则的代码重复分为三种:实现逻辑重复、功能语义重复、代码执行重复。
区分三个概念:代码复用性(Code Reusability)、 代码复用(Code Reuse)和 DRY 原则
代码复用表示一种行为:我们在开发新功能的时候,尽量复用已经存在的代码。代码的可复用性表示一段代码可被复用的特性或能力:我们在编写代码的时候,让代码尽量可复用。DRY 原则是一条原则:不要写重复的代码。从定义描述上,它们好像有点类似,但深究起来,三者的区别还是蛮大的。
在设计每个模块、类、函数的时候,要像设计一个 外部 API 一样去思考它的复用性。
在第一次写代码的时候,如果当下没有复用的需求,而未来的复用需求也不是特别明确,并且开发科复用代码的成本较高,那我们就不需要考虑代码的复用性。在之后开发新功能的时候,发现可以复用之前写的代码,那我们就重构这段代码,让其变得更加可复用。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
1 引言
KISS、YAGNI、DRY 原则概念比较简单,主要都是为了让我们写出更简单和合理的代码。越简单的方法,解决复杂问题,越能表现出一个人的技术能力!
2 概述
KISS 原则
英文 Keep it simple and stupid 的缩写,简单的说就是:尽量保持代码简单。
遵循 KISS 原则的话,日常写代码可以这么要求自己:
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 一样去思考它的复用性。
在第一次写代码的时候,如果当下没有复用的需求,而未来的复用需求也不是特别明确,并且开发科复用代码的成本较高,那我们就不需要考虑代码的复用性。在之后开发新功能的时候,发现可以复用之前写的代码,那我们就重构这段代码,让其变得更加可复用。
The text was updated successfully, but these errors were encountered: