学习如何更好地阅读代码的资源

时间:2010-05-05 23:36:17

标签: uml codebase

我最近继承了一个大型代码库,我不得不阅读它。问题是,我通常是开始一个项目的开发人员。因此,我没有很多阅读代码的经验。

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

其他人是否有他们学会吸收代码库的技巧?在这一点上,我只是阅读代码。我已经尝试使用UModel生成UML图表。它们太大了,不会打印干净,当我放大时,我确实失去了看到所有关系的视角。

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

4 个答案:

答案 0 :(得分:1)

<哇哇 - 我刚刚听完了播放代码的播客!!!

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+pluralcast+%28Pluralcast+by+Pluralsight%29

我建议听一听。一个有趣的观点是,我发现了激进,可能是你可以尝试的东西(我知道我要去!)。下载整个源代码库。开始编辑和重构代码然后...扔掉那个版本!!!我认为,在最后期限之前我们已经满足了所有要求,大多数开发人员都不会这样做。

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

但重构时你不需要做出重大改变。当您阅读代码并了解某些内容时,请重命名变量或方法名称,以便更好地反映出正在尝试解决的问题。

哦,如果可以,请获取Michael C. Feathers的“有效使用遗产代码”的副本 - 我认为您会发现它在您的情况下非常宝贵。

祝你好运!

答案 1 :(得分:0)

一般来说,我从代码的入口点(main函数,插件钩子等)开始,并完成基本的执行流程。如果它是一个不错的代码库,它应该被分解成适当大小的块,然后你可以通过找出每个代码块负责的内容。回顾何时在系统的执行流程中调用它。

对于包/模块/类探索,我使用doxygen一旦在源上运行就会生成的内容。它生成一些很好的类关系图,继承层次结构和文件依赖关系图。这些的好处是它们每个都集中在一个单独的类以及如何将它与邻居,兄弟姐妹和父母联系起来,因此图表通常具有可管理的大小且易于理解。

当你理解我喜欢什么不同,类,功能和子系统时,我喜欢添加注释来填充听起来很明显缺少的文档。当您第二次重新阅读代码时,这可以帮助您。

答案 2 :(得分:0)

我会推荐另一个播客和资源: SE-Radion episode on Software Archeology

答案 3 :(得分:0)

This article提供了指南

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

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

  • 样式违规:了解代码当前的状态 英寸

  • 业务逻辑审核:测试现有来源的能力。

  • 绩效考核:源代码中的瓶颈在哪里?

  • 文档:代码是否有适合人员的文档 了解他们正在做什么?