从数据库开始设计还是从UI开始设计?

8
你在开始或计划 IT 项目时,是否总是倾向于考虑数据库架构,还是会另辟蹊径,先设计 UI 再逐步往下开发?
或者你有其他的开发方式吗?
这并不是一个关于敏捷/瀑布/规格/用户故事的问题,只是想了解人们在处理个人/专业或其他项目时倾向于哪种方式。
我过去已经决定两种方式都是最好的,目前正在 UI 先行阵营中,但这可能会改变!
谢谢 John
11个回答

12

对于普通用户来说,UI就是软件。他们不关心数据存储方式、平台等等。因此,如果你的软件将被人使用,我强烈建议先从 UI 开始 - 可以是原型或模型设计。向用户展示并获得反馈,然后构建业务层和数据层。

我发现这有助于收集需求。非技术用户更可能告诉你“哦,等一下,在这个页面上需要另一个字段”,而不是“我们需要在这个表模式中增加另一个属性”。他们也可能会说“我们需要在这里添加另一个按钮”,这通常意味着需要添加一些附加的业务逻辑等等。


8

我通常会首先绘制屏幕的原型,然后尝试开发一个数据模型。与直接访问数据库不同,我发现这种方法更好,因为通过UI,我可以看到需要属性或字段(在数据库中)的需求,否则我可能想不到。从那里开始,我会反复开发模型,直到两者都满足要求的需求,然后再考虑数据库架构。通常,模型本身将为我定义模式,因此一切都得到了解决。


顺便说一句,我仍然在做这个,已经12年了。创建用户界面对于尽早从最终用户那里获得反馈至关重要。它也比查看数据库模式更能激发他们的兴趣。 :) - rball

4
这似乎是非常情境化的。根据我的工作经验,大多数工作都从数据库开始,因为我所使用的数据库是企业资源,它们被多个UI使用。如果将数据库设计围绕着一个可能经常变化的特定UI,那么这将是有害的。
另一方面,在某些情况下,更有利的做法可能是专注于UI,然后再考虑数据库设计——例如在嵌入式数据库移动应用程序中。

3

首先布局您的屏幕,这样您就知道数据库中需要什么。

如果您从数据库开始,则通常会对应用程序的功能做出一些假设。


2

我倾向于从中间开始,确定应用程序将会做什么以及如何做,然后在UI和数据库设计之间反复跳转,因为它们可以相互影响。


2
通常,我会先从数据库开始构建UI以适应它。但是通常会有一些来回的过程,因为我可能需要更改数据库以适应UI的要求,反之亦然。
这种从数据库开始的方法是我在学校里学到的,并一直沿用至今。
我曾经与一个程序员合作,他会从输出开始。他会先确定需要做什么(即需要输出哪些报告等),然后确定需要哪些数据才能实现。UI和数据库同时构建。

2

在我参与的项目中,我发现UI界面是很多需求的来源 -- 它是最终用户关心的部分(或者至少是他们思考的部分)。


2

首先,我会了解功能的目的。我不涉及UI、外观或输入方式,而是关注用户想要做什么。

然后,我会围绕这个目的建立数据模型。有时候,数据模型非常简单(特别是像“播放电影”这样简单的需求),有时候则非常复杂。

只有在确定了数据模型之后,我才会尝试设计一个既反映模型又符合用户期望输入方式的UI。

你可以根据自己的情况来看待这些内容;对我而言,这种方法相当有效。


1
首先,集中精力确保系统能够解决它旨在解决的问题。
收集需求以定义工作流程、数据、用户交互等细节,然后从那里开始构建。
当然,你总是需要在这里或那里进行微调,但根据我的经验,我发现那些奉行某种哲学(即始于数据库并向上构建 vs. 始于 UI 并向下潜入)的人往往会得出不适合问题的解决方案。

1
首先对领域进行建模 - 这将告诉您如何构建数据库。接下来找到您的需求 - 用户需要使用应用程序做什么?这将告诉您需要存在哪些功能。有了这些信息,您可以创建您的数据库架构和软件模型(无论是面向对象、函数式还是其他类型)。然后创建一个漂亮的 UI,展示您构建的功能 - 当然,UI 的构建也可以与功能同步进行,但两者都应在确定领域外观之后进行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接