Фреймворк для создания бизнес web-приложений

Публикация № 1133155

Разработка - Инструментарий разработчика - Прочие инструменты разработчика

web javascript framework

Для создания систем, решающих узкие бизнес задачи, использовать 1С бывает нецелесообразно. Хочу представить альтернативу - web фреймворк katejs. Будет интересно также тем, кто интересуется web разработкой на современном javascript.

Альтернатива

Не стоит сравнивать этот web-фреймворк и платформу 1С - это разные решения. Фреймворк также направлен на разработку бизнес приложений и также значительно экономит время, при сравнении с затратами создания таких приложений с нуля, но, разумеется, он в общем случае не может заменить платформу 1С. 

Идея

Приложения для бизнеса (CRM, PM, системы учета и т.п.) имеют похожую структуру, а при их разработке приходится выполнять множество однотипных задач (работа с СУБД, разработка интерфеса и т.п.).

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

Фреймворк берет на себя всю рутину web-разработки (никакой верстки, роутинга, работы с СУБД и т.п.), при этом не ограничивает в методах и подходах к написанию кода.

Демо

Общее впечатление об интерфейсе можно сложить посмотрев на скриншоты или вживую - Таск менеджер

Основа

Сервер использует koa в качестве http сервера и ORM Sequelize для работы с СУБД. Основной используемой базой данных является MySQL.

Интерфейс строится на React, используя стилизацию material-kit-react компонентов material-ui.

С чем придется иметь дело

Консоль

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

Javascript.

Единый язык на клиенте и сервере (Node.js). Современный язык - с классами, наследованием, ожиданием асинхронных операций.

Клиент-серверная архитектура

Две части кода - серверная и клиентская, общение через http.

СУБД

MySQL в общем случае, SQLite для совсем скромных решений. Для простых приложений прямые SQL запросы не нужны - встроенная ORM поможет получать все необходимые данные.

Для чего и для кого

Фреймворк позволяет относительно быстро разрабатывать несложные бизнес приложения. Позволяет и сложные - просто уже не быстро.

Будет интересен тем, кто интересуется web разработкой.

В архитектуру заложена модульность: разработанное решение сразу является модулем - с небольшими усилиями его можно сделать доступным для общественности. С другой стороны - можно использовать стороннее решение и модифицировать его - как структуру так и формы, не изменяя его код (если аккуратно все делать - изменения не придется вносить заново при обновлении стороннего решения).

В процессе решения различных задач на фреймворке было разработано порядка 10 разных модулей. Все эти модули доступны к использованию (документация пока есть только на три, но я буду дополнять ее по мере возможности).

Фреймворк распространяется бесплатно. Код модулей открыт.

На сколько фреймворк готов к работе в боевых условиях.

Эксплуатация решений на фреймворке началась в марте текущего года. На текущий момент реализовано 4 сложных проекта, в том числе две учетные системы. Все работают в проде.

Документация

Фреймворк достаточно полно документирован, документация доступна по ссылке https://docs.katejs.ru/ . Рекомендую читать первые три раздела подряд, а далее по потребности.

С чего начать

Для работы фреймворка потребуется

  1. GIT
  2. Node.js
  3. MySQL
  4. Редактор кода по вкусу (как вариант VS Code)

Все элементы нужно скачать, установить.

Для примера, опишу шаги для запуска демо приложения, разработка которого описывается в документации в разделе Руководство.

1. Создадим папку с приложением. Пусть это будет `C:\projects\katejs-demo`.

2. Откроем консоль - Командную строку, зайдем в папку проекта

C:\>cd c:\projects\katejs-demo

c:\projects\katejs-demo>

3. Получим код приложения из git репозитория (в конце точка, чтоб код распаковался в текущую папку)

