2008-12-22 63 views
2

我現在負責一個以非常快速和骯髒的方式構建的Rails應用程序。它有很多未使用的視圖文件(html模板)。它也有很多沒有使用的css文件。確定哪些源文件不再需要的最佳方法是什麼?

什麼是確定不再需要哪些文件以便可以刪除的最佳方法?

我正在尋找一個通用的解決方案,而不是一個Rails特定的解決方案,但只有Ruby/Rails-only解決方案一定會受到歡迎。

只是爲了讓事情開始,我有一個想法(這我不是特別喜歡的),以便確定使用哪個觀點如下:

  1. 編寫一個腳本,將插入一個一行代碼進入每個視圖文件的頂部。代碼行會將視圖的名稱附加到某種日誌中。
  2. 遞歸wget的整個網站
  3. 經過日誌,並刪除重複的 - 那麼我們所使用
  4. 刪除意見未在日誌

回答

4

中列出如果您的視圖的列表在類似unix的系統上:

確保在啓用訪問時間(atime)的情況下安裝帶有頁面的分區。在Linux上,使用relatime或noatime進行掛載不會對您有所幫助。)

選擇當前時間。

運行網絡服務器幾天。

識別atime比先前選擇的時間早的文件。他們沒有被使用。

+0

我在一個Unix(Ubuntu)上,這聽起來像一個合理的方法。謝謝胡安。在我嘗試之前,我已經將問題留待了更久。 – Joel 2008-12-22 00:59:34

2

您可以使用Web服務器日誌來枚舉所有面向您的腳本的面向客戶端的資源。

根據操作系統的不同,還可以監視(使用過濾器)在頁面執行時加載了哪些文件。在Windows上有FileMon,對於BSD/OSX有fs_usage,而Linux有dnotify和inotify

4

與任何重構一樣,從編寫測試開始,一旦有了這些測試,您可以在此時刪除一個文件,並在測試失敗時將其還原或使用rcov查看正在使用的內容。

4

Krusty.ar擁有正確和最好的方法。

就我個人而言,我會寫一些集成測試,從高層次檢查所有功能。然後使用rcov,你會得到一些非常可讀的輸出,它會告訴你哪些文件有0%的使用率。

然後您就可以開始刪除,或者開始編寫單元/功能測試以獲得更高的安全性。

0

最好的選擇是在測試中變得如此流利,以至於您可以100%依靠自己的測試。換句話說,如果你可以刪除一個文件,並且測試仍然通過,你應該能夠認爲這個文件不需要任何東西,因爲你應該測試你應用中的所有東西。

相關問題