2009-10-08 40 views

回答

1

他在演講中有點誇張和慣用。不過,他的觀點很有道理。您需要確保所有遷移都在所有環境中運行(包括每次db:test:clone時),您需要加載每次使用代碼處理數據時(例如,甚至在irb中),都可能會遇到加載順序問題。簡而言之,它不是免費的,我們不希望產生不必要的開發和支持成本。

但是,這樣做可能有好處。數據可能希望在用不同語言編寫的代碼之間共享;代碼可能很複雜,並且在每次部署之前都需要昂貴的測試周期;你可能想創建數據庫約束的數據;您可能需要廣泛或結構化的元數據與枚舉相關聯;等等。

雖然這些條件並不常見。對於大多數枚舉來說,命名常量,散列,甚至只是使用符號的約定就足夠了。

0

正如他所說的,他關於靜態枚舉他有問題。爲什麼要爲可以存儲在命名常量中的某些靜態數據進行數據庫查詢?

此外,一些開發人員代碼爲未來。如果將來所有的需求都會延伸,那麼它就要根據現在的要求進行編碼,同時保持設計關閉以進行修改和開放延伸。否則,你會花費時間,精力和最終的錢來處理客戶沒有真正要求的東西。可擴展設計是一回事,而針對未來需求的設計則是另一回事。如果需要的話,前者可以延伸到後者,但在此時並不需要後者。

相關問題