我的Rails應用照顧命名方案的變化,這是即將有面臨更名的部分(像URL一些關鍵用戶,以及其他類似的變化如重命名「博客」到「期刊」和等等)如何最好地應對在Rails應用程序
我稍微擔心,隨着時間的推移,其在代碼庫中的所有方法,途徑和類名年長的名字負荷將是難以閱讀和維護。
什麼應對這樣的變化的最佳方式?
而且哪裏有陷阱喜歡被混淆的方法和類名的時候,還是在這裏運行的遷移?
感謝
我的Rails應用照顧命名方案的變化,這是即將有面臨更名的部分(像URL一些關鍵用戶,以及其他類似的變化如重命名「博客」到「期刊」和等等)如何最好地應對在Rails應用程序
我稍微擔心,隨着時間的推移,其在代碼庫中的所有方法,途徑和類名年長的名字負荷將是難以閱讀和維護。
什麼應對這樣的變化的最佳方式?
而且哪裏有陷阱喜歡被混淆的方法和類名的時候,還是在這裏運行的遷移?
感謝
如果應用程序是開發並尚未投入生產,則可以安全返回並重命名遷移/模型/視圖等...並執行rake db:migrate:reset
並完成相應操作。你應該有足夠的測試,以確保重命名並沒有破壞任何東西,如果它確實應該提高測試覆蓋率在這一領域。
,只要這樣,對於變化的表面面積減小這樣的一個應用程序,目前正在生產我建議逐步做:
更改路線
這可能是最大的變化。首先更新您的路線將使您有機會修復您的所有觀點。
更新您的模型/控制器
你可以做到這一點沒有改變數據庫。您可以使用set_table_name "OldTable"
將您的模型指向新的數據庫表。這意味着您可以在發行版的帶外進行任何數據庫更改。
更改數據庫
希望你正在使用的遷移,在這種情況下,只是做一個表重命名和刪除set_table_name。
我會重命名內部類以匹配外部的名字,否則談論代碼時只是造成混亂。當然,路由可以使外部更改易於切換,但沒有什麼比在代碼中讀取網頁上看到的內容。
重命名後,我會加載應用了在暫存環境中與實時數據來測試遷移,然後運行類似於狼蛛(http://github.com/relevance/tarantula)來抓取您的應用尋找明顯破損問題,你&您測試可能錯過了。