理解代码

时间:2010-07-19 09:19:32

标签: c# maintenance list-comprehension

熟悉大约200K LOC大小的C#代码库的最佳方法是什么?有没有可用的工具?

http://www.program-comprehension.org/似乎有一个事件需要很长时间才能达到此目的。

感谢。

3 个答案:

答案 0 :(得分:7)

CodeCity有一个非常好的代码库可视化;它使用了一个很有意义的城市比喻,以及有用的突出代码气味。

ndepend.com非常适合概述。

Atomiq有一个很好的复制可视化。它解析你的代码库并通过一个轮子将其可视化,其中重复由轮子中的辐条表示,你可以将鼠标悬停在每个上面以查看并排差异。

Nitriq有一个很好的LinqToCode来强制质量约束。您可以从命令行运行这些规则,作为构建过程的一部分。

ReSharper's导航功能对于找出使用什么内容非常宝贵。 Find-Usages非常有用。为了探索代码库,Alt + F7是您的朋友,因为它还会打开您运行的查询历史记录,因此您可以在其中快进和快进以保留您的位置。

Visual Studio会保留光标位置/编辑器点的记录,并且有ctrl + - 和ctrl + shift + - 来在这些位置之间前后移动光标。

如果您决定使用常规注释(例如//注:blah),然后使用ReSharper的TODO Explorer查找所有此类注释(以及您可能定义的其他模式),则可以向自己插入注释,然后导航到他们。例如,我们目前将其用于代码审查。

Visual Studio(至少是专业版)可以生成类图;多选文件,然后右键单击,然后创建一个类图。我发现这些作为一个涂鸦更有用,而不是一个人工制品,以保持最新和与代码库同步,坦率地说。它会告诉你继承,但不是非常清楚地显示implements-interface,甚至不会尝试显示收集或者由。撰写。

答案 1 :(得分:1)

正如@Peter Mounce建议的那样,NDepend很好,您可以免费使用它进行非商业用途。您可以获得很多很好的可视化,例如依赖图,它可以帮助您了解正在发生的事情。

Visual Studio 2010还包含Architecture Explorer形式的类似工具,但我认为您需要添加(或更高版本)架构才能实现。但它是交互式的,让您深入了解有用的结构。

答案 2 :(得分:1)

我使用SonarQube进行代码可视化。它显示了各个方面的代码,并且使用SonarQube仪表板花费了15-20分钟,您将立即进入代码的核心部分。不仅如此,它还显示了代码的哪一部分很复杂,以及您可以在哪里进行攻击以获得简化代码的快速获胜。