Краткий обзор 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.
Мини-карта для ИИ
CLASS→ тип объекта (множество объектов).= DATAили=с выражением → свойство.{ ... }без=→ действие (императивное).FORM→ описание интерфейса, запроса или отчёта.SHOW / DIALOG / PRINT→ открыть или напечатать форму.EXPORT / IMPORT→ внешние форматы для свойств и форм.GROUP / PARTITION→ агрегации значений.GROUP AGGR / AGGR→ агрегированные объекты.NEWSESSION / APPLY / canceled()→ управление сессией.EXTEND / ABSTRACT / += / +{→ точки расширения и полиморфизма.WHEN,<- WHEN→ события на изменение данных;ONвнутриFORM→ событие формы.Utils/Time/System/Authentication→ системные модули; там живут функции строк, чисел и дат,currentUser,currentDate.