現在,我的代碼在我的主數據庫訪問類中創建了數據庫(只是SQLite數據庫上的一些CREATE查詢)。這似乎是不必要的,因爲我無意使用代碼。如果出現問題,我只需要它,我需要重新創建數據庫。我應該...YAGNI和數據庫創建腳本
- 儘管數據庫創建代碼大約是我的文件大小的四分之一,但事實保持不變。
- 將數據庫創建代碼移至單獨的腳本。如果我仍然需要再次運行它,那麼很可能我會手動運行它,並且在處理主代碼時會讓它看起來不知所措。
- 刪除數據庫創建代碼並依賴版本控制,如果我發現自己再次需要它。
現在,我的代碼在我的主數據庫訪問類中創建了數據庫(只是SQLite數據庫上的一些CREATE查詢)。這似乎是不必要的,因爲我無意使用代碼。如果出現問題,我只需要它,我需要重新創建數據庫。我應該...YAGNI和數據庫創建腳本
我認爲最好保持代碼。更重要的是,每當數據庫模式發生變化時,您應該維護此代碼(或生成它)。
由於以下原因,這很重要。
如果沒有一個嚴格的方法來這個,我發現數據庫模式隨着時間的推移可能會隨着臨時變化而發生漂移,並且這可能會導致在您點擊數據庫之前找不到的晦澀問題。更糟糕的是,如果沒有遵守規範的方法(即模式的參考定義),您可能會發現不同的數據庫具有細微差別的模式。
我只需要它,一旦發生 錯了,我需要重新創建 數據庫。
重新創建數據庫絕對不是特例。該代碼是您在新/不同系統上的部署過程的一部分,它代表您的代碼期望使用的數據庫結構。實際上你應該有集成測試來證實這一點。在開發過程中通過手動調度的SQL語句逐步創建架構的單個數據庫服務器無限期地工作是而不是您應該依賴的東西。
但是,它應該與訪問代碼分開;所以選項2是正確的。單獨的腳本可以被測試以及部署使用。
我認爲在這種情況下YAGNI =你*是*會需要它! – Benjol 2010-06-18 13:50:16