Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2014, 18:46
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Кто прав кто не прав
Доброго времени суток!

Возник конфликт с одним разработчиком по поводу связи фронта и бэка.
Хочу узнать ваше мнение.

Отпустим подробности)

На бэке висит парсер сайта, а клиент - мобильное приложение, которое получает данные с парсера и удобненько их выводит.

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

Когда приложение запрашивает данные бэк отдает распарсенные данные, которые соотвествуют выбранному фильтру.




Короче обычный клиент сайта с облачной синхронизаций фильтров поиска.

Но если пользователь заходит с другого телефона под своим аккаунтом, то мы отдаем ему все его настройки!

Следовательно фильтры - это данные для парсера + модели для ui

А мне очень удобно использовать статику такого вида (по ней гененрируется шаблон)

(есть не только такие)
 $scope.metroStation = {
    'Арбатско-Покровская линия': {
      color: '#072889'
      arr: [
        'Пятницкое шоссе'
        'Митино'
        'Волоколамская'
        'Мякинино'
        'Строгино'
        'Крылатское'
        'Молодежная'
        'Кунцевская'
        'Славянски бульвар'
        'Парк победы'
        'Киевская'
        'Смоленская'
        'Арбатская'
        'Площадь революции'
        'Курская'
        'Бауманская'
        'Электрозаводская'
        'Семеновская'
        'Партизанская'
        'Измайловская'
        'Первомайская'
        'Щелковская'
      ]
    }, ...


А модели в таком виде:
'Арбатско-Покровская линия': [ 'Электрозаводская',   'Семеновская',  'Щелковская']


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


Все удобно читаемо и тд, но бэкенедер настаивает чтобы я отправлял ему не такую модель
['Электрозаводская',   'Семеновская',  'Щелковская']
// а такую
[2, 4, 3]


Только я не понимаю почему!
Мне приводят в аргумент что это все фреймворки так делают и вообще это знаменитый паттерн программирования, и никто не шлет юникодовые строчки на серв и тд
При этом ему нужны еще были два файлика чтобы не наебаться с этими числовыми индексами (поменял строчку на фронте и все, пзд)
А мне бы пришлось делать декораторы для правильной выборки


Еще был аргумент с локализацией, но тут мой способ опять лучше. Я создам просто две статики, из одной буду генерировать шаблон а из другой модель. ПРОФИТ!

Я не понимаю почему он не может связать юникодовую ссылку с методом парсера вернуть то что нужно.

Короче странно, обьясните если чего то не понимаю.

Его плюсы:
цифорки, меньше трафика

Мои плюсы:
Меньше кода, он читабельнее
Никаких декораторв, я ему отправил, он связал, все, работает!
Если он мне вернул, то я в модель пихаю, все, работает
Опять же локализация удобнее
Не нужно хранить 2 статичных файла чтобы делать выборку (и дай бох не наепаца с циферкой)



Может показаться что дело тут в экономии трафика (строки заметно больше), но фильтры пользователь делает крайне редко, но пуш уведомления, уведомления по вебсокетам и огромное кол-во трафика будет сжираться картинками и прешедшими обьявами (тут без 4г или вифи никак)
__________________
Научу себя плохому

Последний раз редактировалось l-liava-l, 14.08.2014 в 18:51.
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2014, 19:01
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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

Насчет отдавать цифры/ключи/хеши, я пожалуй соглашусь. Бекенд не должен работать со строками (результатом отображения), опять же сложная обработка/нагрузка. На сервере это ни к чему.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 14.08.2014, 19:13
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
дело не тока в трафике, но и распределении нагрузки, клиентов много, сервер один. На бекенде обработку данных нужно сводить к минимуму, клиент вполне справится с маппингом строк в числа и не заметит тормозов, серверу же нужно маппить сотню-тысячу клиентов, он ведь один.

Насчет отдавать цифры/ключи/хеши, я пожалуй соглашусь. Бекенд не должен работать со строками (результатом отображения), опять же сложная обработка/нагрузка. На сервере это ни к чему.
Возможно, но тут скорее нагрузка должна быть равная (телефончики плохо справляются с такими задачами и подлагивание пусть даже на 200мс, оочень заметно. А сервер в случае с филтром сохраняет их 1 раз, а дальше все общаются через id, Тоесть он сохранил, сделал карту и все. Потом только отправляет эти фильтры (если новая сессия) Нагрузка минимум)
А заказы на удаление изменение и выдачу данных по фильтру толкьо по id
__________________
Научу себя плохому
Ответить с цитированием
  #4 (permalink)  
Старый 14.08.2014, 19:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от l-liava-l
цифорки, меньше трафика
мне кажется, тут речь скорее не сколько о трафике,сколько об разделении идентификаторов (циферок) от представлений (строки)

оки. китаец зашел к тебе на сайт\приложение. ты будешь гонять китайские символы туды сюды ?)

