我最近继承了一个大型代码库并且必须阅读它。问题是,我通常是启动项目的开发人员。因此,我没有太多阅读代码的经验。

我对必须阅读大量代码的反应是,嗯,重写它。但我需要让自己快速跟上并在现有系统的基础上进行构建。

其他人是否拥有他们学到的吸收代码库的技术?此时,我只是在阅读代码。我尝试过使用 UModel 生成 UML 图。它们太大了,无法清晰地打印,当我放大时,我确实失去了查看所有关系的视角。

其他人是如何处理这个问题的?

有帮助吗?

解决方案

哇 - 我刚刚完成了关于阅读代码的播客的收听!!!

http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/01/pluralcast-10-reading-code-with-alan-stevens.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed% 3A+复数+%28pluralcast+by+pluralsight%29

我建议听听。我发现激进的一个有趣的一点,可能是您可以尝试的事情(我知道我要去!)。下载整个源代码库。然后开始编辑和重构代码...然后...将该版本丢弃!!!我认为,由于我们对最后期限的要求,大多数开发人员甚至都不会这样做。

我在自己的工作中与您的位置相似,我发现以下内容对我有用: - 在现有代码上编写测试用例。为了能够编写测试案例,您需要能够理解CDE基础。 - 如果可用,请查看在产品生命周期中记录的错误问题,并查看它们如何解决。 - 尝试重构一些代码 - 您可能会破坏它,但是很好,您可以将其扔掉并重新开始。通过将代码分解为较小的问题,您可以理解它

不过,在重构时,您不需要做出巨大的更改。当您读取代码并理解某些内容时,重命名变量或方法名称,以便更好地反映要解决的问题。

哦,如果可以的话,请获得Michael C. Feathers的Legacy Code有效合作的副本 - 我想您会发现它在您的情况下是无价的。

祝你好运!

其他提示

本文 提供了指导方针

  • 可视化:应用程序设计的视觉表示。

  • 设计违规:了解对象模型的健康。

  • 风格违规:了解代码当前所处的状态 在。

  • 业务逻辑回顾:测试现有源的能力。

  • 性能评估:源代码的瓶颈在哪里?

  • 文档:代码是否有足够的文档供人们使用 了解他们在做什么?

我会推荐另一个播客和资源:SE-Radion情节有关软件考古学

通常,我从代码(主函数,插件钩等)的输入点开始,然后通过基本执行流进行工作。如果它是一个不错的代码库,则应将其分解为不错的尺寸块,然后您可以通过并弄清楚代码的每个块负责。回顾系统的执行流中的何时调用。

对于软件包/模块/类探索,我使用任何东西 doxygen 一旦将其运行到来源上,就会生成。它生成了一些不错的类关系图,继承层次结构和文件依赖性图。这些好处是它们每个人都专注于单个类别以及它如何与邻居,兄弟姐妹和父母联系在一起,因此这些图通常具有可管理的规模且易于理解的。

据您了解,类,功能和子系统的不同之处,我想添加评论以填补听起来像是缺少文档的声音。当您第二次重新阅读代码时,这对您有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top