singalen: (Default)
[personal profile] singalen
На докладе по легаси на expert labs меня спросили: зачем рефакторинг?
То есть, рефакторить, конечно, можно, но какая в этом цель?

Я тогда не сформулировал чёткого ответа, только пробулькал что-то про критичную подсистему, которую можно отделить и заменить.

И правда, сам по себе рефакторинг — процесс ненаправленный, хотя помогает изучить код. Одновременное существование рефакторингов "extract method" и "inline method" это доказывает.

Но правда и то, что источники боли в легаси распределяются по принципу Парето, 80/20. Можно ведь выделить самый противный или наиболее часто изменяемый кусок, целенаправленно выделить интерфейсы и развязывать его зависимости, написать на интерфейсы тесты, а потом заменить целиком.

И да, у работы с легаси должны быть SMART цели, "иначе бросание будет пустою забавою".