@proGO

Страница 1090 из 1674
Nikolay
25.12.2017
20:08:33
тогда зачем graphql ?)
чтобы можно было красивое слово в презентацию вставить

Andrey
25.12.2017
20:08:43
не стоит оно того

Nikolay
25.12.2017
20:08:58
не стоит оно того
"но у нас же работает!!"

Google
Александр
25.12.2017
20:08:58
А какие сложные абстракции то? Если тебе по бизнес логике надо будет смешать данные с разных сервисов, то ты это будешь делать в любом случае, и graphql тут не при чем

Александр
25.12.2017
20:09:44
но в graphql это будет сделать значительно проще

Nikolay
25.12.2017
20:09:50
просто graphql в этой ситуации еще и накладывает на тебя ненужные ограничения

Александр
25.12.2017
20:10:07
чем?

и какие ограничения накладывает graphql?

Nikolay
25.12.2017
20:10:44
чем?
ты что, серьезно не видишь разницу между "сделай, чтобы минимально работало" и "сделай строго по стандарту с поддержкой вложенных сущностей"?

Александр
25.12.2017
20:11:06
так можно же не делать поддержку вложенных сущностей:) кто заставляет то

можно так же сделать минимально

Александр
25.12.2017
20:11:55
REST - прошлое

Google
Александр
25.12.2017
20:12:03
json-rpc v2.0 хотя бы уж

Nikolay
25.12.2017
20:12:39
REST - прошлое
офигеть аргумент

Александр
25.12.2017
20:12:40
REST хорошо ложится на CRUD операции, спору нет, но бизнес-логика обычно гораздо сложнее

Nikolay
25.12.2017
20:12:49
JSON-прошлое, давайте везде юзать TOML!

HTTP/1 - прошлое, даешь везде HTTP/2!

Andrey
25.12.2017
20:13:26
давайте сразу передавать бинарники

Nikolay
25.12.2017
20:13:39
давайте сразу передавать бинарники
давайте просто фуры с хардами возить

а то придумали какие-то браузеры, тоже мне

Вячеслав
25.12.2017
20:13:55
Голуби.

Andrey
25.12.2017
20:14:00
ну да, раньше было лучше )

Александр
25.12.2017
20:14:16
ну, вы по существу чего-то ничего сказать не можете, к сожалению, так не интересно:)

Nikolay
25.12.2017
20:14:23
кстати, угадайте с трех раз, какой канал передачи информации самый быстрый в мире?

Александр
25.12.2017
20:14:36
UDP

Nikolay
25.12.2017
20:14:39
ну, вы по существу чего-то ничего сказать не можете, к сожалению, так не интересно:)
в смысле? это ты по существу сказать не можешь ничего кроме "ну, у нас оно работает как-то" :)

UDP
еще варианты?

Andrey
25.12.2017
20:14:59
ну, вы по существу чего-то ничего сказать не можете, к сожалению, так не интересно:)
я написал выше, по этому я не буду юзать graphql, а и забыл про безопасность, но это кто как напишет

Zikoi5
25.12.2017
20:15:15
mysql socket?

Nikolay
25.12.2017
20:16:31
mysql socket?
мыслите шире

Александр
25.12.2017
20:16:40
в смысле? это ты по существу сказать не можешь ничего кроме "ну, у нас оно работает как-то" :)
у нас оно работает хорошо. И я понимаю что если бы мы делали это через REST, то схватили бы очень много проблем. У нас достаточно большое приложение, и там graphql ложится просто прекрасно. Со своей строгой схемой.

Google
Александр
25.12.2017
20:16:58
если нужно что-то мелкое - тут даже REST лишний

Aleserche
25.12.2017
20:17:10
Тут про канал, а не протокол

Nikolay
25.12.2017
20:17:10
у нас оно работает хорошо. И я понимаю что если бы мы делали это через REST, то схватили бы очень много проблем. У нас достаточно большое приложение, и там graphql ложится просто прекрасно. Со своей строгой схемой.
то, схватили бы вы проблемы или нет, зависит от того, насколько налажено взаимодействие между фронтом и бэком. И graphql ни в коем случае не является серебряной пулей, это довольно сомнительная технология без вменяемой реализации.

Zikoi5
25.12.2017
20:19:06
мыслите шире
и какой же?

Andrey
25.12.2017
20:19:53
это еще что нашел Возможно, самая большая проблема при использовании GraphQL – так называемые N+1 SQL-запросы. В GraphQL поля запроса реализованы как обычные функции, отправляющие запросы к базе данных. Чтобы заполнить все поля данными, может потребоваться новый SQL-запрос на каждое поле. Facebook одним из первых предложил решение этой проблемы – DataLoader. это еще +1 оверхед

Артем
25.12.2017
20:22:03
забавно, что язык запросов противопоставляется архитектурному паттерну...

Aleksandr
25.12.2017
20:22:16
Откуда 1600гб? Вы не переоценили свои возможности?

Zikoi5
25.12.2017
20:22:24
facepalm, я думал щас что то новенкое по ит узнаю

Артем
25.12.2017
20:22:35
странно, что тут не звучат лозунги "Go лучше чем Mysql!"

