Update documentation and code snippets

This commit is contained in:
2025-12-02 22:59:58 +03:00
parent e6645730f0
commit 2800a7ffc2
30 changed files with 1494 additions and 3962 deletions
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"POT-Creation-Date: 2025-12-02 22:27+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -21,80 +21,86 @@ msgstr ""
#: ../../root/dependency_injection.rst:4
msgid "Внедрение зависимостей"
msgstr "Dependency Injection"
msgstr ""
#: ../../root/dependency_injection.rst:6
msgid ""
"Внедрение зависимостей (Dependency Injection, DI) — это паттерн "
"проектирования, который помогает писать слабосвязанный, легко тестируемый"
" и расширяемый код. Вместо того чтобы обработчики сами создавали нужные "
"им объекты (зависимости), они лишь объявляют их в качестве аргументов. В "
"момент вызова ``Argenta`` автоматически \"внедряет\" эти зависимости."
"им объекты (зависимости), они получают их извне."
msgstr ""
#: ../../root/dependency_injection.rst:8
msgid ""
"``Argenta`` использует библиотеку ``dishka`` для реализации DI, что "
"позволяет декларативно объявлять зависимости прямо в сигнатурах ваших "
"обработчиков. Подробнее о `DI`, `IoC` и API для создания провайдеров "
"обработчиков. Подробнее о **DI**, **IoC** и API для создания провайдеров "
"можно прочитать в `официальной документации dishka "
"<https://dishka.readthedocs.io/en/stable/di_intro.html>`_."
msgstr ""
#: ../../root/dependency_injection.rst:12
#: ../../root/dependency_injection.rst:14
msgid "Основная идея"
msgstr ""
#: ../../root/dependency_injection.rst:14
#: ../../root/dependency_injection.rst:16
msgid ""
"Представьте, что вашему обработчику для работы нужен доступ к базе "
"данных. Вместо импорта и инициализации соединения внутри функции, вы "
"просто объявляете его как аргумент с аннотацией типа:"
msgstr ""
#: ../../root/dependency_injection.rst:17
#: ../../root/dependency_injection.rst:19
msgid ""
"``argenta.di.FromDishka`` является псевдонимом для ``dishka.FromDishka``,"
" и они полностью взаимозаменяемы."
"``argenta.di.FromDishka`` является алиасом для ``dishka.FromDishka``, и "
"они полностью взаимозаменяемы."
msgstr ""
#: ../../root/dependency_injection.rst:23
#: ../../root/dependency_injection.rst:21
#: ../../root/dependency_injection.rst:29
#: ../../root/dependency_injection.rst:37
#: ../../root/dependency_injection.rst:60
msgid "**Пример использования:**"
msgstr ""
#: ../../root/dependency_injection.rst:27
msgid ""
"``Argenta`` с помощью ``dishka`` разрешит зависимость по типу "
"``Connection`` и внедрит её. Но прежде чем использовать зависимость, её "
"необходимо объявить в провайдере."
"необходимо объявить в провайдере:"
msgstr ""
#: ../../root/dependency_injection.rst:29
msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе."
#: ../../root/dependency_injection.rst:35
msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе:"
msgstr ""
#: ../../root/dependency_injection.rst:36
#: ../../root/dependency_injection.rst:46
msgid "Как это работает?"
msgstr ""
#: ../../root/dependency_injection.rst:38
#: ../../root/dependency_injection.rst:48
msgid "В основе DI в Argenta лежат **провайдеры** и **контейнер**."
msgstr ""
#: ../../root/dependency_injection.rst:40
#: ../../root/dependency_injection.rst:50
msgid ""
"**Провайдер (Provider)** — это \"рецепт\", который объясняет, как "
"**Провайдер (``Provider``)** — это \"рецепт\", который объясняет, как "
"создавать и настраивать ту или иную зависимость (например, подключение к "
"БД, API-клиент или любой другой сервис)."
msgstr ""
#: ../../root/dependency_injection.rst:41
#: ../../root/dependency_injection.rst:51
msgid ""
"**Контейнер (IoC Container)** — это \"фабрика\", которая хранит все "
"рецепты (провайдеры) и по запросу создаёт и выдаёт готовые зависимости."
msgstr ""
#: ../../root/dependency_injection.rst:44
#: ../../root/dependency_injection.rst:56
msgid "Встроенные провайдеры"
msgstr ""
#: ../../root/dependency_injection.rst:46
#: ../../root/dependency_injection.rst:58
msgid ""
"``Argenta`` поставляется со встроенным провайдером, который даёт доступ к"
" важным системным зависимостям без дополнительной настройки. Например, вы"
@@ -102,110 +108,24 @@ msgid ""
"командной строки, переданные при запуске приложения."
msgstr ""
#: ../../root/dependency_injection.rst:48
msgid ""
"Пример получения объекта ``ArgSpace`` и вывода в консоль значения "
"аргумента `type`:"
#: ../../root/dependency_injection.rst:69
msgid "Обмен данными между обработчиками"
msgstr ""
#: ../../root/dependency_injection.rst:55
msgid "Обмен данными между хендлерами"
msgstr ""
#: ../../root/dependency_injection.rst:57
#: ../../root/dependency_injection.rst:71
msgid ""
"Помимо DI, обработчики могут обмениваться данными в рамках сессии через "
"**объект контекста**. В ``Argenta`` эту роль выполняет объект "
"``Response``."
"``DataBridge``."
msgstr ""
#: ../../root/dependency_injection.rst:59
#: ../../root/dependency_injection.rst:73
msgid ""
"Каждый обработчик может записывать в него данные, а также читать, "
"обновлять и удалять их."
msgstr ""
#: ../../root/dependency_injection.rst:63
msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_response`."
#: ../../root/dependency_injection.rst:76
msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_bridge`."
msgstr ""
#~ msgid "мда мда мда"
#~ msgstr ""
#~ msgid ""
#~ "Внедрение зависимостей (Dependency Injection, "
#~ "DI) — это паттерн проектирования, "
#~ "который помогает писать слабосвязанный, легко"
#~ " тестируемый и расширяемый код. Вместо "
#~ "того чтобы хендлеры сами создавали "
#~ "нужные им объекты (зависимости) они лишь"
#~ " объявляют о необходимости в их "
#~ "получении, а ``Argenta`` \"внедряет\" их "
#~ "в хендлеры в момент вызова."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` использует популярную библиотеку "
#~ "``dishka`` для реализации DI, что "
#~ "позволяет вам декларативно объявлять "
#~ "зависимости прямо в сигнатурах ваших "
#~ "хендлеров. Более подробно про ``DI``, "
#~ "``IoC``, ``API`` создания провайдеров и "
#~ "другое вы можете прочитать тут_."
#~ msgstr ""
#~ msgid ""
#~ "Представьте, что вашему хендлеру для "
#~ "работы нужен доступ к базе данных. "
#~ "Вместо того чтобы импортировать и "
#~ "инициализировать соединение внутри функции, вы"
#~ " просто объявляете его как аргумент с"
#~ " тайп-хинтом:"
#~ msgstr ""
#~ msgid ""
#~ "``argenta.di.FromDishka`` это алиас к "
#~ "``dishka.FromDishka``, они полностью "
#~ "взаимозаменяемы."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` -> ``dishka`` зарезолвит тайпхинты"
#~ " и внедрит зависимость с возвращаемым "
#~ "типом ``Connection``, прежде чем использовать"
#~ " зависимость её нужно создать, для "
#~ "этого нужно создать соответствующий провайдер."
#~ msgstr ""
#~ msgid "После создания провайдера, его нужно зарегистрировать в оркестраторе."
#~ msgstr ""
#~ msgid "В основе DI в Argente лежат **провайдеры** и **контейнер**."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` поставляется с предопределённым "
#~ "провайдером, который даёт доступ к "
#~ "важным системным зависимостям без какой-либо"
#~ " настройки. К примеру вы можете "
#~ "получить объект ``ArgSpace``, который "
#~ "представляет из себя распаршенные аргументы"
#~ " командной строки при запуске приложения."
#~ msgstr ""
#~ msgid ""
#~ "Краткий сэмпл кода, который получает "
#~ "объект ``ArgSpace`` и выводит в консоль"
#~ " аргумент с именем \"type\":"
#~ msgstr ""
#~ msgid ""
#~ "Помимо DI, хендлеры могут общаться друг"
#~ " с другом в контексте приложения "
#~ "через **объект контекста** (в ``Argenta`` "
#~ "эту роль выполняет объект ``Response``)."
#~ msgstr ""
#~ msgid "Каждый хендлер может записывать данные, читать, обновлять и удалять."
#~ msgstr ""