理解代码

Raj*_*aja 7 c# maintenance list-comprehension

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

http://www.program-comprehension.org/为此目的,似乎有很长一段时间的事件.

谢谢.

Pet*_*nce 7

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

ndepend.com非常适合概述.

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

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

ReSharper的导航功能非常有价值,可以找出使用什么的东西.Find-Usages非常有用.为了探索代码库,Alt + F7是您的朋友,因为它还会打开您运行的查询历史记录,因此您可以在其中快进和快进以保持您的位置.

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

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

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