> 文章列表 > 代码重构的一些原则(持续更新)

代码重构的一些原则(持续更新)

代码重构的一些原则(持续更新)

1.重构在前,优化在后,不过早优化,重构时不要过于担心框架对性能的影响,优化的时候才需要考虑这一点,因为重构结束的时候,新框架已经使你处于一个优化有利的位置了,总之,先最对的,在做好的。

2.不要再一个模块(类,源文件)中频繁用另一个模块的属性(变量,对象)做判断,分支,switch等等,如果不得不使用,将其移到所属模块或者源文件,在模块自己的数据上使用,而不是在别人的模块上使用。

3.提炼公共逻辑,找到代码的公共逻辑泥团,将其提炼独立出来,使其可复用,可维护,方便扩展。

4.方便人去理解而不是机器,尽可能地使用简单的设计来解决问题。

5.如果一个函数使用了来在其它模块的变量,对象或者类型,要立刻想到这个函数是否放错了位置,大部分情况下,函数应该放到它所使用的数据所属的类,源码文件,或者模块定义中。

6.删减临时变量,临时变量传来传去,会使代码的可读性变差,找到初始化这些临时变量公共逻辑,抽取提炼出来封装为函数,这样不但减少代码行数,也能提高复用性。

7.尽量控制变化带来的影响在最小范围,如果是C,就控制在一个源文件内,如果是C++,就控制在类内部。

8.A和B没有逻辑上的关系,就不要让它们发生事实上的直接联系,A的改动不应该是导致B改动的原因。

9.避免重复,代码中避免出现重复的逻辑和代码片段,尽可能将通用的代码封装成函数或类,以提高代码的重用性和可维护性。

10.SRP(Single Responsibility Principle)单一职责原则:一个类或函数只负责一件事情,避免过于复杂的实现,提高代码的可读性和可维护性。

11.OCP(Open/Closed Principle)开闭原则:软件实体应该对扩展开放,对修改关闭。尽量通过扩展来实现新功能,而不是修改原有代码。

12.LSP(Liskov Substitution Principle)里氏替换原则:子类必须能够替换它们的基类,而不会影响程序的正确性。即子类在实现父类的方法时,不能改变方法的输入输出和抛出异常等。

13.ISP(Interface Segregation Principle)接口隔离原则:客户端不应该被迫依赖于它们不需要的接口。接口应该尽量小而精,而不是大而全。

14.DIP(Dependency Inversion Principle)依赖倒置原则:高层模块不应该依赖于底层模块,而是应该依赖于抽象接口。抽象不应该依赖于细节,细节应该依赖于抽象。

15.KISS(Keep It Simple, Stupid)保持简单原则:尽可能地使用简单的设计来解决问题。

16.YAGNI(You Ain't Gonna Need It)你不会需要它原则:不要预测未来,只实现当前需求。

17.避免重复原则:代码中避免出现重复的逻辑和代码片段,尽可能将通用的代码封装成函数或类,以提高代码的重用性和可维护性。

18.面向对象设计原则:尽量遵循面向对象的设计原则,如抽象、封装、继承、多态等。

19.SOLID原则:包含SRP、OCP、LSP、ISP、DIP五个原则,是面向对象设计的基本原则。

20.头文件自举原则,如果一个源文件调用这个头文件中的方法,它不应该还需要包含别的头文件才能通过编译。


结束