2

私は現在、非常に迅速で汚い方法で構築されたRailsアプリケーションを担当しています。使用されていない多くのビューファイル(htmlテンプレート)があります。また、使用されていない多くのcssファイルがあります。

削除できるように不要になったファイルを特定するための最良の方法は何ですか?

Rails固有のソリューションではなく、一般的なソリューションを探していますが、Ruby/Railsのみのソリューションは間違いなく歓迎されます。

始めるために、使用されたビューを決定するために私が持っていた1つのアイデア(私は特に好きではありません)は次のとおりです。

  1. すべてのビューファイルの先頭にコード行を挿入するスクリプトを記述します。コード行は、ビューの名前をある種のログに追加します。
  2. サイト全体を再帰的に取得します
  3. ログを調べて重複を削除します-次に、使用されているビューのリストがあります
  4. ログにリストされていないビューを削除します
4

5 に答える 5

4

UNIXライクなシステムを使用している場合:

ページのあるパーティションがアクセス時間(atime)を有効にしてマウントされていることを確認してください。Linuxでは、relatimeまたはnoatimeを使用したマウントは役に立ちません。)

現在の時刻を選択します。

Webサーバーを数日間実行します。

以前に選択した時刻よりも時刻が古いファイルを特定します。それらは使用されていません。

于 2008-12-22T00:56:22.657 に答える
4

他のリファクタリングと同様に、テストを作成することから始めます。テストを作成したら、一度に 1 つのファイルを削除して、テストが失敗した場合は元に戻すか、rcovを使用して何が使用されているかを確認できます。

于 2008-12-22T12:53:40.087 に答える
4

Krusty.ar は正しく、最良のアプローチを採用しています。

個人的には、高レベルからすべての機能をチェックするいくつかの統合テストを作成します。次にrcovを使用すると、非常に読みやすい出力が得られ、使用率が0%のファイルがわかります。

次に、削除を開始するか、安全性を高めるためにユニット/機能テストの作成を開始できます。

于 2008-12-22T18:51:00.287 に答える
2

Webサーバーのログを使用して、スクリプトに提供されるすべてのクライアント向けリソースを列挙できます。

OSによっては、ページが実行されるときにロードされるファイルを(フィルターを使用して)監視することもできます。WindowsにはFileMonがあり、BSD / OSXにはfs_usageがあり、Linuxにはdnotifyとinotifyがあります。

于 2008-12-22T00:58:30.593 に答える
0

最善の策は、自分のテストに 100% 信頼できるほどテストに堪能になることです。つまり、ファイルを削除でき、テストがまだ合格している場合、アプリ内のすべてのテストが必要なため、このファイルは何にも必要ないと想定できるはずです。

于 2008-12-25T10:14:05.493 に答える