【问题标题】:JavaScript object browser?JavaScript 对象浏览器?
【发布时间】:2010-09-13 16:09:12
【问题描述】:

我最近的任务是记录一个我已经维护了一段时间的大型 JavaScript 应用程序。所以我确实对系统有很好的了解。

但由于应用程序的庞大规模,即使事先了解代码和未压缩形式的源代码本身,它也可能需要大量时间。

所以我正在寻找可以帮助我探索 JavaScript 中的类和方法及其关系的工具,如果可能的话,一路记录它们,有没有可用的?

VS 中的对象浏览器之类的东西会很好,但任何可以帮助我更快完成工作的工具都可以。

谢谢!

【问题讨论】:

标签: javascript


【解决方案1】:

FirebugDOM tab 可让您浏览全局window 对象的内容,您可以通过在命令行中输入inspect(whatever) 来检查特定对象。

除非一个对象的实例包含相关对象的实例,否则您将无法使用它来检测关系,但这是一个开始。

您还可以使用 DOM 选项卡上的“选项”菜单将显示的内容限制为用户定义的函数和属性,这将有助于减少混乱。

【讨论】:

    【解决方案2】:

    看看Aptana,他们有一个大纲,可以帮助您确定对象是什么以及它们之间的关系。

    【讨论】:

      【解决方案3】:

      Firebug + uneval(obj) 是一个通常很有帮助的简单技巧。

      【讨论】:

      • uneval 很有趣...但是我已经有了您看到的薄荷形式的源代码...只是没有一行注释:-(
      【解决方案4】:

      我看到很多人都在谈论在 Firebug 中检查 DOM。但是,从您的问题来看,您似乎想要jsdoc之类的东西?只需通过 cmets 添加类型和类信息,jsdoc 即可生成包含类关系的文档。 http://jsdoc.sourceforge.net/

      Google 有一个带有附加功能的分支 http://code.google.com/p/jsdoc-toolkit/

      更新: 这不是一个 fork,它是由最初将 jsdoc 编写为 perl 脚本的开发人员重写的。它旨在更具适应性,因此您可以使用任何您喜欢的 js 继承/事件/属性样式。另一个功能是它可以让您以更简单的方式修改用于生成 HTML 的模板。

      【讨论】:

        【解决方案5】:

        我们不知道这个 JS 应用程序是否设计为在 Web 浏览器中运行...
        如果是的话,按照建议,Firebug(Firefox 扩展)在调试 JS 和探索 Dom 方面非常出色。
        在 IE 方面,您有一些工具,例如 IEDocMonWeb Accessibility Toolbar(它的作用远不止其名称)或 Fiddler(与您的问题无关,但仍然是一个不错的工具)。

        【讨论】:

          【解决方案6】:

          Firebug (Firefox) / Dragonfly (Opera) 可以帮助您实时查看对象

          Aptana / JS/UML(Eclipse) 可以帮助处理对象的关系

          【讨论】:

            【解决方案7】:

            这是一个老问题,但还是让我回答一下吧。

            1. 使用 IDE。集成开发环境是为在代码中快速跳转而设计的。您将在探索过程中使用的关键功能是查看文件结构或大纲、跳转到声明或用法以及在整个项目中搜索字符串的所有实例。如果您使用的是 WebStorm,请为生成的文件和 node.js 之外的文件设置自定义范围以帮助搜索。

            2. 运行'npm la | less' 列出了所有依赖模块,其中包含一行描述。您可能从未见过 moment.js 并且永远不需要阅读文档,但花时间阅读它的一行摘要是值得的。如果您需要的工具信息多于一行摘要,请在 SlideShare 上搜索该术语。幻灯片比 ReadTheDocs 快。

            3. 边走边记录。我喜欢强迫人们经常使用笔记本而不是草稿纸。此外,我发现为每个 JavaScript 文件添加一行注释是值得的。您想知道项目的每个目录中应该有什么。我还建议在您的系统中构建一个领域术语的确切含义的词汇表,例如,您的系统中的“工作”是什么。

            4. 最后,您可能只需要在调试器中启动应用程序并开始单步调试它的某些部分。大多数大型项目都从不同技能水平和动机的程序员那里获得了价值。

            您的目标是“概念完整性”(引用 Yourdon)或“深入了解”软件(引用 Heinlien)。它确实需要一些时间,无法绕过,并且可以有效地完成。

            【讨论】:

              猜你喜欢
              • 2018-12-31
              • 1970-01-01
              • 1970-01-01
              • 2020-10-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-08-23
              • 2021-12-25
              相关资源
              最近更新 更多