Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   SPA архитектура (https://javascript.ru/forum/offtopic/50629-spa-arkhitektura.html)

l-liava-l 05.10.2014 04:12

SPA архитектура
 
Всем Привет! :)

Воображаемое облачное приложение - это большой список задач 1000+ (тудушки)

Каждая задача достаточно обьемна и содержит в себе этапы, сроки, всякие статусы, приритеты, исполнителей, комментарии и тд. Все это можно менять.

Список можно фильтровать по тэгам, алфавиту, дате, статусам, приоритетам.. короче почти по всем пунктам.

Какая больше подходит архитектура, с учетом того что должно работать и на мобильных?

1) Снять все обязанности с фронта и доверить фильтрацию серверу,
каждое изменение отдавать его величеству. (гоняем большие json-ы)
+ Легко реализовать.
- 100 маленьких компаний, по 1000 задач в каждой, и 600 человеками прсото ddos-нут сервер, придется тратится на железо.;)
- Отзывчивостью и не пахло(и старничку обновлять нид, чтобы изменения подтянуть), особенно плохо если гонять по 3г

2) Каждый пользователь асинхронно скачивает себе дамп задач и записывает в локальное хранилище, далее работает исключительно с ним, Каждое изменение попадает в планировщик, а тот уже синхронизирует с сервером. Остальные могут получать изменения например по сокетам.

- Сложнее реализовать, т.к много тонких мест.
+ Можно работать в офлайне или со слабым инетом
+ Можно юзать более дешевое железо
- Отзывчивость сильно зависит от мощности девайса, но грамотное кэширование, кусочек асинхронности и все будет летать.

3) другие способы??


А что Вы думаете по этому поводу? :)

Опять с бэкендером спорил..)

nerv_ 05.10.2014 13:48

п.1

Я сейчас чем-то подобным занимаюсь.

По сути у нас есть конструктор таблиц (конфигурируется с сервера)
т.е. вся таблица строится динамически на клиенте (колонки, фильтры etc.)

https://yadi.sk/i/jIyrSM98bphUv

kobezzza 05.10.2014 14:00

Если тебе не нужна работа offline, то не заморачивайся и делай всё на сервере.

Gozar 05.10.2014 14:24

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

Похоже, что тебе нужен именно третий вариант. Сначала гонять все на сервер, а затем посмотреть, что можно оптимизировать(кэшировать) и сделать допил.

l-liava-l 05.10.2014 14:36

Цитата:

100 компаний моментально сделают тебе git из твоего приложения, если не синхронизировать постоянно.
Каждая компания живет в отдельной песочнице. Косяк п.2 в том что запилить сложно?
Я просто думал что нагрузку на сервер нужно уменьшать по возможности, и такие вещи как например фильтрация поручать клиенту, а тогда так или иначе нужно отдавать ему дамп, или хотя бы модели, чтобы он отфилтровал.

Aetae 05.10.2014 14:57

Если не указано иного считаем что клиент работает с утюга.)

l-liava-l 05.10.2014 15:07

Наверное регулярно ругаюсь с бэкендерами пттому что хочу сделать клиет толще))

nerv_ 05.10.2014 15:53

Цитата:

Сообщение от l-liava-l
Я просто думал что нагрузку на сервер нужно уменьшать по возможности

только не в том месте, в кот. ты хочешь это сделать

Цитата:

Сообщение от Aetae
Если не указано иного считаем что клиент работает с утюга.)

с сапога :D

Цитата:

Сообщение от l-liava-l
Наверное регулярно ругаюсь с бэкендерами пттому что хочу сделать клиет толще))

жирным и неповоротливым :)

l-liava-l 05.10.2014 16:59

Цитата:

только не в том месте, в кот. ты хочешь это сделать
А в каком?

будь моя воля я бы от бэка избавился и воцарился бы p2p среди клиентов, но блин приложенице не подходящее и как сделять я хз пока))

cyber 05.10.2014 17:07

Цитата:

Сообщение от l-liava-l
будь моя воля я бы от бэка избавился и воцарился бы p2p, но блин приложенице не подходящее))

Кст о p2p, кто то может объяснть как с помощью DHT находятся узлы в p2p сети? ИЛи я не правильно понимаю что такое DHT ?


Часовой пояс GMT +3, время: 22:54.