版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Michaelia_hu/article/details/103365514
这一系列的重构知识总结自马丁福勒的《重构 改善既有代码的设计》一书。
为什么要重构?
因为一个项目往往不只一个人在写,其他人也会来读写你的代码,有些人甚至自己写的代码几个月之后就看不懂当初自己写的是什么了。
重构的目的:
改进软件的设计,使软件更易理解,容易找出bug,在后期要添加新功能时,提高编程速度,重构后的代码更易调优。
重构的时机:
一般在添加新功能前,如果不太好添加,则先重构在添加。
看代码时,如果发现可以重构的地方也可以重构,
有时,重构是个比较繁杂的工作,那么可以分多次重构,就是“营地至少要比自己来的时候更干净”
很多项目不会安排重构的时间,但是会安排代码复审的时间,这也是一个适合重构的时机。
重构的挑战:
重构会拖慢项目进度?其实重构是一个另项目先慢后快的过程,如果项目的代码结构清晰,易于理解,那么后面添加新功能或调优就会很快。
想重构却没权限?项目最好在版本控制软件上开源,大家一起写。
每个人写自己的一部分,如果你改了一个接口,别人那可能会出错?应用版本控制软件,持续集成,一般每人每天都要提交一次,而且关于修改接口,后面的重构手法中详细说明如何修改。
缺乏测试?写自测试程序,现在的编辑器都很容易测试,如果是项目本身不好测试,就寻找"gap",将项目分成多个易测试的程序,此外很多编辑器中都支持安全的自动化重构。
其他:
简单设计:不要写一个 想当然的灵活的系统,而是先写一个易修改的简单的系统来满足将来的需求。
先写出一个可调优的程序,再调优,对于大项目,要使用度量工具。
重构的结伴流程是:审视-修改-测试-提交到branch-推送到master