2. В прошлом
● NetCracker
● Гос. заказ. Разрабатывал платформу для
быстрого построения ERP-систем
(приобретена Московской Биржей)
Сейчас
● Фрилансер в Infuse (Сан-Франциско) через
Toptal
● Со-основатель в AllcountJS
О себе
2
10. ● CRUD
● Формы, таблицы, множество типов полей
● Безопасность, списки контроля доступа
● Бизнес логика
● API, интеграции и синхронизация данных
● Миграции БД
● Аналитические запросы и отчеты
Enterprise приложение
10
11. ● B2B продукты не могут закрыть все
потребности
● Разрабатывать Enterprise системы
“с нуля” дорого и сложно
● Покупать готовые решения и
кастомизировать еще дороже и не
всегда лучше
Enterprise: проблемы
11
12. ● Что сделает Enterprise разработку
дешевле и доступнее?
● Какой технологический стек будет в
будущем доминировать в Enterprise?
Enterprise: вопросы
12
14. ● В будущем самая большая
экосистема
● Один язык для клиента и сервера
● Event-driven и асинхронный
● Скромный объем потребляемой
памяти для Node.js
JavaScript для Enterprise?
14
25. Проблемы Admin панелей
● Интерфейсы admin панелей
○ трудно переиспользовать
○ зачастую не переопределяются
● Не поддерживаются сложные случаи
распределения прав доступа
26. Admin панели: выводы
● Позволяют быстро создавать CRUD
интерфейсы для всего приложения
● Есть проблемы с гибкостью
30. AllcountJS: Features
● Из коробки: кроссплатформенный web & mobile UI
(ionic), REST API, Безопасность
● Переопределение стандартного поведения через
Dependency Injection
● Не зависит от БД и Frontend
30
33. AllcountJS
Пример кастомизации UI
//...
div(ng-controller="PosController")
div // кнопки
div(lc-list="'Item'", paging="{}")
button(
ng-repeat="item in items",
ng-click="addItem(item)"
)
// … item content
div // Сумма и операции
h1 Total: {{viewState.editForm.entity().total}}
// … actions
div // Форма заказа справа
+defaultEditForm()(ng-show="true")
+defaultFormTemplate()
33
34. AllcountJS
Пример кастомизации UI
//...
div(ng-controller="PosController")
div // кнопки
div(lc-list="'Item'", paging="{}")
button(
ng-repeat="item in items",
ng-click="addItem(item)"
)
// … item content
div // Сумма и операции
h1 Total: {{viewState.editForm.entity().total}}
// … actions
div // Форма заказа справа
+defaultEditForm()(ng-show="true")
+defaultFormTemplate()
34
35. AllcountJS
Пример кастомизации UI
//...
div(ng-controller="PosController")
div // кнопки
div(lc-list="'Item'", paging="{}")
button(
ng-repeat="item in items",
ng-click="addItem(item)"
)
// … item content
div // Сумма и операции
h1 Total: {{viewState.editForm.entity().total}}
// … actions
div // Форма заказа справа
+defaultEditForm()(ng-show="true")
+defaultFormTemplate()
35
36. AllcountJS
Пример кастомизации UI
//...
div(ng-controller="PosController")
div // кнопки
div(lc-list="'Item'", paging="{}")
button(
ng-repeat="item in items",
ng-click="addItem(item)"
)
// … item content
div // Сумма и операции
h1 Total: {{viewState.editForm.entity().total}}
// … actions
div // Форма заказа справа
+defaultEditForm()(ng-show="true")
+defaultFormTemplate()
36
51. Заключение
● Экосистема Node.js достаточно развита для Enterprise
● AllcountJS
○ сокращает путь к технологиям для бизнеса
○ позволяет строить свои реализации отображения
доменной модели в технологии
51