1 版本控制,确保你的代码,数据库SQL,第三方依赖,部署脚本等内容可以在未来的某个时间点进行回滚。
2 持续集成,你需要有一个可以自动化编译,打包,部署的系统。
3 自动化的测试,想要保证你的重构没有引入bug,你就必须要有自动化的测试。包括单元测试和功能性测试。
4 每次一小步,重构切忌大而杂,每次集中在一小块上进行重构。
5 文档,只需要非常high level的architecture diagram, sequence diagram等即可,没必要陷入细节。细节的东西,那些自动化的单元测试和功能性测试就是最好的和最准确的文档。
6 管理期望,确保management和stakeholder理解重构的effort和结果。
原文: