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


我正在寻找一个Web应用程序,我几乎完成了功能规范:

我现在去哪儿了?

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

这些东西是否有最佳实践秩序?

谢谢!


5439
2018-06-28 02:35


起源

哎呀!也许我应该指明这是一个 个人项目。没有客户。 (希望它完成后会覆盖广泛的受众!) - Tyler
这只是意味着您是客户(或您的受众)。如果这是一个严肃的个人项目,那么就这样对待它。您将获得有关如何运行其他项目的大量见解,您的项目将会变得更好。在UI上工作并向一些朋友展示,一旦你真正在设计上工作,你甚至可以找到想要改变的东西。 - Luis


答案:


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

为什么?

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

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

  • 规范只能包含一个小的 百分比 实际细节 你在实施时遇到的问题 一个应用程序。
  • 功能用户界面几乎可以涵盖所有的用户界面 实际细节 在实现应用程序时遇到的问题,实际上只有一小部分时间 让它工作。

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

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

-

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


5
2018-06-28 02:57



+1通过与利益相关者通过模型/故事板关注UI,以确保您创建的应用程序清楚地为最终用户提供好处。 - condiosluzverde


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

然而,只有实现最简单的单一功能所需的每个最小可能量。

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

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

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

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

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

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

维基百科上的scrum条目

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

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

祝你好运。


4
2018-06-28 03:20





答案是 这取决于

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

无论你开始做什么, 这取决于 关于你的具体情况。

如果你是支持者 领域驱动设计那么你有一个特定的起点。如果你是支持者 测试驱动开发,那么你也有一个特定的起点。事实上,无论你的 软件宗教,你可能有一个起点。

这是我的答案: 从您可以获得最大收益的地方开始。如果它的数据很重,我就从那里开始,因为一切都取决于那个。


3
2018-06-28 03:04



+1为客户外观和感觉批准 - blu


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

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

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

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


0
2018-06-28 02:58