【问题标题】:Suggestions for writing a code flowchart编写代码流程图的建议
【发布时间】:2009-08-17 00:50:33
【问题描述】:

今年夏天我的实习快结束了,我为我的导师开发了一个主要涉及 PHP、MySQL、JavaScript (jQuery) 的工具。有没有人有任何模板或建议或链接来创建一个易于阅读的文档,显示程序的代码结构和文件之间的关系?

这些人都是程序员,但对上述任何一种语言都没有太多经验,所以我希望它相对简单。


编辑:

似乎某种类型的流程图是要走的路(这是有道理的)。您是否从页面上的每个类文件开始?还是你一个一个地开始,弄清楚每一个细节并分支出来,随着它变得更复杂而重新排列。

【问题讨论】:

    标签: php javascript mysql structure


    【解决方案1】:

    思维导图在这里可能会有所帮助,我可以推荐一些免费工具,例如 FreeMindXMindiMindq

    【讨论】:

      【解决方案2】:

      搜索任何免费的 UML 工具,或者如果您可以访问 Microsoft Visio,请使用它来创建 UML 图。

      【讨论】:

      • “UML”这个词是我要找的。我最终使用了 www.umlet.com。 (我只是需要一些快速且易于使用的东西)
      【解决方案3】:

      我将首先描述软件的功能(功能规范),以及如何构建、运行和测试它:How does a good developer keep from creating code with a low bus hit factor?

      完成此操作后,您可以将功能规范中的指针添加到源代码中,以识别源代码的哪些位有助于实现哪些功能。

      [当我说“指针”时,我的意思是在标识/描述某些功能的部分中,添加相应源代码的 URL 和/或名称。]

      【讨论】:

        【解决方案4】:

        我建议使用 OmniGraffle。这是一个 OS X 应用程序,但它是现象级的。

        http://www.omnigroup.com/applications/OmniGraffle/

        【讨论】:

          【解决方案5】:

          您可以查看Doxygen,它确实标记了 PHP 文档。如果 dot 可用,Doxygen 可以自动生成文件的依赖图、函数的调用图和类的祖先图。

          但是,Doxygen 对记录 MySQL 源代码没有任何确切的支持。不过,似乎有一些流行的 perl 脚本用于记录 Javascript 代码。

          您可能也有兴趣查看some sample Doxygen-generated documentation

          【讨论】:

            【解决方案6】:

            我已经为我的很多项目做到了这一点。事实上,现在当我开始着手现有的工作时,我已经学会了制作某种流程图供自己参考,然后将其检入存储库。

            我更喜欢流程图类型的图表(也许除了您的想法之外)。我只是使用 Open Office 并绘制圆形、矩形、三角形等,用于各种部分和决策。如果你制作一个然后复制它,根据需要更改文本,它不会太耗时。与箭头相同,只需制作很多箭头,然后将它们移动到您想要的位置。

            我已经尝试寻找一种工具来执行此操作,但如果它比 OO 更容易使用,它往往会出现错误和崩溃。如果它是稳定的,它不会更快,甚至可能没有像 OO 那样多的绘图选项。

            【讨论】:

              【解决方案7】:

              我使用了免费的 PlantUML 工具,该工具还有一个用于 eclipse 的插件以及其他几个插件。关于此工具的有趣之处在于,您必须编写一个文本脚本来生成具有许多优点和一些缺点的图表。例如轻松复制粘贴部分UML图并快速修改图,将其与mediawiki等集成。

              一些例子

              @startuml
              Alice -> Bob: Authentication Request
              Bob --> Alice: Authentication Response
              
              Alice -> Bob: Another authentication Request
              Alice <-- Bob: another authentication Response
              @enduml
              

              @startuml
              actor Foo1
              boundary Foo2
              control Foo3
              entity Foo4
              database Foo5
              Foo1 -> Foo2 : To boundary
              Foo1 -> Foo3 : To control
              Foo1 -> Foo4 : To entity
              Foo1 -> Foo5 : To database
              @enduml
              

              @startuml
              
              User -> (Start)
              User --> (Use the application) : A small label
              
              :Main Admin: ---> (Use the application) : This is\nyet another\nlabel
              
              @enduml
              

              @startuml
              
              [*] --> State1
              State1 --> [*]
              State1 : this is a string
              State1 : this is another string
              
              State1 -> State2
              State2 --> [*]
              
              @enduml
              

              @startuml
              
              object user {
                name = "Dummy"
                id = 123
              }
              
              @enduml
              

              所有示例均取自PlantUML official website

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-10-08
                • 1970-01-01
                • 1970-01-01
                • 2010-12-07
                • 2023-04-01
                • 2011-05-27
                • 2010-10-02
                • 1970-01-01
                相关资源
                最近更新 更多