а айдишники и для китайца айдишники. и для чукчи тоже будут циферки )

Сообщение от l-liava-l
Возможно, но тут скорее нагрузка должна быть равная (телефончики плохо справляются с такими задачами и подлагивание пусть даже на 200мс, оочень заметно
мне казалось, затупы у смартов из-за CPU, а не памяти

Последний раз редактировалось melky, 14.08.2014 в 19:24.
Ответить с цитированием
  #5 (permalink)  
Старый 14.08.2014, 19:32
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Надуманная проблема какая-то. Естественно лучше айдишники отдавать, чем сами значения.
Ответить с цитированием
  #6 (permalink)  
Старый 14.08.2014, 19:39
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
мне кажется, тут речь скорее не сколько о трафике,сколько об разделении идентификаторов (циферок) от представлений (строки)

оки. китаец зашел к тебе на сайт\приложение. ты будешь гонять китайские символы туды сюды ?)

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


Я не хочу привязываться к местоположению элемента, потому что придется пилить одинаковые фалйики со статикой и на серве и на клиенте чтобы не перепутать случайно. И при малешем изменении их менять. А то велик шанс получить что нибудь не то.
Привязываюсь к значению(и ключу в одном флаконе), поэтому циклами бегать не нужно, и серв мне не выдаст фильтр 3 хотя просил 2 из за маленького недочета, . а просто пошлет нафиг
__________________
Научу себя плохому
Ответить с цитированием
  #7 (permalink)  
Старый 14.08.2014, 19:40
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
мне казалось, затупы у смартов из-за CPU, а не памяти
Ну да) Хотя если сделать моим способом, но только гененрировать модель из статики (которая собрана из айдишников).. так можно, но файлики сравнения хранить придется
__________________
Научу себя плохому
Ответить с цитированием
  #8 (permalink)  
Старый 14.08.2014, 20:07
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

l-liava-l, сервер должен обрабатывать цифры. Символы помимо цифровых очень затратны. Если будет наплыв, то с цифирками сервер еще справиться, а вот с юникодом уже вряд ли.

Конечно это зависит от реализации, но лично я никогда не отправляю на сервер под нагрузкой ничего кроме цифирок.

Если предполагается нагрузка, то только цифры. И потом, а если
'Электрозаводская'

Внезапно! кто-то решит изменить на:
'м. Электрозаводская'
?

Что и серверную часть придется переписывать?

Ни, ни, ни. Если я конечно правильно понял проблему.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #9 (permalink)  
Старый 14.08.2014, 23:09
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
l-liava-l, сервер должен обрабатывать цифры. Символы помимо цифровых очень затратны. Если будет наплыв, то с цифирками сервер еще справиться, а вот с юникодом уже вряд ли.
Цитата:
дело не тока в трафике, но и распределении нагрузки, клиентов много, сервер один. На бекенде обработку данных нужно сводить к минимуму, клиент вполне справится с маппингом строк в числа и не заметит тормозов, серверу же нужно маппить сотню-тысячу клиентов, он ведь один.
Я вас понял, вот он и аргумент)
Благодарю)
__________________
Научу себя плохому
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2014, 11:19
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от l-liava-l
Возник конфликт с одним разработчиком по поводу связи фронта и бэка.
Хочу узнать ваше мнение.
бэк прав

Если коротко, то элемент твоего справочника это
{
    id: {Number},
    title: {String}
}

просто потому, что только id однозначно идентифицирует запись, а title может меняться/локализоваться
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 15.08.2014 в 11:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Events - кто прав??? kuzroman Events/DOM/Window 16 20.01.2014 08:03
Как выделить активный пункт меню в моём случаи? может кто помочь? nStyle jQuery 10 11.03.2012 01:51
Кто нибудь подскажет onmouseout при ul > li > ul, или все Великие kudenv Элементы интерфейса 2 12.03.2011 12:34
Кто рисует это? greatilya Оффтопик 2 19.01.2011 13:19
Кто знает как разрешить выполнения сценариев в Ie ? JsLoveR Общие вопросы Javascript 5 24.12.2009 19:25