Nikolay
25.12.2017
20:22:43
Nick
25.12.2017
20:22:44
@Enchantner Давай на примерах, у тебя есть Client и я хочу посмотреть его Orders как бы ты это сделал)

Andrey
25.12.2017
20:22:57
странно, что тут не звучат лозунги "Go лучше чем Mysql!"
и слава богу, бо чуть не началось nosql vs sql

Aleserche
25.12.2017
20:22:59
Передача информации, обработка и т.п. не про ит

Nikolay
25.12.2017
20:23:02
@Enchantner Давай на примерах, у тебя есть Client и я хочу посмотреть его Orders как бы ты это сделал)
описывай задачу в ТЗ, присылай на визирование, счет можно через ИП оплатить

Nick
25.12.2017
20:24:32
описывай задачу в ТЗ, присылай на визирование, счет можно через ИП оплатить
ты ж хотел обсудить, я тебе конкретный пример даю. Я понимаю, что ты Лев Николаевич, но все ж)

Aleksandr
25.12.2017
20:24:45
там на деле больше даже
А моск включить? То, что канал ненадёжен и информацию приходится много раз дублировать, ещё не значит, что информации становится больше. 37,5 Мб — все, на что ты способен. Да и то все пакеты могут потеряйся.

Google
Nikolay
25.12.2017
20:25:07
ты ж хотел обсудить, я тебе конкретный пример даю. Я понимаю, что ты Лев Николаевич, но все ж)
это не конкретный пример :) в каждом конкретном случае логику надо точно согласовывать и тестировать

Nick
25.12.2017
20:25:43
это не конкретный пример :) в каждом конкретном случае логику надо точно согласовывать и тестировать
это вполне себе конкретный пример, есть Client,Order и нужно получить список заказов у клиента

Nick
25.12.2017
20:27:37
а какие сущности при этом на фронте?
Order{id,name,client_id}, Client{Id,Name,order_ids}

Aleserche
25.12.2017
20:28:08
И как они связаны?

Aleksandr
25.12.2017
20:28:17
с чего вдруг "много раз дублировать"? в разных половых клетках может содержаться разная информация
Да, некоторые пакеты «битые» — и что? Тебе же надо передать не какую-то там информация да побольше. А конкретную — свою ДНК. Битые пакеты не увеличивают количество сиво переданной информации, а являются проблемой и могут приводить к потере передаваемой информации

Nikolay
25.12.2017
20:28:50
Order{id,name,client_id}, Client{Id,Name,order_ids}
отлично мапятся на эндпойнты реста, в чем проблема?

Admin
ERROR: S client not available

Nikolay
25.12.2017
20:30:11
ну давай, описывай)
GET /clients/123/orders

я знаю, сейчас ты досыпешь новых условий в задачу

но изначальную этот запрос полностью решает

Nick
25.12.2017
20:30:45
естественно

Nikolay
25.12.2017
20:31:28
Очевидно — ДНК не совпадающая с твоей
такая ситуация вполне может возникнуть по причине мутаций под воздействием всяких там никотина и алкоголя

но информация не является битой в этом случае, если она успешно передается и обрабатывается

Nick
25.12.2017
20:31:57
я знаю, сейчас ты досыпешь новых условий в задачу
отлично, добавляем еще одно условие, нужно вывести доп инфу о производителе Manufacturer {id, name} и добавляем в Order manufacturer_id

Google
Nikolay
25.12.2017
20:32:21
Не хотел бы я с тобой в команде работать))
так мы про IT или про биологию? :)

с точки зрения IT это плохо, да, с точки зрения биологии - оно так и работает

Nikolay
25.12.2017
20:33:24
есть вариантов пять разных

Nikolay
25.12.2017
20:33:50
давай на твой взгляд лучший
там нет "лучшего", есть логика, которой надо следовать

например, денормализуем и включаем производителя в сам заказ

твою задачу это решит

Nick
25.12.2017
20:34:50
приходит еще один клиент,который хочет видеть другую морду и другие данные Manufacturer'а

что делаем? дальше денормолизируем?

Nick
25.12.2017
20:35:34
ну к примеру полный адрес его с фиасами

Nikolay
25.12.2017
20:36:03
ну к примеру полный адрес его с фиасами
это уже другая модель получается совсем

Nick
25.12.2017
20:36:10
вернемся к вопросу, давай другой вариант помимо денормолизации

Nikolay
25.12.2017
20:37:46
естественно
и в чем проблема? опять куча вариантов, например, делаешь хэндлер потипу /clients/123/order_manufacturer_full, где возвращаешь более подробную сущность. Либо разрешаешь делать /clients/123/orders/?manufacturer_fields=address

Aleserche
25.12.2017
20:38:05
А в чем проблема-то? Если использовать nosql, то выборки простые

Nikolay
25.12.2017
20:38:13
есть много вариантов, исходя из логики можно выбрать тот, который лучше подходит

Nikolay
25.12.2017
20:38:35
А в чем проблема-то? Если использовать nosql, то выборки простые
проблема, которую Ник хочет проиллюстрировать, - это пересылка или недосылка нужных данных с сервера

Страница 1090 из 1674