2010-11-16 181 views
3

只是想知道如何从概念,规格,开发等开始一个项目。在开发中,你从数据库设计开始?或者可能是你知道我可以看的资源。如何启动一个项目

+3

这是一个非常开放的问题,它将随项目和团队的不同而不同。真的不可能有确定的答案。也许其他堆栈交换站点之一可能更适合这个问题? – 2010-11-16 00:57:25

+0

我从来没有读过它,但它听起来像你可能会对Guy Kawasaki开始的艺术感兴趣 - http://www.amazon.com/Art-Start-Time-Tested-Battle-Hardened-Starting/dp/ 1591840562/ref = sr_1_1?ie = UTF8&qid = 1289869199&sr = 8-1 – dhable 2010-11-16 01:01:11

回答

0

这一切都取决于什么激发了首先启动项目的动机。它可以从坐下来充实,充实多年来在你脑海中无尽酝酿的东西,或者坐下来制作一个快速而肮脏的原型,让自己相信你所拥有的那种看似如此简单的天才想法其实非常棘手灌木,要求你坐下来肉身。

我从来没有从数据库设计入手,因为这是一个实现细节。我可能甚至不想使用数据库。我从功能设计开始。我想要它做什么?为什么?怎么样?它与其他方法有何不同?这个好处是否足以让它干扰呢?你明白了。一旦我清楚地知道自己在做什么,最重要的是为什么,就会解决实施设计问题。

0

这是非常普遍的,但第一步总是找出并记录你想要应用程序做什么。然后我通常会开发和ERD,它定义完成这些功能所需的表以及位于这些表前面的类结构。一旦这两大部分完成,通常都是非常顺利的航行。

1

从数据库设计开始实际上是我的一个大宠物。当然,对一些项目来说很好。简单的form-over-data应用程序,类似的东西。但对于更复杂的任何事情来说,任何具有逻辑“领域”的东西都不是从数据库设计开始的。从领域建模开始。如果您正在采用业务逻辑并将其置于代码中,那么定义逻辑流程的业务用户很可能不会考虑静态SQL或关系数据。他们根据具体和抽象概念的逻辑交互来思考。

正如Eric S. Raymond所说:“智能数据结构和哑代码比其他方式更好地工作。”通常,当开始数据库设计时,会创建一个扁平的“哑”数据结构。不是愚蠢的,因为它是一个糟糕的设计,但从它没有内置逻辑的意义上说。它是平坦的,无量纲的。所有的情报都需要进入使用它的代码。

另一方面,丰富的领域模型将业务逻辑和概念直接合并到数据结构中。它通过实际的商业智能来增强数据本身,并在整个域中传递这些智能。

现在,这并不意味着您在设计域时不应该考虑持久性。但是,应该建立持久性以配合领域,而不是相反。尼尔森建议从这个领域开始,在开发过程中需要休息一下,思考并努力坚持。这是因为领域模型确实是核心,但是您需要评估对持久性的任何妥协以保持自己的现实。寻求真正的持久性无知可能会让自己陷入一些漏洞。

+0

好点。我认为记录应用程序应该做什么的步骤,但我的评论是不正式的。我一遍遍看到的一个重大错误并不是定义词汇,每个人都会感到困惑,因为不同的人对同一事物使用不同的术语。 – JOTN 2010-11-16 01:15:22

+0

@JOTN:绝对。创建一个所有参与者都能理解的“特定领域语言”是一个关键的早期步骤。很多时候,商业软件的开发并不完全符合企业的想法。这使未来的开发人员与商业用户产生矛盾,因为他们的工作是支持该软件,并且该业务将他们置于无意义的软件之前。 – David 2010-11-16 01:18:37