1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhennann-cabloy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Что такое CabloyJS

CabloyJS — это полный стек фреймворк на Node.js с встроенным движком рабочих процессов, предназначенный для создания низко-кодовых приложений для разработчиков. Он реализует концепцию "разработка один раз, запуск везде", позволяющую одновременно создавать как B-конечные системы управления, так и C-конечные приложения. Одним набором кода можно обеспечивать работу как на ПК, так и на мобильных устройствах, причём мобильная версия имеет близкий к нативному опыт использования.

Каждое встроенное свойство CabloyJS тщательно откалибровано, чтобы обеспечить плавный переход от "коробочного решения" до "гибкой настройки". Включает в себя такие компоненты, как система ролей, аутентификация пользователя, права доступа меню, данные, формы, валидация форм, движок рабочих процессов, словарь, панели мониторинга, онлайн-推送, 页面主题,多语言支持,CMS引擎,微信接口和钉钉接口。

Лицензия MIT
Версия NPM
Юнит тест
Объем покрытия тестами
Скачивание NPM
Lerna

Предварительный просмотр Cabloy5.0

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 предлагает множество онлайн демонстраций:

  1. Как одновременно разрабатывать B-конечные системы управления и C-конечные приложения одним набором кода.
  2. Как одновременно поддерживать работу на ПК и мобильных устройствах одним набором кода, причём мобильная версия имеет близкий к нативному опыт использования.

Поэтому настоятельно рекомендуется посетить: онлайн демо.

Официальные группы общения CabloyJS

Для добавления в официальную группу общения CabloyJS свяжитесь со мной через личное сообщение WeChat, указав: "Добавить в группу"

wx-zhennann

Начало работы

Если вы хотите использовать CabloyJS стек сразу же после установки, начните с изучения следующих руководств, чтобы получить первое представление о том, что значит "вынуть из коробки" и "гибкая настройка":

0. Создайте первый проект CabloyJS

1. Начало работы с "вынутым из коробки"

2. Начало гибкой настройки

Введение

Все приложения, которые можно написать на JavaScript, будут когда-нибудь писаться на JavaScript | Закон Атвуда

На данный момент большинство фреймворков, связанных с NodeJS, рассматривают его как уровень инструментов, агрегации, промежуточного уровня или прокси, но мало кто работает над бизнес-логикой, считая её областью Java. Такой подход противоречит закону Атвуда.

Если вы хотите испытать другой опыт разработки полного стека NodeJS, попробуйте использовать открытый и полностью функциональный фреймворк CabloyJS. Чтобы повысить эффективность и качество разработки на уровне бизнес-логики, CabloyJS предоставляет множество полезных инструментов и компонентов как для фронта, так и для бэка.

Какие проблемы решает CabloyJS?

В области разработки на NodeJS существуют несколько проблем на текущий момент (январь 2022 года):

1. Как сделать адаптивный дизайн для мобильных устройств?С распространением и развитием мобильных устройств многие бизнес-сценарии требуют поддержки мобильных устройств. Например, руководители могут проверять статистические данные и одобрять операции через свои телефоны; специалисты по обслуживанию могут контролировать состояние серверов и выполнять необходимые действия.

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

Кроме того, большинство "шаблонов административных систем" являются просто шаблонами кода. При использовании этих шаблонов для конкретных проектов, изменения становятся трудными, поскольку они затрудняют дальнейшие обновления и оптимизацию шаблона.

2. Отсутствие хорошего движка рабочих процессов!

Хотя большинство фреймворков легко поддерживают CRUD, это не должно быть главным преимуществом NodeJS. Для глубокой работы в бизнес-логике, движок рабочих процессов является ключевым компонентом.

3. Драг-эн-дроп методика низко-кодового программирования стала бесполезной!

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

Главные особенности CabloyJS

Основываясь на вышеупомянутых проблемах, CabloyJS предлагает четыре ключевых функциональных и четыре ключевых архитектурных преимущества:

1. Четыре ключевых функциональных преимущества

  1. Адаптивный дизайн: PC = мобильные устройства + планшеты

