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

Uml 学习如何更好地阅读代码的资源,uml,codebase,Uml,Codebase,我最近继承了一个很大的代码库,我不得不阅读它。问题是,我通常是启动项目的开发人员。因此,我没有很多阅读代码的经验 我对阅读大量代码的反应是,嗯,重写它。但我需要让自己尽快跟上进度,并在现有系统的基础上进行构建 其他人是否掌握了吸收代码库的技巧?此时,我正在通读代码。我尝试过使用UModel生成UML图。它们太大了,无法清晰地打印出来,当我放大时,我真的失去了看到所有关系的视角 其他人是如何处理这个问题的?一般来说,我从代码的入口点(主函数、插件挂钩等)开始,通过基本的执行流程进行工作。如果它是一

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

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

其他人是否掌握了吸收代码库的技巧?此时,我正在通读代码。我尝试过使用UModel生成UML图。它们太大了,无法清晰地打印出来,当我放大时,我真的失去了看到所有关系的视角


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

一般来说,我从代码的入口点(主函数、插件挂钩等)开始,通过基本的执行流程进行工作。如果它是一个像样的代码库,那么它应该被分解成像样大小的代码块,然后您可以仔细检查并找出每个代码块负责什么。回顾何时在系统的执行流中调用它

对于包/模块/类探索,我使用在源代码上运行后生成的任何内容。它生成了一些很好的类关系图、继承层次结构和文件依赖关系图。这样做的好处是,它们都专注于单个类,以及如何将其与邻居、兄弟姐妹和父母联系起来,因此图形通常大小可控,易于理解


正如您所了解的,类、函数和子系统有哪些不同之处,我喜欢添加注释来填充听起来似乎明显缺少文档的内容。当你第二次重读代码时,这对你很有帮助。

哇-我刚刚听了一个关于阅读代码的播客

我建议听听这个。有一点很有意思,我觉得很激进,也许你可以试试(我知道我会的!)。下载整个源代码库。开始编辑和重构代码,然后…扔掉那个版本!!!我认为,我们对截止日期的所有要求都表明,大多数开发人员甚至不会这样做

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

不过,重构时不需要进行剧烈的更改。当您阅读代码并理解某些内容时,请重命名变量或方法名称,以便更好地反映您试图解决的问题

哦,如果可以的话,请获得一份Michael C.Feathers的《有效使用遗留代码》的副本——我想你会发现它在你的情况下是非常宝贵的


祝你好运

我推荐另一个播客和资源: 提供了一个指南

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

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

  • 样式冲突:了解代码当前的状态 在

  • 业务逻辑审查:测试现有源代码的能力

  • 性能回顾:源代码中的瓶颈在哪里

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


与我的建议相比,这个播客真是太棒了。这是一个非常模糊的概念,基于文献而非真实的源代码实践。我是SE radio的忠实粉丝,但我认为大多数听teckie播客的人现在都意识到了这一点,并且经常听——我最近才接触到这个播客,所以我想我会与大家分享