Question

Je suis maintenant responsable d'une application Rails qui a été construit de façon très rapide et sale. Il a de nombreux fichiers de vue (modèles html) qui ne sont pas utilisés. Il a également de nombreux fichiers CSS qui ne sont pas utilisés.

Quelle est la meilleure façon de déterminer quels fichiers ne sont plus nécessaires pour qu'ils puissent être supprimés?

Je suis à la recherche d'une solution générique et non une solution spécifique à Rails, mais une solution Ruby / Rails ne sera certainement accueilli.

Juste pour faire avancer les choses ont commencé, une idée que j'avais (que je ne suis pas particulièrement friands) pour déterminer les vues ont été utilisées comme suit:

  1. Ecrire un script qui permet d'insérer une ligne de code dans le haut de chaque fichier de vue. La ligne de code ajoutera le nom de la vue à une sorte de journal.
  2. wget récursive l'ensemble du site
  3. Allez dans le journal et supprimer les doublons - nous avons une liste de points de vue qui sont utilisés
  4. Supprimer des vues qui ne figurent pas dans le journal
Était-ce utile?

La solution

Si vous êtes sur un système unix:

Assurez-vous que la partition avec les pages sont montées avec le temps d'accès (atime) activé. Sur linux, monte avec relatime ou noatime ne vous aidera pas.)

Choisissez l'heure actuelle.

Exécuter le serveur Web pendant quelques jours.

Identifier les fichiers dont atime est plus ancienne que le temps choisi précédemment. Ils ne sont pas utilisés.

Autres conseils

Comme tout refactoring, commencer par des tests d'écriture, une fois que vous avez ceux-ci, vous pouvez supprimer un fichier au moment et annuler si les tests échouent ou utilisez rcov pour voir ce qui est utilisé.

Krusty.ar a raison et la meilleure approche.

Personnellement, je voudrais écrire quelques tests d'intégration qui vérifient toutes les fonctionnalités d'un niveau élevé. Utilisez ensuite avec rcov et vous obtiendrez certains mettent en très lisible qui vous dira quels fichiers ont l'utilisation de 0%.

Ensuite, vous pouvez commencer à supprimer, ou commencer à l'unité d'écriture / tests fonctionnels pour plus de sécurité.

Vous pouvez utiliser les journaux de serveur Web d'énumérer toutes les ressources avec les clients qui sont servis à votre script.

En fonction du système d'exploitation, on peut également surveiller (avec un filtre) quels fichiers sont chargés comme les pages sont exercées. Sur les fenêtres, il y a FileMon , pour BSD / OS X il y a fs_usage et Linux a dnotify et inotify .

Votre meilleur pari est de le devenir couramment au test que vous pouvez compter à 100% sur vos propres tests. En d'autres termes, si vous pouvez supprimer un fichier, et les tests sont toujours en passant, vous devriez être en mesure de supposer que ce fichier n'est pas nécessaire par quoi que ce soit, parce que vous devriez passer des tests pour tout dans votre application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top