当我开始开发软件,ui设计或数据库设计时,应该是第一个?

Mem*_*eak 2 mfc ui-design

我尝试使用一些ui模拟软件来设计ui,但我发现我很难确定设计的所有细节,因为数据库还没有设计.

但如果我第一次设计软件,那么同样的问题就出现了,我没有UI,我怎样才能创建一个突出的UI?

Ric*_*dle 11

UI首先.

从用户的角度思考一个优雅且易于使用的用户界面(和工作流程)思考,然后再思考将UI带入生活所需的底层数据库/数据结构.

如果您因为尚未设计数据库而无法设计UI,那么你做错了恕我直言.你使用了多少烦人的软件,让数据库设计驱动UI设计?

编辑:正如其他人所指出的,您需要用例/用户故事开始.UI设计和数据库设计,无论您执行哪种顺序,都应该您知道软件尝试做什么以及为谁做之后才会发生.

由Bryan Oakley 编辑:

它不是软件的功能.这是用户的工作http://www.gapingvoid.com/114446615687.jpg

  • 我不会downvote,因为它是一个很好的答案,但数据库不应该由UI驱动.数据库是它自己的实体,值得自己的工程努力.基于UI创建数据库的结果是它不能很好地扩展性能,并且不易维护. (3认同)

duf*_*ymo 5

如果您尝试使用面向对象语言解决问题,建议您开始考虑所涉及的对象.在确定了可以解决所有用例的可靠域模型之前,请不要担心数据库或UI.

您最初不必担心数据库或UI.如果需要持久性且没有数据库,则可以将对象序列化到文件系统.能够使用命令行UI驱动您的应用程序是一个很好的练习,以保证您有一个良好的MVC分离.

从对象开始.

更新:

这种方法的一个优点是它不会损害具有特定数据库设计的UI,反之亦然.该对象与其他两层无关.您根本不需要拥有UI或关系数据库.你只是让对象正确.完成后,您可以创建任何您喜欢的UI或持久性方案,确信域模型可以处理您被要求解决的问题.

  • 最好的答案.他的问题不在于技术问题,而在于设计问题.UI不需要运行DB.DB不应该需要UI来运行.如果他需要在两者之间建立一个接口,这很酷,但他们现在不应该互相依赖. (2认同)
  • ...但是批处理过程_是_一个用户界面。仅仅因为他说“UI”并不意味着“GUI”。首先决定用户如何与系统交互,其次选择实现系统的技术。软件开发应该始终从满足用户的需求开始,而用户并不关心对象系统和数据库。 (2认同)

mou*_*iel 5

将用户放在他应得的位置.首先设计UI.

数据库只是用户需求的结果.


Tes*_*est 5

用例优先,用户界面和数据库都不是。