@larionov_n

Как реорганизовать большое RIA SPA приложение?

Добрый день. Необходима консультация по выбору технологического стека для клиентской части. Расскажу что было, мы использовали extjs для разработки системы управления процессами, документами, задачами. Первую программу выпустили за +7 месяцев. Получилось +10 000 строк кода на Extjs. Начали второй проект который практический взял из себя 80% функционала первого проекта и требования к дизайну и UI выросли слишком сильно, что Extjs не подходит. Backend реализован на Java (Play Framework).

Я принял решение сменить Extjs на Backbone. За неделю подготовил технологический стек: Backbone + Marionette, Typescript, RequireJS, jQuery, Handlebars, SASS, nodejs, grunt + many externals libs. Сроки и цель доработать основные элементы интерфейса на уровень 50% от написанного (Управление справочниками - удаление, создание, обновление, верстка достаточно гибкого UI, MVC - RESTAPI).

Требования модульность, асинхронная подгрузка классов, компонентная архитектура для реиспользования виджетов, view. Начал собирать это все дело и застрял с Typescript. Слишком много с ним мороки, надо определить для всех библиотек типизацию, возращаемые значения, модульность вообще с ним строится тяжело, нельзя подгружать из internal модуля, external модуль, постоянно просто ошибки вываливаются, вроде как по ходу получается фиксить, но затормозило процесс разработки. Смотрел на CoffeScript он обратно не совместим с JS.

Вопрос: Что вы думаете о выбранном стеке? Забить ли на Typescript и писать на прототипах? Реально ли хорошо подходит Backbone + Marionette для фронтенда с набором +150-350 классов которые должны использовать все это: Statefull views, very smart history, async loading, many views, nested views, versions (documents, models), nested models?

Отдельно замечу, что мне показался Backbone более гибким чем AngularJS, Knockout, Ember. Но сама по себе библиотека очень голая, хочется подрубить к ней готовые компоненты из других либ, поверх Typescript - сейчас уже представляю себе это с трудом...
  • Вопрос задан
  • 2475 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Angular + Browserify в качестве сборщика модулей не рассматривали? Еще есть вариант с ES6 + traceur и другие трансляторы ES6 в ES5.

Смотрел на CoffeScript он обратно не совместим с JS

По сути так же как и TypeScript. Сорсмэпы есть, трансляторы есть, сборщики есть... построить процесс разработки не сильно сложно. И да, забейте на grunt и вооружитесь gulp-ом. Для больших проектов неслабо ускоряет процесс сборки.
Ответ написан
Dremkin
@Dremkin
Лучше всего заново ) изучить Extjs и продолжить писать на ней. Очень сложно представить себе задачу, которая была бы ей неподсильна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы