Web应用程序设计/编程中的项目步骤

时间:2009-06-28 02:35:25

标签: web-applications

我正在寻找开始处理Web应用程序而且我几乎完成了功能规范:

我现在去哪儿?

  • 我是否开始创建html 和CSS?
  • 我是否开始创建 后端的代码体? (配置 服务器端电子邮件验证和 数据库数据输入功能)
  • 我是否开始编写客户端脚本? (JavaScript的/ jquery的)
  • 我是否开始处理数据库结构?

这些事情是否有最佳实践指令?

谢谢!

4 个答案:

答案 0 :(得分:5)

好的,你已经创建了一个很棒的规范。现在是时候将“描述”扩展为功能用户界面模型。

<强>为什么吗

规范说明了应该“应该”做什么。它甚至可以非常详细。但完整的用户界面确切地说明了应用程序“真正做到了”。毕竟,用户真的关心引擎盖下的东西吗?

根据我们的经验,我们发现具有用户界面设计和改进的项目(例如有效的html)在应用功能之前比其他人快几倍并且效率更高。< / p>

  • 规格只能包含一小部分 实际细节的百分比 你在实施时遇到的问题 申请。
  • 功能性用户界面几乎可以涵盖您在实施应用程序时遇到的几乎所有实际细节,而实际使其正常工作的时间很短。

一旦客户/利益相关者对UI感到满意,那么它就是插入功能的快捷途径。

功能性UI不是一项小工作。甚至可能有20-40%的工作可以用来做这件事。

-

所有这一切,不要浪费时间让一切漂亮 - 只关注高度可用的界面。一个图形人员可以稍后来,并在你忙着工作时使它漂亮。

答案 1 :(得分:4)

答案是: 以上所有 。 (例如HTML / CSS,服务器端,数据库,客户端脚本等)

然而,只有尽可能少的每一个才能让最简单的单个功能真正起作用。

根据您的问题,您似乎以前从未完成过Web应用程序。 没关系,你的问题很好,因为我记得发现我的第一个网络应用程序非常令人生畏。

要开始使用此最佳实践,我建议使用短/紧迭代,每次迭代都会生成完整的工作代码。

根据我的经验,以下是对此过程的简单描述:

  • 停止处理您的功能规范 - 将它放在一边,并保留它 - 这是非常重要的工作。
  • 选择1个功能...使其成为您规范中最简单的功能,就像现在一样。
    • 我的猜测是:显示最简单的主页版本
  • 开始研究使超简单主页真正起作用所需的一切。
  • 要使这1页工作,你将不得不学习一些关于堆栈的每个部分 - 除了数据库,没关系,你可以在以后的迭代中接受它。
  • 选择堆栈中的工具......
    • 开发机器/环境(例如linux / apache / php,或windows / iis,asp.net等)
    • 如果你不知道你的筹码,请你的朋友或同事推荐你的筹码。
    • 找到一个关于开发语言的教程(php,asp.net,javascript / jquery) - 网上有很多教程 - 只是为他们谷歌
  • 按照教程和/或询问有关SO和/或SF的具体问题,安装您的工具/平台,并获得一个教程示例。
  • 一旦你有信心,就开始干净,并开发超级简单的主页。
  • 现在......返回功能规范,选择下一个最简单的功能 - 也许是涉及数据库的功能。
  • 重复上述步骤,选择工具并学习如何在教程中使用它们,然后继续实施您的实际简单功能。
  • 在您完成一些简单的功能之后,让我们说3,例如,检查您的功能规范,看看它是否需要根据您在前3个功能中学到的内容进行更新。
  • 从前3个功能中查看代码,自从开始以来,您是否学到了什么?是否有任何理由进行重构或清理?如果是这样,请在清理/重构时通过。
  • 一旦您对3个简单功能感到满意,请返回您的规范并选择其他功能和/或为现有功能添加更多复杂功能。

上面描述的每个周期都是一个迭代,如果您的应用只需要那么小的功能,请保持简短并始终使用您可能发布的工作代码。

我没有发明上面的过程,它叫做Scrum。虽然你真的不需要了解上面我刚才所说的内容,但是你可以在这里阅读更多相关内容(在你的业余时间,或者在你完成5个简单的功能之前):

wikipedia entry on scrum

请注意,每次迭代都可能需要您稍微学习一下并创建上面描述的每个组件部分:HTML / CSS,服务器端代码,数据库等。

因此,您将“首先”做的是实现最简单的功能,使用最少的编码来使该功能正常工作。

祝你好运。

答案 2 :(得分:3)

答案是取决于

取决于是否需要您的客户在开始工作之前签署外观; 取决于是否模型是该外观的一部分。 这取决于您需要多久才能在客户面前获取原型进行测试。

无论您开始做什么,取决于您的具体情况

如果您是 Domain Driven Design 的支持者,那么您将拥有一个特定的起点。如果您是 Test Driven Development 的支持者,那么您还有一个特定的起点。事实上,无论你的software religion,你都可能有一个起点。

以下是我的回答:从最有利可图的地方开始。如果它的数据很重,我会从那里开始,因为一切都取决于那个。

答案 3 :(得分:0)

两个更受欢迎的选择是域驱动开发和测试驱动开发。松散地说......

在域驱动开发中,您首先要将开发工作的逻辑组织映射到可用于编程的模型中。

在测试驱动开发中,您将首先编写与特定用例对齐的单元测试。然后,在用例重叠时逐步添加功能,最终满足所有要求。 TDD爱好者喜欢这种方法,因为他们的心态只是编写实现当前目标所需的内容,并且最终会有更好的代码库。

希望这给你两条不同的路径,祝你好运。