![]() |
1
5
“用户故事”>原型>设计>编码>迭代1>迭代2>&燃气轮机;释放 下面是一个很好的迭代示例:
|
![]() |
2
4
我假设您已经有了一些用户故事和需求。我喜欢创建一个基本的域模型(基本上是一个类图),可能没有所有内容都包含的字段,但足以大致了解所有内容的连接方式、继承层次结构以及内容。 至于编码,我喜欢从单个资源开始,并围绕它构建一些基本功能。目前,我通常不会将其连接到DB,我使用的是一个非常简单的DAO,它将内容填充到域对象集合中。 接下来,我添加一些次要的连接资源,并开始建立它们之间的各种链接。在这一点上,我已经准备好了一些域对象,但可能还没有建立它们所需要的所有字段和内容。只有几个重要的字段足以区分对象的实例,并将它们链接在一起。 在这一点上,我尝试用字段和行为充实我拥有的域对象,并将所需的位添加到视图中,以使这些功能可用。然后,我得到某种真正可用的持久性工作,设置验证,并使视图美观。 优化现有的内容,然后迭代以覆盖模型的其余部分。 |
![]() |
3
4
如果您想要人们喜欢使用的应用程序,请从用户开始。然后回到与用户情景一起工作的数据库设计。 如果您想要一个像我们熟悉的许多应用程序一样工作的应用程序,用户只是在那里执行数据库维护,那么从数据库开始。您可能会更快地完成,但您的用户不会对结果感到满意。 |
![]() |
4
3
我倾向于从数据库开始,然后进行备份,因为为我做实体建模往往会突出问题。 然后,我将从那里创建基线Webapp结构(在Java中,这意味着创建我的项目、添加Spring、配置数据源和安全性等等)。 一旦我有了所有的管道,我将创建数据访问、控制器和视图,通常每个都创建一个,以获得概念验证,或者作为初级开发人员遵循的amodel。 Webapps是迭代过程(通常不是),我发现最好尽快创建一个垂直切片。 |
![]() |
5
3
如果你知道你想要什么,你可以从各个角度来解决这个问题,但是,好的设计原则要求你首先要有某种规格,概述你想要的特性。它不仅可以帮助您设置功能里程碑,而且在规划应用程序时,这是一个非常有用的练习。 同样,好的设计原则要求您首先设计域对象或业务对象。这是应用程序中的所有“名词”。假设你想开发一个网站,显示大联盟球员的棒球统计数据。这里的域对象是名词“球员”、“统计”、“棒球”、“联盟”等等。对于其中的每一个,您都要创建一个域模型和相应的数据库表。然后开始考虑要添加到每个示例中的功能,例如Player.CareerSpan()或Player.GamesPlayer(int year)。
从某种意义上讲,它只是归结为个人管理和避免回溯。如果您撤消了太多的代码,则表示有问题。源代码控制系统也将帮助您实现这一点。 |
![]() |
6
2
你提到你是一个人在工作。 Koistya的上述回答是好的。然而,我发现,通过让用户界面处于可展示状态,我可以让客户更快乐,并让他们更快地购买。 |
![]() |
7
2
然后我写测试 然后我开始显示逻辑、编辑等,以及任何需要的附加功能 |
![]() |
8
2
我对每个用户故事都做同样的事情(是的,测试驱动开发) |
![]() |
10
-1
Web application development 从非常好的规范开始,包括用户体验、功能、未来开发需求等各个方面。只有在编写并批准了规范之后,才能开始web应用程序开发。另一方面,你会发现自己又开始添加额外的特性,并一次又一次地打开代码 |
![]() |
A. Shawkat · 获取请求不起作用 6 年前 |
![]() |
Yura · 无法链接引导。min.css和动态web app 7 年前 |
![]() |
jasonharper · 无互联网连接的WiFi连接设备的最佳实践 7 年前 |
![]() |
Thanh Dong · 在spring boot web应用程序中运行jar文件时,创建名为“ConfigurationPropertiesBindingPostProcessor”的bean时出错 7 年前 |
![]() |
Karim Sawma · react web app中缺少滚动条 7 年前 |
![]() |
Nathan · Flask API回调侦听器 7 年前 |
![]() |
David Artmann · Vaadin网格日期渲染器不适用 7 年前 |
![]() |
Hayden · 如何防止计数器的增量超过元素的高度? 7 年前 |