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К показов