2010-02-02 25 views
0

在我們的大多數Web應用程序中,我們使用三層體系結構:Controllers/ViewHelpers,Service和DAO層。然而,其中一些項目是一個非常多的樣板代碼。例如:大多數應用程序數據庫模式都有自己的部門表(稱爲T_DEPARTMENT),在代碼方面這需要部門的模型類,DepartmentDAO類等。使用Web服務調用替換自定義DAO代碼

我想要做的是創建一個適用於所有應用程序都可以訪問的所有部門的通用模式(是的,應該已經是這種情況,但不是......)。然後,我想在應用程序服務器上打一個簡單的Web服務,其唯一的工作是訪問該公用表。而不是自定義的DAO代碼,專用模型對象等,信息將簡單地通過web服務調用來檢索,可能是JSON格式。

但是...我需要的答案知道一些問題:

  1. 這真的是一個具有成本效益的想法?我們可能會爲公司的每個財政年度(舊版或重寫舊版應用程序)執行大約10個小型到中型項目。
  2. 如果DepartmentDAO主要由Save(),Delete()和FindByName()/ FindById()方法組成,那麼將代碼/工作量用Web服務代碼替換會大大減少嗎? (請注意,必須編寫代碼來執行諸如將JSON結果轉換爲選擇框之類的內容)
  3. Web服務調用的安全隱患會是一場噩夢嗎?

總之,這在人力成本/可維護性等方面是否值得呢?

回答

1

爲所有系統創建通用模式通常是不現實的。

雖然您正在開發,但也可能會發生變化,但進行更改的成本最終會很高,以至於無法進行任何更改。

了一個解決方案的模式是「限界上下文」,有這樣的埃裏克埃文斯領域驅動設計書

+0

一個很好的說明我同意,不會爲複雜的要求工作。但是,該用例適用於包含ID和名稱的簡單對象。即使添加了更多的屬性,開發人員也可以忽略他/她不需要返回的任何內容。 – Jason 2010-02-05 18:53:01