我是一名新手程序员,作为我项目的一部分,我必须修改一个包含数百个类的开源工具(用java编写).我必须修改它的重要部分以满足项目的需要.在过去的一个月里,我一直在努力尝试阅读代码,试图找出每个类的功能,并试图从头到尾找出管道.
80%的课程都有不完整/缺失的文件.剩下的20%是构成该工具的通用API的那些.一个月的代码阅读刚刚帮助我理解了基本架构.但我无法弄清楚我需要为我的项目做出的确切更改.有一次,我开始修改部分代码,很快就做了很多改变,我再也记不住了.
一位朋友建议我尝试写下类层次结构.是否有更好的(标准?)方式来做到这一点?
Bor*_*vić 10
Michael Feathers写了一本名为Working Effectively with Legacy Code的好书.有一个较短的文章版本在这里.
他的一点是,您可以做的最好的事情是为现有代码编写单元测试.这有助于您了解入口点的位置以及代码的工作方式.然后它可以让你重构它而不用担心你会打破它.
从文章链接,他的战略总结:
1. Identify change points
2. Find an inflection point
3. Cover the inflection point
a. Break external dependencies
b. Break internal dependencies
c. Write tests
4. Make changes
5. Refactor the covered code.
Run Code Online (Sandbox Code Playgroud)
Eclipse(以及其他IDE)提供的两件事就是"打败"这个.我在非常大的项目中使用它们:
调用层次结构 - 右键单击某个方法并选择"调用层次结构",或使用CTRL + ALT + H.这将为您提供调用所选方法的所有方法,并提供进一步检查树的选项.这个功能真的非常有用的.
类型层次结构 - 请参阅类的继承层次结构.在eclipse中它是F4或CTRL + T.
也: