重构的实践要点

tamoadmin 球队新闻 2024-04-26 65 0

重构的实践要点

重构是一种在不改变软件功能和外部可见性的情况下,为了改善软件的结构,提高软件的清晰性、可扩展性和可重用性而对其进行的改造。以下是重构的一些实践要点:

1.确保有足够的测试

在进行重构之前,应确保有一个可靠的测试机制,这些测试必须能够自我检测。这是因为重构可能会引入新的错误,有了足够的测试可以在第一时间发现这些问题。

2.以小步进行重构

重构应该以微小的步伐进行,这样如果犯了错误,很容易发现并回滚。这样做也可以帮助我们在不改变软件外在表现的前提下,逐步提高代码的可读性和可理解程度。

3.遵循“不要过早发布接口”的原则

在进行重构时,应谨慎修改代码的各种规范,以使重构的过程更加顺畅。不应进行到一半再折回来修改以前的代码。

4.尝试在编写注释之前重构代码

重构的实践要点

当我们感觉需要撰写注释时,应该尝试重构代码,使其变得更容易理解,从而使得注释变得多余。

5.确保所有测试都完全自动化

所有的测试都应该能够检查自己的测试结果,这样才能确保重构的过程中没有引入新的错误。

6.定期执行测试

我们应该频繁地进行测试,每次测试都应该把测试本身也考虑进去。例如,每天至少执行测试一次。

7.编写未臻完善的测试

我们应该编写未臻完善的测试并实际运行,而不是无尽地等待完美的测试。这样可以在发现问题的同时立即进行修复。

8.考虑可能出错的边界条件

在编写测试时,应该把测试火力集中在可能出现错误的边界条件上。这样可以大大提高测试的效率和准确性。

9.在遇到问题时,先编写单元测试

当我们收到bug报告时,应该先编写一个单元测试来暴露这个问题。这样可以帮助我们更快地定位和解决问题。

10.重构设计

重构也是一种软件架构设计,需要对基本的软件架构和软件设计风格有清晰的了解。例如,可以借鉴Unix编程艺术中的模块原则、清晰原则、简洁原则等。

11.应用设计模式

可以参考23种设计模式以及SOLID原则来进行重构。虽然不一定需要完全了解代码怎么写,但应该了解每一种设计模式背后的设计思想。

12.考虑领域驱动设计(DDD)

DDD是一种模块解耦和分层的思想,可以应用于重构中。例如,可以将API(对外访问层)、Domain(领域层)、Repository(数据源访问代理层)及基础设施层(DB、Redis、HTTP、RPC等)分开设计。

13.使用微服务

在进行大型软件系统的重构时,可以考虑使用微服务的原则,即纵向的调用关系变为横向的,减少函数调用栈深度;不要过度封装,相信用户能找到底层类的实现接口;如果新增某个小的具体功能,涉及的链条越短越好;面向接口编程(虚基类)等。

14.实现云原生

重构时也可以考虑实现云原生的原则,这样可以充分利用云的优势,如弹性扩缩容和容错。

15.利用插件思想

在某些场景下,可以利用插件思想来进行重构,这样可以使软件更加模块化和灵活。

以上就是重构的一些实践要点,希望对你有所帮助。