2011-01-06 82 views
5

我想知道如果我想以RAD的名義在這裏抽象太多。有沒有這樣的事情是「太抽象」?

這裏的一個例子 - 假設我有一個包含3個模型(主模型,映射模型和數據庫模型)的數據庫表。其中每個擴展抽象模型,映射器和數據庫表模型。

這個設置非常好。大部分操作實際上都在抽象模型中。但是,現在我想抽象得更多。我會遠嗎?

我已經抽象了基本的CRUD操作,現在我正在考慮抽象更高級的操作。

一個例子就是獲取一些相關的模型。目前我會這樣做:

$ modelOne-> modelTwo();其中modelTwo是明確定義的。

我的想法是,然後使用抽象方法,如injectModel('modelTwo')或魔術方法。

我總是可以建立相關規則以確保我的模型保持完整......但是這太過分了嗎?

欣賞任何建議。

我不在乎我的一些代碼是不連貫的;我可以在這些部分寫出明確的文件和評論。

+2

換句話說,「計算機科學中的任何問題都可以用另一個抽象層來解決」。所以不,沒有「太抽象」的東西。 ;) – FrustratedWithFormsDesigner 2011-01-06 17:01:29

+2

heh。當然,存在 - 抽象不可用或無用的時刻,只會阻礙意義,你已經「太抽象」了。 – Oded 2011-01-06 17:03:38

回答

2

這正是我在開發當前應用程序時所採取的方法。現在我有一大堆抽象方法和魔術方法來獲取並保存位於Zend_Db_Table和Zend_Db_Table_Row頂部的模型關係。

雖然一開始感覺很好,但支持和引入新的抽象方法變得越來越複雜,並沒有提到團隊的其他成員在處理這些代碼時面臨的困難(無論它有多好的文檔記錄是)。

這種方法非常像寫我自己的ORM,我絕對不打算。我現在最強烈的信念是,我應該從一開始就接受主義。

1

愛因斯坦沒有說過「一切都應該儘可能簡單,但不要簡單一點。」?

我的簡單理解是如何解釋的,就是僅僅根據需要進行抽象。如果你比較流行的框架,你認爲哪些抽象過於集中注意力,遠離你正在做的事情?我認爲ASP.NET和Java往往比PHP或node.js更適合這樣做。另外,如果您將XML與JSON進行比較,則可能更明顯的是,太多抽象會導致更重的負載和更重的智能權重。我不認爲做抽象的學者是有價值的。

KISS

相關問題