c:\projects\katejs-demo>git clone https://github.com/romannep/katejs-tutorial.git .
Cloning into '.'...
remote: Enumerating objects: 228, done.
remote: Counting objects: 100% (228/228), done.
Receiving objects: 100% (228/228), 651.23 KiB | 0 bytes/s, done. (210/228)
Resolving deltas: 100% (134/134), done.0)R
remote: Compressing objects: 100% (110/110), done.
remote: Total 228 (delta 134), reused 203 (delta 109), pack-reused 0

c:\projects\katejs-demo>

4. Установим зависимости (займет некоторое время)

c:\projects\katejs-demo>npm install

5. Создадим базу данных test в MySQL (можно использовать идущий в комплекте MySQL Workbench)

6. Отредактируем файл `env.local.json` - нужно указать данные для подключения к СУБД и название базы данных

{
  "database": { 
    "host": "127.0.0.1",
    "database": "test",
    "username": "root",
    "password": ""
  },
  "http": {
    "port": 2002
  },
  "apiUrl": "http://localhost:2002/api"
}

7. Синхронизируем структуру БД

c:\projects\katejs-demo>npm run dev-dbsync

8. Запустим сервер

c:\projects\katejs-demo>npm run dev-server

9. Запустим клиентское приложение (нужна новая консоль)

C:\>cd c:\projects\katejs-demo

c:\projects\katejs-demo>npm run dev-client

10. Оценим результат

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

Вопросы

Отвечу на вопросы в комментариях. На предметные вопросы по работе с фреймворком могу ответить на форуме (киньте в личку ссылку на топик с вопросом).

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Рейтинг 1-го уровня
1. VmvLer 15.10.19 16:06 Сейчас в теме
опять 25
1С Vs Js

у каждого болота своя прелесть, только в одном большие, толстые и прожорливые жабы,
а во втором головастики, главная цель которых - выжить в грязи.
(с) передача "В мире животных"
cleaner_it; comol; CyberCerber; Hatson; DERL; +5 Ответить
3. Evil Beaver 7015 15.10.19 16:34 Сейчас в теме
Ну чо, отлично, только зачем это на инфостарте? Мы тут 1С-ники
CSiER; serega9507585993; comol; CyberCerber; +4 Ответить 2
26. neomatrix 253 20.10.19 12:48 Сейчас в теме
Статья полезная и актуальная, поставил + , пригодится тем кто интегрирует 1С с другими учетными системами. Такие кейсы встретились и в моей практике одинэсника.
Нужно было сделать проект B2C, где B - производство здесь (платформа 1С) , а С - там, за бугром (клиенты). Веб интерфейс не подошел, так как кириллица, а клиенты англоязычные. Не разобрался, можно ли было сделать разный язык, но проблема появилась в другом, интерфейс Веб клиента не пере настраивается и заказчикам не понравилось его юзабилити.
Задача решилась через разработку системы приема заказов на Bootsrap(HTML,CSS,JS) как frontend и Codeigniter3 в качестве backend REST API CRUD, для связи с базой сайта MySQL использовался "Внешний источник данных".
Второй случай делал уже на Materialize(front) + FastAPI Python (back). До этого пробовал React, Angular, Vue.
Vue мне понравился больше я даже более мене начал изучать его, но для моих не сложных задач, использование фреймворков на фронтэнде показалось несколько избыточным. Мое мировоззрение подкрепилось с прочтением Frameworkless Front-End Development, Francesco Strazzullo. К чему я это пишу, фреймворков в мире JS немало, для энтерпрайз разработки прожект менеджеры стараются использовать проверенные решения от именитых фирм, еще одному фреймворку пробиться будет ой как сложно, хотя если это частное решение, которое уже хорошо работает, тогда может в "замкнутом" мире 1С оно найдет своего поклонника.
Все ИМХО.
nep_i; acanta; +2 Ответить
7. Steelvan 96 15.10.19 20:33 Сейчас в теме
После трех предложение в разделе "Основа" среднему 1Снику можно перестать читать :)
Perfolenta; +1 Ответить
4. Varies 15.10.19 16:54 Сейчас в теме
А на этом можно написать http/web сервис "прокладку" между 1С ?
Чтобы заливать с бухгалтерии данные по оплате, а обработка в клиентских базах (УТ/УНФ/БП) обращалась для проверки этой оплаты.
11. andreosh 103 16.10.19 19:41 Сейчас в теме
Хорошо бы видеоуроки по данной теме сделать. С видеоуроков проще начинать обучение.
10. comol 4561 16.10.19 18:35 Сейчас в теме
Я не буду спрашивать зачем эта поделка...
Что нового добавляет данный фреймворк к связке react + koa... Это спросят на других форумах. Зачем это тут, 1С никам, которые подобные задачи делают за пару часов на экзамене...
2. paulpit 18 15.10.19 16:34 Сейчас в теме
Неплохо было бы посмотреть кейс работы с календарем.
27. GlebBR 25 17.07.20 08:48 Сейчас в теме
статья хорошая, будем смотреть пробовать.
Оставьте свое сообщение

