【问题标题】:Understanding code理解代码
【发布时间】:2010-07-19 09:19:31
【问题描述】:

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

http://www.program-comprehension.org/似乎有一个为此目的而进行了很长时间的活动。

谢谢。

【问题讨论】:

    标签: c# maintenance list-comprehension


    【解决方案1】:

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

    ndepend.com 非常适合概览。

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

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

    ReSharper's 导航功能对于找出什么用什么是无价的。 Find-Usages 非常有用。对于探索代码库,Alt+F7 是您的朋友,因为它还会保持打开您运行过的查询的历史记录,因此您可以在其中来回跳转以保持您的位置。

    Visual Studio 会记录光标位置/编辑器点,并使用 ctrl+- 和 ctrl+shift+- 在它们之间前后移动光标。

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

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

    【讨论】:

    • +1 您应该在答案中添加更多信息,这样会更好:)。
    • +1 表示 NDepend;它将向您展示每个级别的结构(程序集、类、方法或任何组合)。
    • @Henrik 如果您在评论中添加了更多信息,说明我如何在答案中添加更多信息以使其变得更好,那就更好了:) :-P
    • 我只是想要更多你的文章。你写了鼓舞人心的散文。
    • 你的评论启发了我 ;-)
    【解决方案2】:

    正如@Peter Mounce 所建议的那样,NDepend 很好,您可以免费将其用于非商业用途。您会获得很多不错的可视化效果,例如依赖关系图,可帮助您了解正在发生的事情。

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

    【讨论】:

      【解决方案3】:

      我使用SonarQube 进行代码可视化。它从各个方面显示代码,在使用 SonarQube 仪表板的 15-20 分钟内,您将立即了解代码的核心部分。不仅如此,它还显示了代码的哪些部分是复杂的,以及您可以在哪些地方进行攻击以快速获得简化代码的胜利。

      【讨论】:

        猜你喜欢
        • 2018-05-23
        • 2015-02-25
        • 2012-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-13
        相关资源
        最近更新 更多