CabloyJS — это полный стек фреймворк на Node.js с встроенным движком рабочих процессов, предназначенный для создания низко-кодовых приложений для разработчиков. Он реализует концепцию "разработка один раз, запуск везде", позволяющую одновременно создавать как B-конечные системы управления, так и C-конечные приложения. Одним набором кода можно обеспечивать работу как на ПК, так и на мобильных устройствах, причём мобильная версия имеет близкий к нативному опыт использования.
Каждое встроенное свойство CabloyJS тщательно откалибровано, чтобы обеспечить плавный переход от "коробочного решения" до "гибкой настройки". Включает в себя такие компоненты, как система ролей, аутентификация пользователя, права доступа меню, данные, формы, валидация форм, движок рабочих процессов, словарь, панели мониторинга, онлайн-推送, 页面主题,多语言支持,CMS引擎,微信接口和钉钉接口。
Cabloy5.0 использует TypeScript для глубинной рефакторизации всего стека, подробнее см.:
Backend | Frontend | |
---|---|---|
Old | js, egg2.0, mysql | js, vue2, framework7 |
New | ts, egg3.0, многоплатформенная база данных (поддерживает mysql, postgresql) | ts, vue3, quasar |
Сцена | Технологический стек |
---|---|
Frontend | vue2 + framework7 |
Backend | koa2 + egg2 |
База данных | mysql |
Распределённые технологии | redis, bullmq, websocket |
Редактирование Markdown | Prosemirror |
CabloyJS предлагает множество онлайн демонстраций:
Поэтому настоятельно рекомендуется посетить: онлайн демо.
Для добавления в официальную группу общения CabloyJS свяжитесь со мной через личное сообщение WeChat, указав: "Добавить в группу"
Если вы хотите использовать CabloyJS стек сразу же после установки, начните с изучения следующих руководств, чтобы получить первое представление о том, что значит "вынуть из коробки" и "гибкая настройка":
Все приложения, которые можно написать на JavaScript, будут когда-нибудь писаться на JavaScript | Закон Атвуда
На данный момент большинство фреймворков, связанных с NodeJS, рассматривают его как уровень инструментов, агрегации, промежуточного уровня или прокси, но мало кто работает над бизнес-логикой, считая её областью Java. Такой подход противоречит закону Атвуда.
Если вы хотите испытать другой опыт разработки полного стека NodeJS, попробуйте использовать открытый и полностью функциональный фреймворк CabloyJS. Чтобы повысить эффективность и качество разработки на уровне бизнес-логики, CabloyJS предоставляет множество полезных инструментов и компонентов как для фронта, так и для бэка.
В области разработки на NodeJS существуют несколько проблем на текущий момент (январь 2022 года):
Многие современные системы управления имеют хороший дизайн для персональных компьютеров, но мобильная версия часто является недостаточной и неудобной.
Кроме того, большинство "шаблонов административных систем" являются просто шаблонами кода. При использовании этих шаблонов для конкретных проектов, изменения становятся трудными, поскольку они затрудняют дальнейшие обновления и оптимизацию шаблона.
Хотя большинство фреймворков легко поддерживают CRUD, это не должно быть главным преимуществом NodeJS. Для глубокой работы в бизнес-логике, движок рабочих процессов является ключевым компонентом.
Многие бизнес-формы требуют более сложного дизайна, чем простое добавление или удаление полей. Большинство платформ низко-кодового программирования не предоставляют достаточных инструментов для такого уровня кастомизации.
Основываясь на вышеупомянутых проблемах, CabloyJS предлагает четыре ключевых функциональных и четыре ключевых архитектурных преимущества:
CabloyJS предлагает уникальный механизм адаптивного дизайна: одна и та же программа может работать на мобильных устройствах с близким к нативному опытом, а также на ПК с аналогичным уровнем удобства.
Просмотрите примеры на ПК и мобильных устройствах: https://test.cabloy.com/ , чтобы прочувствовать эту уникальную возможность.
Один раз определите JSON Schema, и она будет автоматически применяться для рендеринга форм на фронте и валидации данных на бэке.
CabloyJS использует ProseMirror для создания редактора Markdown, который сочетает в себе удобство использования и гибкость. Обычные пользователи могут использовать его без знаний Markdown, а профессионалы получают мощные возможности для быстрого ввода.
CabloyJS использует гибкость JavaScript и удобство JSON для создания движка рабочих процессов, который проще и легче в использовании, чем Activiti в мире Java.
Как платформа низко-кодового программирования, CabloyJS стремится объединить "готовое к использованию" и "гибкую настройку" в одном продукте. Это достигается благодаря модульной системе разработки и изоляции модулей. Для удовлетворения требований к разработке крупных бизнес-систем, CabloyJS использует "модульное мышление" для планирования архитектуры системы, организуя передние компоненты и логику серверной части в единую "ビジネскую модуль", связанную с конкретной бизнес-функцией (например, заявка на командировку). Это способствует концентрации и повторному использованию бизнес-функций, а также позволяет эффективно распределять задачи между членами команды по бизнес-функциям.
Кроме того, все элементы внутри бизнес-модуля, такие как страницы, данные, логика, маршруты, конфигурации и прочее, имеют изолированное пространство имён, что помогает избежать проблем с переменными и конфликтами между модулями. Другими словами, когда вы называете ресурс в своём бизнес-модуле, вам не стоит беспокоиться о том, существует ли ресурс с таким же названием в других бизнес-модулях, что снижает нагрузку на ваш мозг.
EggJS ориентирован на роль фреймворка для фреймворков, а backend CabloyJS основан на EggJS и использует механизм "настраиваемого Loader'а" для расширения и создания новых возможностей, адаптированных к бизнес-сценариям.
Например, существующий процесс модели "Worker + Agent" EggJS очень удобен для работы на одном компьютере. Однако при работе с многими машинами в кластере, особенно при использовании кластера Docker, "агентский процесс" становится малоэффективным. Более того, если начинать разработку с использованием "агентского процесса", переход к распределённой среде будет затруднителен. Поэтому backend CabloyJS использует Redis, чтобы начать проектирование нативной распределённой архитектуры уже на уровне фреймворка, и это привело к созданию целой серии распределённых компонентов разработки, таких как Broadcast, Queue, Schedule, Startup, что делает возможным начало работы с распределённой системой сразу после запуска проекта. Таким образом, когда система начинает расти, можно легко масштабировать её до кластера, см.: Broadcast, Queue, Schedule, Startup.
CabloyJS использует концепцию "множества экземпляров" для поддержки разработки SaaS-систем с множеством доменов и арендаторов. Нужно запустить всего один сервис backend, чтобы поддерживать работу нескольких экземпляров одновременно. Экземпляры используют общую структуру таблиц данных, но генерируемый во время выполнения контент является изолированным.
Сценарий | Front-end | Back-end |
---|---|---|
ПК: Web | Front-end CabloyJS | Back-end CabloyJS |
ПК: Desktop | Front-end CabloyJS + Electron | Back-end CabloyJS |
Мобильное устройство: iOS | Front-end CabloyJS + Cordova | Back-end CabloyJS |
Мобильное устройство: Android | Front-end CabloyJS + Cordova | Back-end CabloyJS |
Учетная запись WeChat | Front-end CabloyJS + API WeChat | Back-end CabloyJS |
WeChat Enterprise | Front-end CabloyJS + API WeChat Enterprise | Back-end CabloyJS |
DingTalk | Front-end CabloyJS + API DingTalk | Back-end CabloyJS |
Slack | Front-end CabloyJS + API Slack | Back-end CabloyJS |
Mini-Programs: WeChat, Alipay и т.д. | Uni-app + Front-end SDK CabloyJS | Back-end CabloyJS |
CabloyJS был запущен в разработку в 2016 году и прошел два этапа разработки:
Основное внимание EggBornJS уделяет модульной системе и изоляции модулей, благодаря чему реализуется полноценный стековый фреймворк для разработки.
Например, модуль egg-born-front является основным модулем front-end фреймворка, модуль egg-born-backend — основным модулем back-end фреймворка, а модуль egg-born — командной строкой для создания скелета проекта.
Именно поэтому все бизнес-модули имеют префикс названия egg-born-module-
EggBornJS представляет собой базовый стековый фреймворк для разработки, который может поддерживать быстрое развитие бизнеса, но для этого требуется учесть множество связанных с бизнесом характеристик, таких как движок workflow, управление пользователями, ролями, правами доступа, меню, параметрами, проверкой формы, механизмом входа и т.д. Особенно важно это в случае разделения front-end и back-end.
CabloyJS на основе EggBornJS предоставляет набор основных бизнес-модулей, которые обеспечивают ряд характеристик поддержки бизнеса, объединяет эти характеристики в единое целое, создавая гибкий и полезный надстрой, который поддерживает конкретные процессы разработки бизнеса.
Теперь, благодаря EggBornJS, кроме компонентов, могут быть переиспользованы и бизнес-модули.
Благодаря CabloyJS, вы можете быстро разрабатывать различные бизнес-приложения.
Все приложения, которые можно написать на JavaScript, будут написаны на JavaScript | Закон Atwood
Уверены, что глубокие исследователи JavaScript будут вдохновлены этой цитатой и вместе будут работать над улучшением экосистемы JavaScript, строя более процветающую экосистему приложений.
CabloyJS является попыткой следовать за этим законом. Приглашаем вас присоединиться к экосистеме CabloyJS, чтобы вместе способствовать процветанию JavaScript и его применению.
Происхождение этого имени довольно просто, потому что есть Egg (backend framework), стало быть, есть EggBorn. Есть анимационный фильм "Приключения Чебурашки", где главный герой зовется "Яйцеголовый". Я люблю этот фильм (неудачно выдал свой возраст 😅).
Cabloy происходит от заклинания из мира Smurfs, правильно произнеси Cabloy, и ты получишь волшебный эффект. Также, CabloyJS — это волшебство химии, основанное на сочетании модулей и биохимических реакций, позволяющее достичь любого желаемого результата.
Пожалуйста, добавьте мой личный WeChat, чтобы связаться со мной и присоединиться к группе, укажите: "Присоединиться"
MIT, бесплатное использование для коммерческих целей
You can comment after Login
Inappropriate content may be displayed here and will not be shown on the page. You can check and modify it through the relevant editing function
If you confirm that the content does not involve inappropriate language/advertisement redirection/violence/vulgar pornography/infringement/piracy/false/insignificant or illegal content related to national laws and regulations, you can click submit to make an appeal, and we will handle it as soon as possible.
Comments ( 0 )