Как удалить функциональность из программы в ruby? - PullRequest
1 голос
/ 05 мая 2010

У вас есть код , который вы хотите удалить , связанный с устаревшей частью функциональности из проекта ruby. Как обеспечить избавление от всего кода?

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

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

Ответы [ 3 ]

2 голосов
/ 05 мая 2010

Текущие мысли:

  • Идентифицирует крайнюю часть стека, связанную с устаревшей функциональностью: вызывающий его двоичный скрипт или вызывающие его модульные тесты.
  • Поиск методов, которые вызываются только методами, связанными с устаревшей функциональностью. Я часто использую git grep для этого.
  • Теоретически, может помочь запуск тестирования на наличие мутаций и поиск кода, который был устойчив к мутациям, когда применялся старый набор тестов, но теперь подвержен мутациям. Это помогает, только если ваш код был хорошо протестирован. (Или вы можете использовать инструменты покрытия кода, такие как rcov, а не тестирование мутаций)
  • Запуск тестовых наборов гарантирует, что вы не удалили ничего, чего не должны были иметь!
    • Использование автотеста может сэкономить ваше время, если вы постоянно запускаете тесты.
  • Если ваш код был хорошо структурирован, должно быть проще найти связанные методы, которые необходимо удалить.
0 голосов
/ 05 мая 2010

Посмотрите на покрытие вашего кода. Любой код, который не рассматривается, может быть частью кода, который вы оставили удалить (если есть). (Только убедитесь, что вы удалили свои тесты. =])

0 голосов
/ 05 мая 2010

Особенно в динамически типизированном языке, нет простого способа сделать это. Если у вас есть юнит-тесты, поблагодарите разработчика, который их написал, потому что это поможет вам правильно удалить код. Но вы в основном SOL. Удалите код, если он сломался, верните его обратно, выясните, где он сломался, попробуйте обойти его и повторите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...