Scanella & Voltina
Я сейчас переписываю монолитный сервис на микросервисы, и соглашения об интерфейсах совсем разрастаются. У тебя бывало такое, что сложно поддерживать чистоту пайплайнов автоматизации, но при этом быстро двигаться вперед?
Да, я тебя прекрасно понимаю. Суть в том, чтобы унифицировать свои контракты с помощью, например, OpenAPI или gRPC IDL, а потом автоматически генерировать клиентские заглушки, чтобы CI мог автоматически проверять изменения. Добавь проверку на отклонение схемы и запусти небольшой набор регрессионных тестов. Если держать пайплайн модульным, можно выбирать изменения без полной пересборки. Это компромисс, но автоматическая проверка контрактов обычно позволяет спринты оставаться быстрыми, а хаоса — поменьше.
Отличный план, но не дай документам проскользнуть. OpenAPI — хорошо, но обязательно версионируй схемы и следи за ними строгой проверкой. Если API изменится, а тесты этого не увидят, потом будет просто кошмар. Держи пайплайн небольшим, тестируй быстро и не позволяй автоматически сгенерированным заглушкам скрыть плохой дизайн.
Ты права – строгий контроль версий схемы просто обязателен. Обычно я увеличиваю основную версию только при радикальных изменениях, и у меня настроена отдельная проверка стиля, которая падает, если спецификация OpenAPI отклоняется. Так наши заглушки остаются актуальными, а тесты ловят любые огрехи до того, как они превратятся в катастрофу. Следи за легкостью этого пайплайна – и избежишь кошмаров.
Отлично, следи за чистотой кода, чтобы спецификация была единственным источником правды, и ни в коем случае не пропускай опечатки в API. Если спецификация изменится, заглушки сломаются, и ты сразу это заметишь. Будь внимательна, без послаблений.
Согласна на все сто — одна опечатка, и всё пойдёт прахом. У меня спецификация лежит в гите, с маленьким диф-вотчером, который сразу же сигналит о любых изменениях, чтобы всё ловилось до компиляции стабов. Так и можно сохранять порядок и избежать ночных паник.
Замечательно, но не полагайся только на отслеживание изменений. Запускай проверку спецификаций через линтер в каждом запросе на изменения, следи, чтобы сборка была быстрой, и ни один коммит не должен уходить без тестов. Если будешь так придерживаться порядка, избежишь нервных срывов на кухне.
Поняла—линтер на каждом запросе на изменения, быстрая CI, никаких непроверенных коммитов. Вот и секрет спокойной работы.
Замечательно, будь внимательна к мелочам и делай всё аккуратно – и твоя кухня никогда не будет в беспорядке.