Здравствуйте, VladiCh, Вы писали:
VC>Интерфейсы между сервисами как правило никто не рефакторит, просто выкатывают новую версию интерфейса (или новый сервис) для замены старой (старого сервиса). VC>Это во всяком случае более поэтапный и управляемый процесс, чем рефакторинг чего-то в монолите. VC>И я не вижу в чем тут невозможность — такое происходит сплошь и рядом.
Ровно поэтому API между сервисами и не рефакторят, что бесполезно. Выкатишь новую версию, а ресурсов ссадить пользователей со старой силенок не хватит. В результате поддерживаешь две версии непонятно зачем. И я не говорю про более серьезные преобразования, типа объединить два сервиса в один или перенести часть функционала в другой сервис. Ни один вменяемый менеджер не возьмет в свой отдел лишний кусок работы и не отдаст крайне необходимый кусок ресурсов. Поэтому, кстати, архитектура системы и копирует архитектуру организации, как еще во времена Брукса заметили. Мелкие рефакторинги в своей песочнице, пожалуйста, хоть все на хаскель перепишите. А что-то более серьезное завязнет еще на этапе согласования.