GitHub выпустил инструмент для рефакторинга критически важных участков кода
Новости Отредактировано
3К открытий3К показов
Команда GitHub сообщила в своём блоге о выпуске Scientist 1.0 — библиотеки Ruby для осторожного рефакторинга критических частей кода, позволяющую быть уверенным в том, что ничего не сломается.
Проекты и их кодовая база обычно находятся в постоянном развитии. Ситуации, когда вам необходимо переписать или заменить какую-то часть системы — неизбежны. Конечно, тут могут помочь тесты, однако если вы хотите сравнить поведение до и после рефакторинга под нагрузкой, то с помощью Scientist можете сделать вот так:
Оборачиваете код с исходным работающим поведением в блок use, а новый, проверяемый, в try. Команда experiment.run всегда вернёт именно то, что получилось бы при выполнении use, но при этом проделает много незаметной и важной работы:
- Решит, запускать или нет код в блоке
try; - Рандомизирует порядок, в котором выполняются блоки
useиtry; - Замеряет время выполнения обоих случаев;
- Сравнивает результаты выполнения
tryс теми, что были получены, используяuse; - Проглатывает (но записывает) все исключения, случившиеся в
try; - Публикует всю эту информацию.
Чтобы не создавать каждый раз experiment можно использовать такой синтаксис:
Если вы не объявите блок try, то Scientist не будет делать ничего и дополнительных накладных расходов не будет.
Подробнее о Scientist можно почитать на GitHub.
3К открытий3К показов




