我有一个CodeIgniter Web应用程序的要求,现在是什么?

时间:2009-05-20 19:14:32

标签: php codeigniter

我正在开发一个项目,并且已经开发出了系统必须执行的高级用户需求。这个项目是一个基于CodeIgniter框架构建的php Web应用程序。现在,我正在尝试将这些要求进一步细分为控制器/操作。这样做的最佳方式是什么?

我正在考虑使用一个包含四列的表创建一个word文档。第一列将是控制器的名称,第二列将具有操作,第三列将具有特定于操作的视图的名称,第四列将显示哪些用户可以访问该操作。这听起来像个好主意吗?

我喜欢构建应用程序的界面第一种方法,但实际上,在创建原型界面之前,我需要知道我需要哪些视图。

有人可以帮我解决如何规划应用程序和任何可能有用的文档吗?

2 个答案:

答案 0 :(得分:9)

您的细分是一个好主意,但它确实是第二个步骤。

这就是我要做的事情:

  • 了解您的要求,并将其转换为一系列方案(“用例”,“用户故事”)。

  • 选择一个,并在纸上绘制草图,如果您要让Good Code Fairy为您提供完美的系统,您需要的用户界面的基础知识。

  • 分别浏览场景,并在故事中加上所有名词的下划线;那些可能是域对象。用不同的颜色为所有动词加下划线。每个动词都是其中一个域对象的方法。 (事实上​​,域对象将是动词的对象。酷,嗯?)

  • 了解如何使用这些域对象实现该用户界面。

  • 构建

  • 向您的客户展示,总是说“我喜欢但是

  • 将您学到的更改和内容放入您的要求中,然后重复,直到检查清除为止。

彼得·科德(Peter Coad)写了我仍然认为最好的初学者书:Java Design: Building Better Apps and Applets。它面向Java,但设计部分是通用的。

您的域对象是模型,数据的显示(粗略地说)是视图,附加到操作的代码是控制器。


用例

使用案例或用户故事的“正确方式”受到了巨大的讨论和宗教战争。在somewhat complex form notes上有来自Cockburn的scribbledindex cards的数以万计的选项。

对于你所描述的应用程序类型,我做了两件事:我试着将它们保持在25个字以内,我想到了SMART的首字母缩略词。

  • 二十五个字或更少的单词有助于保持它们的小。做一些小故事比花一周时间更好。

  • SMART代表“具体,可衡量,责任和测试协议”。 (或者至少我是如何解释的。还有其他版本。)

    • 具体,你必须要知道被问到的是什么。
    • 可衡量的,你必须有一些测试方法或某种可以接受的陈述
    • 协议,因为它需要是您和客户都同意满足的需求 - 换言之,合同的“思想会”
    • 使用职责,您必须知道您所提供的服务,客户或用户负责提供的服务以及您的服务
    • 测试,换句话说,你应该有一个有效的程序,给你答案“这是可接受的”或“它是不可接受的。”

我使用的表单具有模式

  

特定角色的用户
     做某事
     带来了一些好处

所以,在你的例子中,我会写

  • 管理员(谁?)
  • 列出所有常见问题解答(做什么?)
  • 审核他们的更新。 (为什么?)

“产生一些好处”部分是我强调的,很多其他人没有,甚至没有提到。如果你需要优先考虑它们,它会有很多帮助。

“测试”部分是对验收测试的描述:您正在回答“这样做了吗?”因此验收测试可能是

  • 登录管理员选择“列表常见问题解答”。所有已知的常见问题解答都以正确的格式列出。

理想情况下,您需要设置它,以便某些工具(如expect或gui测试工具)可以自动运行,但特别是在小型项目中,您可能最终手动测试。您想要自动化测试,因为在构建系统时,您希望进行回归测试;也就是说,您希望重复测试以确保以后的更改不会破坏任何内容。

答案 1 :(得分:0)

你所做的就是以用户为中心。

  1. 你制作粗略的屏幕模型(使用Balsamiq或其他东西),然后将它们展示给你的客户/利益相关者,并通过它(就好像他们正在使用它一样)。让他们同意。
  2. 然后你对事物进行编码(我相信你可以把这个部分弄清楚)
  3. 然后你再次向你的客户展示(让他们真正详细地使用它),并同意改变。
  4. 现在你完成了
  5. 祝你好运!