CabloyJS предлагает уникальный механизм адаптивного дизайна: одна и та же программа может работать на мобильных устройствах с близким к нативному опытом, а также на ПК с аналогичным уровнем удобства.

Просмотрите примеры на ПК и мобильных устройствах: https://test.cabloy.com/ , чтобы прочувствовать эту уникальную возможность.

  1. Автоматическое рендеринг форм и валидация данных на основе JSON Schema

Один раз определите JSON Schema, и она будет автоматически применяться для рендеринга форм на фронте и валидации данных на бэке.

  1. Редактор Markdown с WYSIWYG и движок рендеринга

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

  1. Встроенный движок рабочих процессов на NodeJS

CabloyJS использует гибкость JavaScript и удобство JSON для создания движка рабочих процессов, который проще и легче в использовании, чем Activiti в мире Java.

2. Четыре ключевых архитектурных преимущества

Как платформа низко-кодового программирования, CabloyJS стремится объединить "готовое к использованию" и "гибкую настройку" в одном продукте. Это достигается благодаря модульной системе разработки и изоляции модулей. Для удовлетворения требований к разработке крупных бизнес-систем, CabloyJS использует "модульное мышление" для планирования архитектуры системы, организуя передние компоненты и логику серверной части в единую "ビジネскую модуль", связанную с конкретной бизнес-функцией (например, заявка на командировку). Это способствует концентрации и повторному использованию бизнес-функций, а также позволяет эффективно распределять задачи между членами команды по бизнес-функциям.

Кроме того, все элементы внутри бизнес-модуля, такие как страницы, данные, логика, маршруты, конфигурации и прочее, имеют изолированное пространство имён, что помогает избежать проблем с переменными и конфликтами между модулями. Другими словами, когда вы называете ресурс в своём бизнес-модуле, вам не стоит беспокоиться о том, существует ли ресурс с таким же названием в других бизнес-модулях, что снижает нагрузку на ваш мозг.

  1. Нативная распределённая архитектура, поддерживающая кластерное развертывание

EggJS ориентирован на роль фреймворка для фреймворков, а backend CabloyJS основан на EggJS и использует механизм "настраиваемого Loader'а" для расширения и создания новых возможностей, адаптированных к бизнес-сценариям.

Например, существующий процесс модели "Worker + Agent" EggJS очень удобен для работы на одном компьютере. Однако при работе с многими машинами в кластере, особенно при использовании кластера Docker, "агентский процесс" становится малоэффективным. Более того, если начинать разработку с использованием "агентского процесса", переход к распределённой среде будет затруднителен. Поэтому backend CabloyJS использует Redis, чтобы начать проектирование нативной распределённой архитектуры уже на уровне фреймворка, и это привело к созданию целой серии распределённых компонентов разработки, таких как Broadcast, Queue, Schedule, Startup, что делает возможным начало работы с распределённой системой сразу после запуска проекта. Таким образом, когда система начинает расти, можно легко масштабировать её до кластера, см.: Broadcast, Queue, Schedule, Startup.

  1. Нативная поддержка множества экземпляров/множества доменов/множества арендаторов, поддерживает разработку SaaS-систем

CabloyJS использует концепцию "множества экземпляров" для поддержки разработки SaaS-систем с множеством доменов и арендаторов. Нужно запустить всего один сервис backend, чтобы поддерживать работу нескольких экземпляров одновременно. Экземпляры используют общую структуру таблиц данных, но генерируемый во время выполнения контент является изолированным.

  1. Разделение front-end и back-end, полносистемное кросс-платформенное развитиеС помощью архитектурного разделения front-end и back-end можно быстро развивать бизнес-приложения для всех платформ.
Сценарий 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
  • Back-end: Из-за полного разделения front-end и back-end, достаточно разработать одну версию кода back-end CabloyJS.
  • Front-end: Для всех сценариев, основанных на H5, достаточно разработать одну версию кода front-end CabloyJS.
  • Mini-Programs: Предоставляет Front-end SDK CabloyJS для легкого соединения Uni-app с back-end CabloyJS.

