У меня есть некоторый PHP-код, который не имеет хорошего покрытия тестов и не легко тестируется в своем текущем состоянии. Если я использую команды из рефакторинг меню PhpStorm, и не вносите никаких других изменений, насколько я могу быть уверен, что это не изменит поведение моего приложения?
Насколько безопасны другие инструменты автоматического рефакторинга?
Насколько я понимаю, эти инструменты будут применять статический анализ и могут вызывать изменения в поведении только в том случае, если приложение выполняет что-то очень странное, в зависимости от вывода debug_backtrace ()
(Чрезмерно) простой ответ — это не лучше и не хуже, чем рефакторинг вручную.
Если у вас есть хорошие тесты, тогда это безопасно. Если нет, то это не так.
Я бы сказал, что не делайте рефакторинга без проведения юнит-тестов для каждой рефакторинговой функции. Рефакторинг не должен нарушать юнит-тесты, если это так, то вы не реорганизовали его, вы изменили его.
Раньше меня укусили инструменты рефакторинга PhpStorms странными способами, что даже привело к нарушению синтаксиса. Но это было очень давно, инструменты пошли дальше, и всегда легко вернуться на шаг назад, если вы методично вносите изменения в свой SCM.
Других решений пока нет …