讓我們想象一下,我開始開發一個項目。所以我必須認真關心未來更改ORM的可能性嗎?開發人員是否應該關心將來更改ORM的可能性?
或者更準確地說:
- 你想改變你在當前項目中使用的一些不同的一個ORM。如果是的話,原因是什麼?
- 你有沒有這樣做過?如果是這樣,原因是什麼?
說實話,我在考慮是否值得投入大量精力試圖開發ORM不可知的解決方案。
讓我們想象一下,我開始開發一個項目。所以我必須認真關心未來更改ORM的可能性嗎?開發人員是否應該關心將來更改ORM的可能性?
或者更準確地說:
說實話,我在考慮是否值得投入大量精力試圖開發ORM不可知的解決方案。
在項目過程中更改ORM的機率相當低。最後,您爲確保切換ORM所做的任何努力都有可能被浪費掉。您必須權衡改變ORM的輕微可能性,而不是額外的努力來改變ORM。
回答您的問題:
在一天結束時,我會確保我選擇一個適合我的ORM(不能像NHibernate那樣真的出錯)並確保你的代碼是鬆散耦合的,這應該確保你的數據訪問代碼是孤立的。這不僅從可維護性角度來看,而且對於可測試性來說都是很好的。
這取決於你如何定義「項目」和你的項目進行了多久。我認爲對於一些項目(永遠持續下去),這是非常可能的。 – GrayWizardx 2009-12-24 06:53:09
是的,我認爲你應該關心它,到什麼程度是一個完全主觀的問題。應該考慮應用程序的所有層次,特別是如果您認爲您的代碼將在相當長的時間內到位,或者如果您認爲應用程序將有顯着增長。
至於你的具體問題:
關於2 - 遷移到另一個ORM並不是您所描述的重構的主要原因,也就是說,有更重要的問題最終導致決定對項目項目進行如此重大的重構(通常幾乎所有組件都會改變= =完全重寫它)? – 2009-12-24 06:43:57
其實DAL是重構一個項目的重要原因。有問題的客戶試圖將他們的應用程序放入比以前更有針對性的大型企業(即企業而不是SMB),並且客戶的要求是某些與數據庫相關的策略已到位,而DAL處理得不好。特別是允許運行SP而不是直接查詢等等。這些(當時)是他們選擇的ORM的主要限制。 – GrayWizardx 2009-12-24 06:52:20
謝謝 - 同意,DAL是非常重要的部分。即那裏的問題可能容易導致重大的重構。 – 2009-12-24 07:03:55
對我而言,「寶貴」=如果遷移到另一個ORM的概率是10%,從頭開始遷移的成本(即如果項目的開發沒有關心遷移的可能性)是C,高達C * 10%的努力透明移民支持。 – 2009-12-24 06:26:27
ORM代表什麼? – 2009-12-24 06:26:47
對象關係映射器。 – 2009-12-24 06:28:01