autumn

star 37

Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.

yellow-hammer By yellow-hammer schedule Updated 3/1/2026

name: autumn description: Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.

Autumn (ОСень)

Фреймворк компонентных приложений для OneScript с Dependency Injection и Inversion of Control. Разрешает зависимости конструкторов автоматически: не нужно вручную создавать цепочки объектов и передавать параметры во все точки создания.

Принцип работы

Объект с конструктором, принимающим параметры (зависимости), регистрируется как компонент («желудь»). Вместо вызова Новый Класс(зависимость1, зависимость2) в коде используется Осень.НайтиЖелудь("ИмяКласса") — фреймворк сам создаёт зависимости и передаёт их в конструктор.

Точка входа

#Использовать autumn
#Использовать "Каталог/С/Классами/Команд"   // путь к папке с классами-компонентами

Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();

Каталог с классами должен содержать классы, помеченные аннотациями Autumn (Желудь, Дуб и т.д.), чтобы они регистрировались в контексте приложения.

Получение компонента

Обновлятор1С = Осень.НайтиЖелудь("Обновлятор1С");

Идентификатор совпадает с именем класса или с параметром аннотации &Желудь("Идентификатор").

Ключевые аннотации

  • &Желудь("Идентификатор") — класс регистрируется как компонент (желудь). Без параметра используется имя класса. Параметры конструктора разрешаются как зависимости других желудей.

  • &Верховный — корневой компонент (например, описание приложения). Указывается вместе с &Желудь.

  • &Дуб — класс-фабрика: не сам является желудем, но в методе с &Завязь возвращает экземпляры других классов (желудей).

  • &Завязь — метод внутри &Дуб, возвращающий экземпляр класса; используется для регистрации команд/компонентов без аннотаций на целевом классе (например, миграция легаси-кода).

Пример желудя:

&Желудь("Обновлятор1С")
Процедура ПриСозданииОбъекта(ПроверяторВерсий, Настройки)
    // ПроверяторВерсий и Настройки будут разрешены Autumn и переданы сюда
КонецПроцедуры

Пример дуба с завязью:

&Дуб
Процедура ПриСозданииОбъекта()
КонецПроцедуры

&Завязь
&КомандаПриложения(Имя = "legacy", Описание = "Легаси команда")
Функция МояЛегасиКоманда() Экспорт
    Возврат Новый МояЛегасиКоманда();
КонецФункции

Рекомендации

  • Один класс — одна ответственность; зависимости передавать через конструктор.
  • Не создавать длинные цепочки вручную — регистрировать классы как желуди и получать их через Осень.НайтиЖелудь().
  • Настройки приложения можно вынести в autumn-properties.json или в отдельный желудь с интерфейсом настроек.

Дополнительно

Расширенная справка по аннотациям и конфигурации — reference.md.

Документация: autumn-library.github.io.

Install via CLI
npx skills add https://github.com/yellow-hammer/skills-onescript --skill autumn
Repository Details
star Stars 37
call_split Forks 4
navigation Branch main
article Path SKILL.md
More from Creator
yellow-hammer
yellow-hammer Explore all skills →