2

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

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


编辑:

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

4

7 回答 7

2

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

于 2009-08-17T00:58:41.783 回答
1

我将首先描述软件的功能(功能规范),以及如何构建、运行和测试它:优秀的开发人员如何避免创建总线命中率低的代码?

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

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

于 2009-08-17T00:59:30.113 回答
1

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

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

您可能也有兴趣查看一些由 Doxygen 生成的示例文档

于 2009-08-17T01:05:48.673 回答
1

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

于 2009-08-17T01:11:05.603 回答
1

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

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

于 2009-08-17T01:11:22.830 回答
0

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

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

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

于 2009-08-17T02:34:04.253 回答
0

我使用了免费的 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 官方网站

于 2015-10-26T04:01:26.073 回答