Go
средний
Финал: софт-скиллы и поведенческие кейсы (STAR)
STAR: Situation → Task → Action → Result. Главная ошибка — застрять в Situation и не дойти до Action.
1. Критика на код-ревью
Реальный кейс: PR #31431 в helm/helm (mustToToml). Мейнтейнер не согласился с подходом.
- S: предложил, чтобы
toTomlне роняла шаблон при ошибке, а тихо возвращала сообщение об ошибке. Не согласился. - T: либо отстоять версию, либо перестроить так, чтобы устроило обоих.
- A: разделил задачу — бесспорную часть (новый строгий
mustToToml, как уже естьmustToYaml/mustToJson) вынес в отдельныйPR #31957, спорную (менять поведениеtoToml) оставил для дальнейшего обсуждения. - R:
#31957смёржили быстро — критика архитектуры не заблокировала бесспорную часть работы.
2. Факап
Реальный кейс: в Avito.Кухне CreateOrder при невалидном fulfillment_type возвращал 409 invalid_transition вместо 400 invalid_fulfillment_type. Найден на ревью, не тестами.
- S: существующие тесты (happy-path, "не хватило остатка") этот вход не покрывали.
- T: признать причину — не тест не поймал, а я не подумал про этот вход.
- A: локализовал вход, завёл отдельную
ErrInvalidFulfillmentType → 400вместо переиспользованияErrInvalidTransition, синхронизировал с OpenAPI-схемой. - R: класс багов закрыт как правило — каждая новая доменная ошибка получает свой HTTP-код.
3. Непонятное ТЗ
- S:
[впиши своё — например: бизнес-сценарии в тестовом заданы общими словами]. - T: не молчать и не заваливать вопросами то, что можно решить самому.
- A: вёл
DECISIONS.md(реальная практика в Avito.Кухне) — вопрос → варианты → выбор → почему. Это разделяет "решил сам" и "нужно уточнение у лида". - R:
[впиши своё].
4. Сжатые сроки
Реальный кейс: в Avito.Кухне переход с HTTP push+callback на Kafka по запросу на пересмотр архитектуры.
- S: рабочая HTTP-версия уже была готова, пришёл запрос пересмотреть под другие требования к надёжности.
- T: честно оценить, закрывает ли новая версия больше рисков, и успеть её сделать.
- A: назвал trade-off вслух: HTTP проще, но требует ручной реконсиляции при недоступности; Kafka сложнее, но даёт durable-очередь. Приоритет — сначала гарантия доставки (transactional outbox), DLQ потом.
- R: переписался только транспорт, домен и usecase-слой не тронуты — уложился в срок.
Чек-лист перед созвоном
- На каждый кейс — реальный пример или продуманный
[впиши своё]. - В каждом ответе есть отдельное предложение-Result с числом/фактом.
Самопроверка
0 / 3
Каждый ответ проходит все 4 части STAR
Где есть реальный случай — использую его, не выдумываю
Result — конкретный измеримый итог
Как усвоено?
Сложность
Вода
ИИ-шность
Фичи движка
Подача