从哪里开始开发第一个数据库驱动的Web App(长问题)?

Rya*_*yan 6 php sql tdd uml unit-testing

我决定开发一个数据库驱动的网络应用程序,但我不知道从哪里开始.该项目的最终目标是三方面的:

  1. 学习新技术和实践,
  2. 向管理层提供未经请求的演示,该演示将显示公司存储的信息如何作为办公文档分布在繁琐的网络文件夹结构中,如何整合并使其更易于访问和维护,
  3. 向我的同事展示如何通过类图表进行测试驱动开发和原型设计非常有用,并减少未来的维护难题.

我认为这最终成为一个基本的CMS,我已经生成了一组功能,见下文.

  1. 创建一个数据库来存储站点结构(组织为具有"项目组" - >项目结构的树).
  2. 从数据库中提取站点结构并使用基本前端技术显示为树.
  3. 添加管理员权限/工具以修改站点结构.
  4. 管理员添加新项目时自动创建所需的子页面*.
    4.1每个项目下都会有几个子页面,每个子页面的内容也不同.
  5. 添加用户权限以为子页面分配读写权限.

我想做的是使用测试驱动开发和类图表作为我开发这个项目的过程的一部分.我的问题; 我不知道从哪里开始.我已阅读过单元测试和UML,但从未在实践中使用它们.此外,以前从未使用过数据库,如何将这些项目合并到模型和测试单元中?

提前感谢您的专业知识.

Pét*_*rök 7

我觉得你想要立刻抓住太多.可以试验数据库,TDD和UML图表; 这本身就足以让一个项目恕我直言.这个第一个实验项目将教你很多,在此基础上你将能够在下一个项目上做得更好.但我不希望这第一次尝试带来可以说服其他开发者选择TDD和/或管理层以改变其思维方式的结果.在您可以合理地向他人解释之前,您需要首先了解并体验事物.

有关单元测试数据库应用程序的建议,请参阅以下主题:

我不确定你的"通过类图原型设计"是什么意思.类图适用于与其他开发人员讨论/交流您的设计,当然应该是每个优秀开发人员的工具包.与某人进行白板会话,即时绘制和擦除设计元素是澄清设计和影响它的力量的好方法.然而,恕我直言,这只是一个非常广泛意义上的"原型".对我来说真正的原型是代码 - 这是验证您的设计是否真正在实践中有效的唯一方法.


S.L*_*ott 6

我不知道从哪里开始.

我们总是从数据模型开始.

以前从未使用过数据库,如何将这些项目合并到模型和测试单元中?

啊,好吧,有问题.

您必须从数据开始,因为一切都始于数据.

  1. 编写用例.您的5个技术要求并不是非常好的用例,因为没有Actor与系统交互.你需要写下演员所做的事情 - 演员与之互动.

  2. 识别actor与之交互的对象.如有疑问,请记下用例中的所有名词.

  3. 绘制将实现这些对象的类的图片.

  4. 浏览您的用例以确保Actor需要执行的所有操作都基于类定义的属性.actor需要的所有数据都必须在这些类中,这些类将成为数据库中的表.

现在,你必须开始做更多的技术工作.您需要一个带有ORM层的Web框架.您正在使用PHP,因此您必须为此找到一个好的框架.蛋糕或教条或其他东西.

  1. 在ORM层中定义一个类.您不必完整或精确,只需要一些可以测试的东西.

  2. 为此类编写单元测试以确保它具有正确的数据元素.这一开始会相对简单,因为您的个人数据类将从简单开始.

一旦定义了基本的类集,您就需要查看类之间的关系.这是真正的工作开始的地方.

  1. 看看你照片中的关系.任何一行.随机选择一个.

  2. 编写单元测试以确保您可以"浏览"该行.从一个对象中,获取该行另一端的相关对象.这应该不是很复杂,只需几行代码.

  3. 创建一个"fixture" - 可以加载到数据库中的测试数据 - 表示对象及其关系.

  4. 运行测试.如果它中断,请更新ORM定义以正确支持导航.

当您完成所有各种关系后,您将以测试驱动的方式构建合理的完整数据模型.

现在,您可以为模型对象构建PHP表示.