如何描述我的网络应用程序的内部工作原理

时间:2011-11-28 13:24:37

标签: php ajax database model-view-controller web-applications

我设计了一个网络应用程序,该应用程序不仅包含一些复杂的控制器,模型和视图,还包含一些自定义库和数据库。

除此之外还有一个ajax层:javascript函数及其相关的服务器端函数。

我自己开发了这个应用程序,我想要一些方法来确保1年后,如果其他人选择它,那么有一些逻辑流程的参考。

有这方面的工具吗?有没有人以前遇到过这个问题?

3 个答案:

答案 0 :(得分:2)

一个好的开始是在代码库太大之前开始使用PHP Documentor(PHPDoc)。即便如此,返回并标记您的类等并不困难.PHPDoc将抓取代码库并生成文档,通常是基于Web的(HTML)文档集,但您也可以生成PDF等。函数,方法,类等将链接到代码的相关元素。我说之前它太大了,因为你会想回去添加注释标签来增强文档的输出。 PHPDocumentor(PHPDoc)可以在http://www.phpdoc.org/找到 ,可以在网络上找到信息和教程。如果你已经用PHP走了这么远,那么肯定你必须注意到这样的评论......(doc blocks)

/**
 *@todo something I need to do
 *@param [type] [$varname] [description]
 *
 */

这些标签/ DocBlocks将由PHPDoc解析,并且非常有用......大多数IDE对使用DocBlocks也非常友好,有时会根据代码中的DocBlock增强代码提示等。

对于数据库......有许多工具和技术,但这里有一个建议......

可以通过构建图表的工具来描述数据库。例如,在使用MySQL时,您可以安装MySQL Workbench,然后这将为您提供连接数据库的工具,并构建类似于此页面上图片的图表... http://forge.mysql.com/wiki/MySQL_Workbench,以及用于反向工程和/或设计的许多其他工具,ORM工具等等。有时只是图表和现有的DB可能非常有用,尤其是当存在许多关系时。 MySQL Workbench将为您提供将图表发送到PDF或图像的选项。一切都非常有用。

这不仅有助于未来的开发人员,而且这些工具也可以帮助您。我们都很惊讶地发现在几周,几个月之后我们忘记了没有查看代码。即使是一个繁忙的周末也可以在周一早上再次缓慢开始。

对于我的上一个建议......我在这里会很简单,但请查看错误/问题跟踪。有许多在线或您可以自己安装。有些版本控制(如GitHub,Unfuddle,BitBucket等)...或者您可以自己安装。我发现如果你使用Ubuntu就可以很容易地安装Bugzilla,并且可以轻松安装。

答案 1 :(得分:1)

这肯定不是您正在寻找的完整答案,但我总觉得非常有用的是正确的文档!是的,有一些非常好的工具,比如PHPDoc。这部分允许您创建工作流的文档,至少可以解释您到底在做什么。

更进一步,你可以用简单的英语解释它flows。如果它是一个非常大的应用程序,您甚至可以考虑创建自己的wiki

答案 2 :(得分:1)

这通常被称为“竣工”文档;有关互联网的大量信息。

我的偏好是将文档分成几个部分;每个都和另一个一样重要,但你不需要花费相同的时间。

功能设计

该应用程序应该做什么?预期的行为是什么?什么是关键的用户旅程?

我喜欢在不同的详细程度上使用use cases或用户故事。系统上下文图也有帮助。用例既可以是视觉的,也可以是文本的;几个小时通常足以描述一个简单的应用程序

非功能性要求

安全性,性能,浏览器支持,搜索引擎优化,可访问性等内容 - 列出您拥有但尚未适应的内容,以便未来的开发人员知道应该担心什么以及测试什么。

概念设计

构建系统的高级概述,标识主要组件,集成点和依赖关系。

详细设计

这是最容易改变的一点,也是最难以维持的痛苦。使用PHPDoc是保持最新状态的好方法。

验收测试

即使您不购买测试驱动开发,将未来的开发与测试应用程序的方法保持一致也是保持理智的好方法。理想情况下,验收测试将自动化/编写脚本(例如使用Selenium)。

已知错误

向未来的开发者提供已知错误的列表会阻止他们拔掉头发......

所有这些都可以做很多工作 - 很多团队使用“低度形式化”的沟通方式 - 维基,白板照片,甚至视频和团队解释设计。

更正式地说,像UML这样的标准可以帮助以行业标准的方式捕获文档。