Каков наилучший способ определить, какие исходные файлы больше не нужны? - PullRequest
2 голосов
/ 22 декабря 2008

Сейчас я отвечаю за приложение Rails, которое было построено очень быстро и грязно. Он имеет много файлов просмотра (HTML-шаблоны), которые не используются. В нем также есть много CSS-файлов, которые не используются.

Как лучше всего определить, какие файлы больше не нужны, чтобы их можно было удалить?

Я ищу универсальное решение, а не специфичное для Rails решение, но решение Ruby / Rails-only определенно приветствуется.

Просто, чтобы начать работу, у меня была одна идея (которая мне не особенно нравилась) для определения того, какие виды были использованы:

  1. Напишите скрипт, который будет вставлять строку кода в верхнюю часть каждого файла представления. Строка кода добавит имя представления к какому-либо журналу.
  2. Рекурсивно весь сайт
  3. Пройдите по журналу и удалите дубликаты - тогда у нас есть список представлений, которые используются
  4. Удалить виды, которых нет в журнале

Ответы [ 5 ]

4 голосов
/ 22 декабря 2008

Krusty.ar это правильно и лучший подход.

Лично я бы написал несколько интеграционных тестов, которые проверяют всю функциональность на высоком уровне. Затем используйте с rcov, и вы получите очень удобочитаемую информацию, которая скажет вам, какие файлы используют 0%.

Затем вы можете начать удаление или начать писать модульные / функциональные тесты для большей безопасности.

4 голосов
/ 22 декабря 2008

Как и в случае любого рефакторинга, начните с написания тестов, если у вас есть такие тесты, вы можете либо удалить один файл за раз и отменить, если тесты не пройдены, либо использовать rcov , чтобы увидеть, что используется.

4 голосов
/ 22 декабря 2008

Если вы работаете в Unix-подобной системе:

Убедитесь, что раздел со страницами смонтирован с включенным временем доступа (atime). На linux монтирование с релейным временем или noatime вам не поможет.)

Выберите текущее время.

Запустите веб-сервер на несколько дней.

Определите файлы, время которых старше, чем ранее выбранное время. Они не используются.

2 голосов
/ 22 декабря 2008

Вы можете использовать журналы веб-сервера для перечисления всех клиентских ресурсов, которые обслуживаются вашим сценарием.

В зависимости от ОС, можно также отслеживать (с фильтром), какие файлы загружаются при работе со страницами. В Windows есть FileMon , для BSD / OSX есть fs_usage , а в Linux есть dnotify и inotify .

0 голосов
/ 25 декабря 2008

Лучше всего стать настолько беглым в тестировании, что вы можете полностью положиться на свои собственные тесты. Другими словами, если вы можете удалить файл, а тесты по-прежнему проходят, вы должны быть в состоянии предположить, что этот файл никому не нужен, потому что в вашем приложении должны быть тесты для всего.

...