S ShaoShurProject / Script Toolkit
Public repository · Qlik Script

Qlik Script Toolkit

Модульные
Qlik-скрипты.

Вместо растущих header.qvs и footer.qvs — независимые библиотеки подпрограмм. Каждый QVS-модуль работает как единственный экземпляр со своим публичным интерфейсом, состоянием, справкой, тестом и очисткой.

Авторский разбор и обсуждение проекта — в канале ShurQlik ↗

LIBCONNECTION.QVS / TRACE
INCLUDE LIBRARYЛЛМ
2 modules found
МодельModule singleton
ПодключениеОдна строка
Контрактinfo / test / clear
Для AI-агентовSkills + conventions

Библиотека вместо списка
MUST_INCLUDE.

pInclude подключает выбранную группу модулей. Загрузчик обходит её каталог, находит QVS-файлы и собирает обработчики очистки — приложение не нужно менять при появлении нового файла в библиотеке.

01 / BASE

Scripts.qvs

Подключает общий загрузчик и единые правила работы модулей.

02 / INCLUDE

$(pInclude(ЛЛМ))

Подключение библиотек одной строкой.

03 / DISCOVER

FileList(/*.qvs)

Новые файлы библиотеки находятся и подключаются автоматически.

04 / CLEAR

<Module>_clear

Каждый модуль сам описывает очистку своего временного состояния.

15 строк или 500 тысяч.
Структура сохраняется.

Подход разделяет логирование, контроль качества, разработку и другие задачи на самостоятельные библиотеки. Масштаб проекта перестаёт влиять на читаемость основного скрипта приложения.

Одна задача — один файлМодуль можно развивать, тестировать и передавать отдельно от остальных библиотек.

Понятный публичный интерфейсРазработчику доступны только описанные методы; внутреннюю реализацию не нужно знать для использования.

Обмен внутри сообществаQVS-файл, собранный по общим соглашениям, можно добавить в библиотеку без ручного списка подключений.

Подключить.
Выполнить.
Завершить.

Один базовый include и одна строка на нужную библиотеку. Подробная установка и настройка окружения остаются в README репозитория.

APP SCRIPT / QUICKSTARTQLIK SCRIPT
$(MUST_INCLUDE=lib://*/Scripts/Scripts.qvs); // подключаем общий скрипт
$(pInclude(ККД)); // подключаем библиотеку скриптов

// Работаем

Call Exit;

Понятен разработчику.
Понятен AI-агенту.

В репозитории лежат skills для создания QVS-модулей, а CONVENTIONS.md задаёт общие правила имён, интерфейсов, тестирования и очистки.

AI SKILLS

Генерация модулей

Агент получает специализированные инструкции и создаёт новый QVS-файл в рамках принятого контракта.

CONVENTIONS

Предсказуемые имена

Общие соглашения снижают риск конфликтов. Системные переменные toolkit используют зарезервированный префикс p.

PUBLIC / INTERNAL

Условная инкапсуляция

Публичные методы явно перечислены в справке, а служебные подпрограммы остаются внутренней реализацией модуля.

<MODULE>_INFO

Встроенная документация

Модуль сообщает назначение, ответственного, параметры, публичные методы и пример использования.

<MODULE>_TEST

Воспроизводимый пример

Тестовый вызов демонстрирует работу модуля без production-данных и помогает проверить результат после изменений.

<MODULE>_CLEAR

Собственная очистка

Модуль удаляет созданные переменные и временные объекты, не оставляя служебное состояние в итоговой модели.

TraceTimer:
от вызова до лога.

Тестовое приложение подключает библиотеку ЛЛМ, несколько раз вызывает модуль измерения времени и показывает результат в журнале загрузки.

Использовать.
Обсуждать. Дополнять.

Код живёт на GitHub, а новые идеи и практические заметки по Qlik — в канале ShurQlik.