Какие системы можно разрабатывать с помощью CabloyJS?

  1. Можно разрабатывать SaaS-системы с множеством арендаторов.
  2. Можно разрабатывать front-end/back-end разделённые системы управления бизнесом, такие как OA, CRM, ERP, электронная торговля и т.д.
  3. Можно разрабатывать CMS-системы управления содержимым в соответствии с JAMStack архитектурой, поддерживающие оптимизацию для поисковых систем, такие как блоги, технические документы, сообщества, магазины знаний и т.д.
  4. Можно сначала разрабатывать систему управления бизнесом, а затем расширяться до CMS-системы управления содержимым; или наоборот, сначала разрабатывать CMS-систему управления содержимым, а затем расширяться до системы управления бизнесом.
  5. Можно использовать Cordova для разработки различных мобильных приложений, поддерживающих iOS и Android.
  6. Можно использовать Electron для разработки приложений для рабочего стола.
  7. Можно разрабатывать приложения для различных платформ, таких как учётные записи WeChat, WeChat Enterprise, DingTalk и т.д., решая проблему информационных островов.
  8. Можно разрабатывать back-end API для mini-program Uni-app.

История развития CabloyJS

CabloyJS был запущен в разработку в 2016 году и прошел два этапа разработки:

1. Первый этап: EggBornJS

Основное внимание EggBornJS уделяет модульной системе и изоляции модулей, благодаря чему реализуется полноценный стековый фреймворк для разработки.

Например, модуль egg-born-front является основным модулем front-end фреймворка, модуль egg-born-backend — основным модулем back-end фреймворка, а модуль egg-born — командной строкой для создания скелета проекта.

Именно поэтому все бизнес-модули имеют префикс названия egg-born-module-

2. Второй этап: CabloyJS

EggBornJS представляет собой базовый стековый фреймворк для разработки, который может поддерживать быстрое развитие бизнеса, но для этого требуется учесть множество связанных с бизнесом характеристик, таких как движок workflow, управление пользователями, ролями, правами доступа, меню, параметрами, проверкой формы, механизмом входа и т.д. Особенно важно это в случае разделения front-end и back-end.

CabloyJS на основе EggBornJS предоставляет набор основных бизнес-модулей, которые обеспечивают ряд характеристик поддержки бизнеса, объединяет эти характеристики в единое целое, создавая гибкий и полезный надстрой, который поддерживает конкретные процессы разработки бизнеса.

Теперь, благодаря EggBornJS, кроме компонентов, могут быть переиспользованы и бизнес-модули.

Благодаря CabloyJS, вы можете быстро разрабатывать различные бизнес-приложения.

Верования

Все приложения, которые можно написать на JavaScript, будут написаны на JavaScript | Закон Atwood

Уверены, что глубокие исследователи JavaScript будут вдохновлены этой цитатой и вместе будут работать над улучшением экосистемы JavaScript, строя более процветающую экосистему приложений.

CabloyJS является попыткой следовать за этим законом. Приглашаем вас присоединиться к экосистеме CabloyJS, чтобы вместе способствовать процветанию JavaScript и его применению.

Происхождение названия

1. EggBorn

Происхождение этого имени довольно просто, потому что есть Egg (backend framework), стало быть, есть EggBorn. Есть анимационный фильм "Приключения Чебурашки", где главный герой зовется "Яйцеголовый". Я люблю этот фильм (неудачно выдал свой возраст 😅).

2. Cabloy

Cabloy происходит от заклинания из мира Smurfs, правильно произнеси Cabloy, и ты получишь волшебный эффект. Также, CabloyJS — это волшебство химии, основанное на сочетании модулей и биохимических реакций, позволяющее достичь любого желаемого результата.

Ресурсы

- Англоязычные

- Китайскоязычные

- Официальные группы CabloyJS

Пожалуйста, добавьте мой личный WeChat, чтобы связаться со мной и присоединиться к группе, укажите: "Присоединиться"

wx-zhennann

Лицензия

MIT, бесплатное использование для коммерческих целей

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zhennann-cabloy.git
git@api.gitlife.ru:oschina-mirror/zhennann-cabloy.git
oschina-mirror
zhennann-cabloy
zhennann-cabloy
master