API
gRPC и Protobuf: тест на свободное припоминание
Припоминание бьёт перечитывание. Для каждого вопроса проговори или запиши полный ответ по памяти до того, как откроешь модельный ответ — именно усилие припоминания закрепляет контракт field tag и формы streaming.
Восстанови спину юнита — почему провод несёт номера, а не имена, что делает изменение схемы безопасным, четыре формы вызовов, как распространяются deadlines и где место gRPC против REST — не заглядывая назад.
- 01Что именно Protobuf кладёт на провод и что это даёт и чего стоит по сравнению с JSON?
- 02Почему переименование поля бесплатно, а перенумерация или переиспользование field tag — production-катастрофа?
- 03Объясни backward и forward совместимость в Protobuf и два механизма, которые их дают.
- 04Назови четыре формы вызовов gRPC и решающий вопрос для выбора одной.
- 05Как работают deadlines в gRPC и какой классический сбивающий с толку сбой они вызывают?
- 06Когда gRPC выигрывает у REST/JSON и почему браузер не может говорить на нём напрямую?
Если ты смог восстановить каждый ответ по памяти, ты держишь спину юнита: провод несёт field tag и значения, никогда имена, поэтому переименование бесплатно, а перенумерация — порча; add-only эволюция с reserved даёт двустороннюю backward/forward совместимость; четыре формы вызовов выбираются по тому, кто стримит; deadlines распространяются и могут провалить caller’а, чья работа реально приземлилась, поэтому фикс — идемпотентность; а место gRPC — между твоими сервисами, тогда как REST/JSON или Connect-RPC остаётся на браузерной границе.