
Roman
24.08.2017
15:13:03
1. roundtrips - вместо десятков GET запросов - oдин запрос. на мобилках это значительное снижение задержки, lower time to content
2. over-fetching - меньшее потребление памяти и нагрузка сети, slightly lower TtC
3. versioning - легче чем с REST --> depracation & additions of individual fields instead of whole-api-versioning ala /v45/
4. coupling - frontend команда менее зависит от backend команды, им не приходится постоянно вымогать у backend'а новые endpoint'ы для оптимизации.
хотя насчёт versioning на самом деле был не совсем прав, там REST с GQL практически на равне

Den
24.08.2017
15:17:05
1. Axios делает это. Никогда поодобных проблем не было.
2 Сколько конкретно памяти?
3 Это не проблема БД
4 Не пойму этого разделения (у меня нет таких больших проектов)

Google

Den
24.08.2017
15:20:16
0.99 s | 8 mb большая страница

Roman
24.08.2017
15:20:51
и особенно что касается Vue и модульной разработки приложений...
представим себе что у нас много много много маленьких компонентов..
каждый из компонентов требует конкретный набор данных, например
component X ---> {user{name, avatar}}
component Y ---> {product(id:123){name, description}}
component Z ---> {products(first:100, sort:'name')}
и многие другие..
в случае с REST получится жутко убого... десятки запросов туда сюда, тонны ненужных данных
с GQL клиент аггрегирует графы в один граф и посылает один запрос на сервер

Den
24.08.2017
15:22:15
И 2 больших по REST
Через all

Roman
24.08.2017
15:23:50

Den
24.08.2017
15:24:27
Это я понял как работает
Это плюс
Но я могу на sql так же делать

Roman
24.08.2017
15:25:34
SQL это совсем другой уровень, это происходит уже позади API
надеюсь ты понимаешь что GraphQL это НЕ язык для обращения к бд?
это язык между клиентом и сервисом, т.е. API, а вот как этот сервис и откуда он эти данные уже будет доставать (SQL, noSQL, Filesystem, Object Storage.. what ever..) это совсем другой уровень абстракции

Google

Rafael
24.08.2017
15:30:50
Вы тут спорите ни о чем, у netflix есть стоя реализация аналога graphql

Roman
24.08.2017
15:31:27
суть в том что GraphQL отлично подходит для модульных Vue приложений, поэтому было бы интересно пообщаться с единомышленниками

Rafael
24.08.2017
15:33:44
http://tonsky.livejournal.com/309037.html

Den
24.08.2017
15:38:03

Stanislav
24.08.2017
15:39:08
Так, всем ставить звездочку
https://bugs.chromium.org/p/chromium/issues/detail?id=758600

Den
24.08.2017
15:39:38
Короче - я считаю этот Граф - лишней абстракцией

Roman
24.08.2017
15:40:08
Не стандарт
я не зря написал "стандарт" в ковычках, однако есть открытая спецификация, есть open source'ные реализации на разных языках, уже у некоторых как Github в продакшне

Stanislav
24.08.2017
15:40:14

Stanislav
24.08.2017
15:40:21
:)

Den
24.08.2017
15:40:31

Roman
24.08.2017
15:40:57

Den
24.08.2017
15:42:42

Sasha
24.08.2017
15:44:21

Roman
24.08.2017
15:44:58
Он требует сервер же
а разве REST не требует сервера?))
да, REST сервер написать легче с нуля, но со временем когда сервис начнёт расти и усложняться - REST превратится в один большой кошмар

Den
24.08.2017
15:45:19

Rafael
24.08.2017
15:46:00

Roman
24.08.2017
15:46:02

Rafael
24.08.2017
15:46:55
На Хабре в комментах рассказали как 1м запросом ддосить бд на gql, просто офигенская увеличив вложенность запроса

Google

Stanislav
24.08.2017
15:47:16

Den
24.08.2017
15:47:16

Sasha
24.08.2017
15:47:25
По моему очень толково рассказано
ну смотри он на 10% расписал шо это лишний слой абстракции. Оставшиеся 90% он написал какую-то дичь про то шо фейсбук ему не командир и ему не нрав вид данных потому что не нрав

Roman
24.08.2017
15:47:51

Den
24.08.2017
15:47:53
Короче - я считаю этот Граф - лишней абстракцией

Roman
24.08.2017
15:48:09
И что?
ну так ты сравниваешь груши с огурцами

Sasha
24.08.2017
15:48:21

Roman
24.08.2017
15:48:42

Den
24.08.2017
15:48:48

Sasha
24.08.2017
15:48:53
всегда был прикладной

Roman
24.08.2017
15:50:29
Нет. Я сравниваю способы обмена данными
ты говоришь "давайте заменим HTTP - сокетами", но мы же не о том "как" данные передавать, а как к API серверу "обращаться", т.е. как API расписать то чего тебе нужно и тут у нас есть REST, SOAP, GraphQL и т.д. и т.п.
поэтому сравнивать сокеты (транспортный уровень) с GraphQL (протокол общения с API) совсем неправильно

