Skip to content

Cookbook: рабочие правила и рецепты @aom

This content is not available in your language yet.

Здесь собираются практические ответы на вопрос «как правильно написать вот это» — с рабочими примерами, объяснением, почему именно так, и указанием, где тот же код исполняется тестом.

Чем это отличается от остальной документации:

ФайлЧто в нём
страница пакетасправочник: что делает каждый декоратор, какие поля у каждого класса
Архитектура ядракак устроено ядро целиком: пакеты, зависимости, фазы, порядок исполнения
рецептыкак писать прикладной код и на чём тут спотыкаются
  1. Каждый пример исполняется тестом. Рецепт без теста устаревает и начинает врать. В конце каждого рецепта — ссылка на тест-файлы, в которых лежит тот же код; в самом тесте — комментарий-обратная ссылка на рецепт.
  2. Сначала рабочий код, потом объяснение. Рецепт читают, когда что-то не получается, а не для общего развития.
  3. Антипримеры обязательны. Если приём не работает или работает не так, как кажется, — показать неверный вариант рядом с правильным.
  4. Никаких повторов справочника. Список аргументов декоратора — в readme пакета; сюда попадает только то, что из сигнатуры не видно.
  5. Один рецепт — один файл, имя по теме (рецепт про @This), а не порядковое вроде «router-2».
ФайлО чём
рецепт про @This@This, @State, @OnInstance: когда объект класса виден, что гарантировано проверками, какие связки дают ошибку цикла
рецепт про ленивое телоЛенивое тело запроса: когда сервер его реально читает, лимит размера (глобальный и на маршруте), 413 и Connection: close, адаптер для чужого HTTP-фреймворка
рецепт про изоляторыИзоляторы: вызов метода класса через шину, адресация исполнителей, таймауты ответа, дедупликация, ошибки через шину, очереди, границы доверия