【问题标题】:How do I describe the inner workings of my web app如何描述我的 Web 应用程序的内部工作原理
【发布时间】:2012-01-07 22:43:06
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    这不仅会帮助未来的开发人员,而且这些工具也会帮助您自己。我们都惊讶地发现我们在几周、几个月等不看代码之后忘记了什么。即使是一个忙碌的周末,也可能会在周一早上重新开始。

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

    【讨论】:

      【解决方案2】:

      这肯定不是您正在寻找的全部答案,但我一直认为非常有用的是一个适当的文档!是的,有一些非常好的工具,例如 PHPDoc。这在一定程度上允许您创建工作流程的文档,至少可以解释您到底在做什么。

      接下来,您可能会用简单的英语解释它是如何flows。如果它是一个非常大的应用程序,您甚至可以考虑创建自己的wiki

      【讨论】:

        【解决方案3】:

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

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

        功能设计

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

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

        非功能性需求

        诸如安全性、性能、浏览器支持、搜索引擎优化、可访问性之类的内容 - 列出您在应用程序中拥有和未提供的内容,以便未来的开发人员知道要担心什么以及要测试什么。

        概念设计

        对已构建系统的高级概述,确定主要组件、集成点和依赖项。

        详细设计

        这是最容易改变的部分,也是维护最大的痛苦。使用 PHPDoc 是保持最新状态的好方法。

        验收测试

        即使您不接受测试驱动开发,将未来的开发留给应用程序工作的测试方法也是保持他们理智的好方法。理想情况下,验收测试应该是自动化的/脚本化的(例如使用 Selenium)。

        已知错误

        向未来的开发人员提供已知错误列表可以阻止他们拔掉头发...

        所有这一切都需要大量工作 - 如此多的团队使用“低形式”的交流方式 - wiki、白板照片,甚至是团队解释设计的视频。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-29
          • 2015-08-21
          • 2014-01-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多