Перейти к основному содержимому
Версия: 7.0

Краткий обзор lsFusion

Краткий обзор элементов lsFusion для ИИ-агентов

Эта статья — ВЕРХ ветки brief: модель в общих чертах плюс карта, которая говорит, какую статью открыть. Она сознательно не является сокращённой версией этих статей. Того, что здесь есть, достаточно, чтобы классифицировать задачу и ответить на грубый концептуальный вопрос.

Какая ветка: language — синтаксис инструкций и операторов; paradigm — концепции и библиотеки системных модулей; how-to — рецепты задач. Эти три ищутся инструментом lsfusion_retrieve_docs; если не уверены, какая именно, — не указывайте фильтр, поиск пойдёт по всем трём и объединит их.

По веткам brief и rules поиск не выполняется. Каждая из них — небольшой набор статей, которые запрашиваются по имени и отдаются целиком инструментом lsfusion_get_guidance: brief говорит, что область предлагает, rules — какие ограничения действуют при её использовании. Карта rules в верхней статье Rules указывает, когда чтение её статьи становится обязательным.

Модель

  • Класс — множество объектов. Им типизируется всё остальное: свойство или действие подписано классами своих параметров.
  • Свойство вычисляет факт и ничего не меняет. Оно либо хранимое (DATA), либо вычисляемое из выражения.
  • Действие меняет состояние. Свойства говорят, что верно; действия — как это меняется.
  • Форма описывает объекты и показываемые для них свойства, и одно и то же описание обслуживает интерактивное представление, печатное и структурное.
  • Изменения не доходят до базы данных по мере внесения. Они накапливаются в сессии изменений, пока APPLY их не запишет или CANCEL не отбросит.
  • Проект собирается из модулей; как данные хранятся и за счёт чего работают быстро — это физическая модель, а обмен с чем угодно снаружи — интеграция.

Два непонимания, которые стоит снять заранее, потому что от них зависит всё дальнейшее:

  • Класс не отображается в таблицу. Таблица хранит значения свойств; её ключевые поля хранят идентификаторы объектов и типизируются классами параметров этих свойств.
  • Системные модули — это библиотека обычных свойств и действий, а не встроенные операторы языка. Неявно подключается только System, остальным нужен REQUIRE, чтобы их объявления стали доступны.

Статьи brief — какую открыть

Четыре статьи, читаются целиком вызовом lsfusion_get_guidance(brief='<имя>'). Сопоставлять можно по любому столбцу: намерение описывает задачу словами пользователя, якоря — то, как выглядит код.

имяоткрывать, когда задача —языковые якоря
logicвычислить, сохранить, изменить, агрегировать, ограничить данные или отреагировать на их изменениеCLASS, DATA, =, GROUP, PARTITION, AGGR, <-, NEW, FOR, WHILE, WHEN, <- WHEN, CONSTRAINT, NEWSESSION, APPLY
viewпоказать данные человеку — форма, её расположение, меню, отчёт — или локализовать то, что он читаетFORM, OBJECTS, PROPERTIES, FILTERS, SHOW, DIALOG, DESIGN, PRINT, NAVIGATOR, WINDOW, заголовки с {id}
physicalуправлять хранением или скоростью, организовать модули, расширить или сгенерировать объявления, переименовать уже существующееTABLE, MATERIALIZED, INDEX, MODULE, REQUIRE, NAMESPACE, EXTEND, META, @, migration.script
integrationпередать данные внутрь или наружу, дать другой системе вызвать себяIMPORT, EXPORT, JSON FROM, EXTERNAL, INTERNAL, FORMULA, HTTP-точки

Где области пересекаются — читать обе:

  • событие формы (ON внутри FORM) — это logic по тому, что оно делает, и view по тому, где оно живёт;
  • импорт или экспорт ФОРМЫ — это integration по обмену и view по форме, через которую он идёт;
  • MATERIALIZED-свойство — это logic по тому, что оно вычисляет, и physical по тому, чего это стоит;
  • расширение элемента — это physical по механизму и область расширяемого элемента по смыслу.

Эксплуатация результата — параметры запуска, интерфейс пользователя, политика безопасности, планировщик, резервные копии, мониторинг, логи, профайлер — собственной статьи brief не имеет. Ищите это в ветке paradigm.

Мини-карта для ИИ

  1. CLASS → тип объекта (множество объектов).
  2. = DATA или = с выражением → свойство.
  3. { ... } без = → действие (императивное).
  4. FORM → описание интерфейса, запроса или отчёта.
  5. SHOW / DIALOG / PRINT → открыть или напечатать форму.
  6. EXPORT / IMPORT → внешние форматы для свойств и форм.
  7. GROUP / PARTITION → агрегации значений.
  8. GROUP AGGR / AGGR → агрегированные объекты.
  9. NEWSESSION / APPLY / canceled() → управление сессией.
  10. EXTEND / ABSTRACT / += / +{ → точки расширения и полиморфизма.
  11. WHEN, <- WHEN → события на изменение данных; ON внутри FORM → событие формы.
  12. Utils / Time / System / Authentication → системные модули; там живут функции строк, чисел и дат, currentUser, currentDate.