См. также

re: Flowcon

О жизни Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Flowcon возвращается.

28.04.2021    1613    1c-intelligence    26    

10 полезных, но малоизвестных возможностей IS Toolkit

Консоль запросов Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Будет полезно пользователям Toolkit, а также тем, кому интересны возможности данного инструмента.

23.04.2021    1900    Evg-Lylyk    0    

Редактор схемы компоновки для тонкого клиента

Прочие инструменты разработчика v8 Бесплатно (free)

Аналог платформенного конструктора схемы компоновки данных для работы в тонком клиенте. Входит в состав набора "Универсальные инструменты 1С"

08.03.2021    2396    cprit    19    

Структура запроса (Infostart Toolkit)

Консоль запросов Прочие инструменты разработчика v8 v8::Запросы 1cv8.cf Бесплатно (free)

Описание механизма разбора запроса на части (дерево), используемого в IS Toolkit и Управляемой консоли отчетов

02.03.2021    1773    Evg-Lylyk    7    

Работа с СКД в продукте "Infostart Toolkit"

Прочие инструменты разработчика v8 v8::СКД Бесплатно (free)

Infostart Toolkit обладает большим количеством уникальных возможностей для работы с СКД – это анализ исполняемых текстов запросов, работа с внешними источниками в схеме СКД, получение данных в отладке и многое другое. Обо всех этих возможностях рассказал разработчик продукта Евгений Люлюк.

24.12.2020    2320    Evg-Lylyk    2    

Отладка в Infostart Toolkit

Консоль запросов Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

05.11.2020    3296    Evg-Lylyk    16    

paste1c.ru - сервис для обмена кодом для 1С:Предприятия

Прочие инструменты разработчика v8 Бесплатно (free)

Paste1C.ru - сервис для обмена кодом для 1С:Предприятия c подсветкой синтаксиса и подсказками.

21.08.2020    6417    salexdv    48    

Редактор HTML

Инструментарий разработчика Прочие инструменты разработчика v8 1cv8.cf Россия Бесплатно (free)

Инструмент из состава набора "Универсальные инструменты 1С" для быстрой адаптации html страниц для корректного отображения в Поле HTML документа

03.08.2020    2441    cprit    3    

Консоль кода и зачем она нужна

Прочие инструменты разработчика v8 Бесплатно (free)

Когда использовать, обзор консолей кода: плюсы - минусы.

27.07.2020    5986    Evg-Lylyk    47    

Шпаргалка. Автоматическое тестирование внешних отчетов и обработок в нескольких информационных базах

Прочие инструменты разработчика v8 Бесплатно (free)

Используем Автоматизированное тестирование на практике. Простой код для обновления и запуска внешних отчетов и обработок в нескольких ИБ. Создаем рабочее решение с нуля.

02.05.2020    5008    pparshin    21    

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    9567    Evg-Lylyk    0