2010-11-16 198 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