Sasha
24.08.2017
15:51:59
сокеты работают поверх tcp

Den
24.08.2017
15:52:03

Sasha
24.08.2017
15:52:04
тобишь это тоже не транспорт

Den
24.08.2017
15:52:12

Sasha
24.08.2017
15:52:22
не совсем
http и вебсокеты похожи
но не same

Roman
24.08.2017
15:53:05
и REST и GraphQL можно по сокетам передавать (хотя смысла в этом мало если HTTP keep alive активирован). Но это не меняет сути что в REST тебя так или иначе будет over-fetching и слишком много round-trips

Sasha
24.08.2017
15:53:23
шо бл

Google

Roman
24.08.2017
15:53:55
шо бл
мне так-же отвечать как ты вопросы задаёшь?))

Sasha
24.08.2017
15:54:08
та не я ору немного

Roman
24.08.2017
15:54:46
та не я ору немного
если тебе тема неинтересна и ничего внести не можешь то зачем засорять беседу то?

Sasha
24.08.2017
15:55:03
я б не орал если бы не было интересно
@Romshark каким образом keep alive влияет на сокеты в браузере?

Roman
24.08.2017
15:57:57

Den
24.08.2017
15:58:47

Roman
24.08.2017
15:59:03
@Romshark каким образом keep alive влияет на сокеты в браузере?
я лишь хотел сказать, что сильного прироста производительности в плане запросов не будет если заменить HTTP на WebSockets. Поскольку HTTP сам поверх TCP/IP и с включённой опцией "Keep-Alive" сокет не обрывается... единственный overhead HTTP это чуток лишних данных (header больше чем у WebSocket message) и парсинг, но overhead незаметно минимальный.. т.е. это совсем не то на что бы следовало тратить время на оптимизацию

Sasha
24.08.2017
15:59:24
причем тут производительность

Den
24.08.2017
15:59:56

Admin
ERROR: S client not available

Roman
24.08.2017
16:00:16

Sasha
24.08.2017
16:00:30
бож

Roman
24.08.2017
16:00:39
обратная связь же не нужна

Roman
24.08.2017
16:00:40
Такое ощущение что еж в капюшоне до конца не дочитали

Sasha
24.08.2017
16:00:46
я хоть и тупой, но мне смешно

Roman
24.08.2017
16:01:21
Длиннотекст

Sasha
24.08.2017
16:01:27
читал

Roman
24.08.2017
16:01:43
да тролит он походу..

Google

Sasha
24.08.2017
16:02:25
я ж говорю - я тупой. У меня другое представление обо всем этом

Roman
24.08.2017
16:02:37

Roman
24.08.2017
16:02:47
короче я так понял никто ещё серьёзно не вдавался в GQL?

Sasha
24.08.2017
16:03:09
рей говорит шо не хорошо - так что вдаваться не буду

Roman
24.08.2017
16:03:23
но если-бы хоть вопросы нормальные задавал, а так сидит и тролит.. ?

æ digital
24.08.2017
16:03:26

Den
24.08.2017
16:04:14

Roman
24.08.2017
16:04:29

Sasha
24.08.2017
16:04:49
вы меняете обычные запросы на сокеты ради производительности чтоли? Я это спрашивал. Если нет, то что за идиотские аргументы

Roman
24.08.2017
16:04:55

æ digital
24.08.2017
16:05:00

dima
24.08.2017
16:05:00
как инфу получать ? на пример о юзере. Она лежит в локал стораж. Как удобнее ее получить ? в родителе при старте получать ?

Roman
24.08.2017
16:05:05
Да и ты сам от меня вроде узнал))

dima
24.08.2017
16:05:12

Yaroslav
24.08.2017
16:05:29
Рано или поздно все уйдут в лямбды или серверлесс или наносервисы, нужное подчеркнуть.
Будут написаны простые функции, с открытыми конектами в базе. Которые тупо висят в умном облаке.
Ты в рест 2 будешь бросаться джейсоном запросов. Рест 2 будет стартовать одновременно все лямбды по запросу. Формировать пакет ответа или ошибку или ответ и ошибки и отправлять на клиента.
Как всё организовать будет решать архитектура как и в стандартном ресте, а не язык абстракции

Den
24.08.2017
16:05:42
В created мож?

Sasha
24.08.2017
16:05:42

dima
24.08.2017
16:06:01
created(){}
не важно. Идие правильная ? или вынести в стор ?

Roman
24.08.2017
16:06:17

Sasha
24.08.2017
16:06:19
я не знаю что ты делаешь и структуру проекта
если тебе нужен стор - юзай стор
если без него справляешься - нах не нужен