2009-09-29 43 views
8

爲什麼大多數人都說數據服務和數據庫是系統中最重要的部分?爲什麼大多數人會說數據服務和數據庫是系統中最重要的部分?

從我所看到的,它是前端開發:GUI,WEBUI,XAML是最重要的。當然比中間層和數據庫層更重要。

我不認爲建立一個應用程序的數據庫是一件大事。畢竟,數據模式來自業務分析,數據庫開發人員的工作非常少。業務邏輯方面(中間層)也是如此。另外,J2EE和.NET企業框架都有助於簡化業務邏輯的開發。

那麼,數據庫開發人員在做什麼非常重要?爲什麼我們甚至需要一個獨立的數據庫開發人員?爲什麼大多數公司仍然向中端/後端開發者而不是前端開發者支付更高的薪水?

我認爲,開發商構建UI(在Java或C#)應具備數據庫知識。這將讓他們構建整個應用程序。在我看來,無論如何都不可能讓非數據庫知識人員開發應用程序。

請讓我知道我在這裏失蹤。

非常感謝。

+1

我不是說數據庫是最終的全部或全部,但請在現實世界中工作,然後再提問。 – 2009-09-29 21:25:51

+0

不明白downvote。僅僅因爲這個問題有點短視並不意味着這是一個無效的問題。 +1。 – 2009-09-29 21:31:07

+0

是什麼問題?誰說數據庫最重要的是誰?什麼樣的系統?爲什麼這個問題很重要? – 2009-09-29 21:32:27

回答

11

前端通常更容易更改,而後端需要更多的需求和設計階段。如果後端發生變化,那麼前端很可能需要更改,所以處理後端服務(db等)的更改請求通常會導致中端和前端進行大量更改。前端的更改通常不會影響後端。

DBA問題真的取決於您項目的規模。如果你正在談論幾個簡單的表格和幾千條記錄的項目,那麼你可能是對的。無論如何,真正的DBA可能會認爲在他/她的價值之下工作在該項目上。真正的DBA更像是專門從事DBMS優化的系統管理員。幾乎任何程序員都可以構建表,關係,視圖,存儲過程等等。尤其是對於易於使用的ORM,DBA過去所做的很多東西並不是真的需要。但是,在處理大型項目和大型數據庫系統以進行DBMS優化,系統配置,故障轉移配置等時,DBA至關重要。

您的原始問題並未討論項目範圍,我認爲這就是您困惑或沒有看到真正的DBA的重要性(不要與知道一點SQL或進行數據輸入並稱自己爲DBA的人混淆)。

10

我相信前端側:GUI, WEBUI,XAML比 中間層和數據庫層更重要。

這有點像說汽車的顏色比發動機和輪胎更重要。

它可能不是一個大問題,以建立一個數據庫。然而,正確構建一個,優化現有構件並維護設計良好的數據存儲是一件大事。國際海事組織,這就是爲什麼數據庫/數據存儲的傢伙得到大筆資金。

+1

但除了汽車極客(可能還包括一般的極客,包括我在內,還有我對汽車一無所知),世界上很大一部分人都在關注汽車的顏色以及那些微不足道的/美觀的東西,達成協議。 – 2009-09-29 21:45:20

+1

根據我的經驗,如果考慮所有其他主要因素,這些事情只會造成或破壞交易。如果兩輛車都缺少發動機,你不會購買新的綠色汽車,對嗎? – 2009-09-29 21:46:50

+1

Yugos沒有賣,因爲他們醜*和*不可靠。如果輪胎爆炸超過20英里每小時,有多少人會購買漂亮的汽車? 「我喜歡我的蓮花Elise,但高中的田徑隊一直在毆打我,Whassup wit dat?」 – DaveE 2009-09-29 21:55:09

2

在許多其他原因:憑藉着雄厚的中間層,你可以從一個GUI切換到另一種基於需求(比如從前期的web2.0到web2.0的設計),因此,需要對中間有很多的規劃和。後端層與可能可交換的前端相比。

5

這一切都很重要。

2

不可能讓非數據庫知識的人來開發任何應用程序。

如果您隱藏數據庫表並使用包裝在Web服務中的存儲過程。

前端只是在實際應用皮膚。

中間業務層是最難以恕我直言程序作爲商務人士很少知道他們的需求是什麼,儘管想他們這樣做。他們經常改變主意。邊緣案例破壞了一個很好的設計,可能很難實現。

不要緊,你的GUI開發者有多好,如果他寫上寫得不好的業務層的前端。而且你不能在設計不佳的數據庫上寫出好的業務層。

在最後,它更簡單改寫的GUI比它更改數據庫層或中間層,如在任一這些的變化會影響該程序的所有隨後的水平。

+0

如果您使用存儲過程隱藏數據庫表,並將其包含在Web服務中 Yuck!在適當的情況下,我都是爲SOA做的,但所有關於Web服務和存儲過程的東西都變成了一個非常程序化的設計。 – fregas 2009-10-09 17:08:50

+0

你怎麼看? – CaffGeek 2009-10-09 20:59:41

4

對於你扔在一起數據庫似乎並不那麼重要,但讓該應用的成長,隨着時間的推移,你很快遇到因設計不良的陷阱一個小應用程序。

數據庫層和中間層的關鍵是您的應用程序的壽命和可維護性。

1

業務邏輯永遠與J2EE或DOTNET企業架構幫助簡單。

當然,編碼的業務邏輯往往是簡單的......如果你不擔心例外,錯誤處理,實際上是從企業獲得正確的要求等添加在能力(需要現在比以往任何時候都更多)爲一個單一的應用程序支持多種前端(網絡,桌面,移動),突然之間,「簡單」的業務邏輯成爲一個關鍵點。

7

一些我作爲一個程序員是處理用戶界面(XHTML,XAML,小服務程序,MVC,asp.net等)做過的最有挑戰性的工作。話雖如此,我認爲你遇到了兩個不同的問題。正如Mathew所說,在數據庫方面,真正的DBA將能夠以常規開發人員無法知道的方式優化大型(數百萬條記錄)數據庫。在中間層,我認爲用戶界面常常如此複雜的原因是因爲開發人員通常不會真正建立真正的中間/業務邏輯層。所以他們最終將應用程序中的所有邏輯放在用戶界面中,這是錯誤的。知道如何建立一個知道領域驅動設計和麪向對象設計模式的可靠,面向對象的業務層的優秀開發人員是RARE。使用與您的數據庫對象相匹配的getter/setter構建一堆類不是面向對象的設計。因此他們值得更多。

除此之外,我同意,不過,UI的工作是非常具有挑戰性的節目,應該算是比較重要的比它目前是。

+0

+1 - 尼斯評論 - 希望我可以upvote兩次。 – 2009-09-29 21:36:58

+0

+1的開發商!=設計師 – 2009-09-29 21:43:40

+0

但是我沒有看到很好的中間層設計,即使在陽光藍印 – ariso 2009-09-30 19:54:17

2

這是不可能回答你的問題。

它基於一個前提,即每個人都認爲數據庫是所有系統中最重要的東西 - 顯然是錯誤的 - 不僅所有人都不這麼認爲,許多系統不使用數據庫,許多有經驗的人也會同意不同系統中最重要的部分因系統而異。

事實上,通過系統的定義,每個部分都必須是重要的!一些子系統可能比其他系統更昂貴,其他系統可能更容錯,有些可以用模塊化方式替換,有些則不是,但都是系統的一部分,因此很重要。一個更重要的想法很難量化。可以想象,某些部件是可選的(如「不起作用」的裝飾),因此可能不被視爲系統的一部分。然而,在系統的更大視圖中,用戶參與其中並且與系統的高效和快樂的交互對於確保其成功至關重要。

要使用此處已發佈的類比,汽車上的油漆可能不像引擎那麼重要,但有人會出售未上漆的汽車嗎? - 不太可能(除非那是產品的定義 - 像未完成的傢俱)。

就像引擎比油漆工作更昂貴一樣,我希望我們付出更多的人來設計引擎,而不是選擇油漆顏色。

在所有系統中都有各種各樣的特點和複雜性。

0

這並不意味着每個人都可以在VC++中很好地編寫代碼,即使他們在C++中有知識。

在當今的技術世界裏,每個開發人員都掌握了大部分最新技術的基本知識。這並不意味着他們已經準備好用所有技術設計系統。

它的一切都帶有經驗和專業化。記住,他們在做DBA方面付出了很多,而不是在做UI設計。

這並不意味着UI開發人員不能設計一個數據庫。如果你有足夠的設計數據庫的經驗,你也可以成爲一名優秀的數據庫設計師。

+0

哪裏C++進來此對話嗎?在我看來,在商業應用程序中使用C++是非常古老的。 – fregas 2009-10-09 17:10:37

相關問題