Платформа Tequila Framework (далее — TeqFW) создана для упрощения распределённой разработки JavaScript-приложений слабо связанными командами разработчиков. Она полностью поддерживает ES6-модули, предоставляя уникальный подход к внедрению зависимостей и отказу от раннего связывания кода. Этот документ даёт общее понимание философии TeqFW, а для детализированных инструкций и примеров обращайтесь к другим документам в базе знаний.
Основные идеи TeqFW включают:
- Использование чистого JavaScript без необходимости трансляции;
- Опору на JSDoc вместо TypeScript для описания типов;
- Модульную архитектуру на базе ES6-модулей;
- Применение принципа инверсии контроля (IoC);
- Поддержку уникальных пространств имён для адресации модулей;
- Использование шаблонов для унификации структуры кода;
- Набор соглашений, облегчающих распределённую разработку;
- Чёткое разделение данных и функций в соответствии с принципами Гарвардской архитектуры;
- Возможность динамической загрузки ES6-модулей из CDN во время выполнения.
TeqFW работает исключительно с чистым JavaScript без необходимости трансляции кода, что упрощает отладку и ускоряет процесс разработки. Это позволяет разработчикам писать и проверять код напрямую без лишних шагов конверсии.
Резюме: Отказ от трансляции кода упрощает разработку и улучшает совместимость с разными средами.
Вместо использования TypeScript в TeqFW применяются JSDoc-аннотации для описания типов данных. Это облегчает работу с кодом, позволяет проводить статический анализ в IDE и обеспечивает свободу в разработке, которую TypeScript ограничивает более строгой типизацией.
Резюме: JSDoc обеспечивает преимущества типизации без жёстких ограничений, упрощая работу в разных средах.
TeqFW использует ES6-модули как основную единицу структуры приложений. Каждый модуль может экспортировать отдельные
сущности, а зависимости внедряются через конструкторы или фабрики. Модули объединяются в npm-пакеты, управляемые через
package.json
. Файл teqfw.json
добавляет в npm-пакет информацию, необходимую для работы платформы TeqFW, например,
правила преобразования пространств имён в файловую структуру для нахождения исходных кодов.
Резюме: ES6-модули обеспечивают модульность и гибкость структуры кода, управляемого через npm.
Подробнее о структуре модулей TeqFW читайте в документе "Модульная система TeqFW".
Основная идея IoC в TeqFW заключается в отказе от статического импорта модулей. Это обеспечивает единообразие работы как в браузере, так и в Node.js, позволяя разработчикам сосредотачиваться на высокоуровневой архитектуре, откладывая конкретизацию реализаций до запуска приложения.
Резюме: Инверсия контроля облегчает переносимость и модульность, позволяя сосредоточиться на архитектуре.
Пространства имён используются для эффективного управления зависимостями. Имя файла или класса в teq-плагине должно отражать его местоположение в кодовой базе, что упрощает навигацию и поиск нужных модулей.
Резюме: Пространства имён позволяют эффективно управлять модулями и зависимостями.
Узнайте больше о пространствах имён в разделе "Работа с пространствами имён в TeqFW".
TeqFW использует шаблоны для организации кода по типам компонентов, что помогает поддерживать единообразие структуры. Например, код может быть организован как DTO, сервисы, контроллеры и т.д.
Резюме: Шаблоны помогают стандартизировать код и улучшить его организацию.
Строгое следование соглашениям помогает разработчикам быстрее включаться в проект и упрощает совместную работу в распределённых командах. Стандартизация структуры кода, именования файлов и организации компонентов делает разработку более предсказуемой и масштабируемой.
Резюме: Соглашения упрощают распределённую разработку, делая код единообразным и предсказуемым.
Код в приложениях TeqFW делится на код, описывающий структуры данных (DTO), и код, обрабатывающий эти данные. Обработчики данных работают по функциональной парадигме, максимально полагаясь на входные данные и минимизируя зависимость от внешних состояний.
Резюме: Разделение данных и функций упрощает поддержку и модульность кода.
Подробнее о DTO и обработчиках данных читайте в документе "Работа с данными в TeqFW".
TeqFW предоставляет возможность динамической загрузки ES6-модулей во время выполнения приложения в браузере. Используя
dynamic import
и такие CDN, как JsDelivr или Unpkg, Контейнер Объектов может загружать любые модули напрямую из
реестра npm-пакетов. Это означает, что приложения на платформе TeqFW могут обращаться к любому доступному ES6-модулю без
предварительной установки или сборки, что значительно расширяет возможности и гибкость разработки.
Резюме: Динамическая загрузка модулей из CDN позволяет приложениям гибко подключать зависимости во время выполнения, используя широкий спектр пакетов из npm-реестра.
TeqFW предоставляет мощный набор инструментов и подходов для эффективной и гибкой разработки JavaScript-приложений. Используя чистый JavaScript, JSDoc, модульную архитектуру и другие описанные идеи, разработчики могут создавать масштабируемые и поддерживаемые приложения, легко интегрируя новые модули и работая в распределённых командах.