V
Просто пример классный на vue, gj'njve cghjcbk pltcm
Anonymous
+++
V
Поэтому спросил здесь
Denis
Кури ман
Anonymous
Тут нету вью в примере никак вообще
V
В вопросе нет, в примере (по ссылке) есть
Anonymous
Ты не знаешь что такое коллбек, зачем тебе этот пример
Roman
Кто-нибудь из вас уже использует GraphQL?
Denis
Мне не нравится синтаксис
Andrey
Кто-нибудь из вас уже использует GraphQL?
думал, но как-то так и не решился пока
Denis
Да
Anonymous
По моему нлборот прикольный там синтаксис, статическая типизация. Песочница вообще супер. Тестировать одно удовольствие апи
Anonymous
Я очень хочу поизучать Но времени нету
Roman
синтаксис это-ж незначительный аргумент... вещь на самом деле очень прогрессивная
Roman
но даже не могу представить что может не нравиться в синтаксисте GQL
Roman
единственная "проблема" которая возможно ещё недоработана так это caching / cache invalidation
Andrey
Пагинация тоже говорят так себе? Но не изучал вопрос
Roman
в GQL кэш должен быть нормализован, а для инвалидации есть subscriptions.. однако пока что думаю в плане библиотек ещё сыровато
Roman
Andrey
Я не знаю, четсно) за что купил за то продалл Надо изучать
Andrey
У меня даже есть проект, где попробовать хочу это
Andrey
Спасиб
Denis
синтаксис это-ж незначительный аргумент... вещь на самом деле очень прогрессивная
Ну как сказать... Я предпочитаю более SQL подобный подход
Roman
Roman
GraphQL это всего-лишь язык коммуникации клиента с API
Roman
вот вроде есть JS клиент библиотека: http://dev.apollodata.com/core/
Denis
постой, а причём тут SQL? SQL это для RDBMS
ПРи том, что это уродство: query: gql`query PingMessage($message: String!) { ping(message: $message) }`,
Denis
Не прозрачно
Denis
Я вот знаю SQL норм. Я никогда его не учил. Он просто ясен.
Roman
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'ы для оптимизации.
Roman
хотя насчёт versioning на самом деле был не совсем прав, там REST с GQL практически на равне
Denis
1. Axios делает это. Никогда поодобных проблем не было. 2 Сколько конкретно памяти? 3 Это не проблема БД 4 Не пойму этого разделения (у меня нет таких больших проектов)
Denis
Сравнимо?
Denis
0.99 s | 8 mb большая страница
Roman
и особенно что касается Vue и модульной разработки приложений... представим себе что у нас много много много маленьких компонентов.. каждый из компонентов требует конкретный набор данных, например component X ---> {user{name, avatar}} component Y ---> {product(id:123){name, description}} component Z ---> {products(first:100, sort:'name')} и многие другие.. в случае с REST получится жутко убого... десятки запросов туда сюда, тонны ненужных данных с GQL клиент аггрегирует графы в один граф и посылает один запрос на сервер
Denis
Denis
И 2 больших по REST
Denis
Через all
Roman
1. Axios делает это. Никогда поодобных проблем не было. 2 Сколько конкретно памяти? 3 Это не проблема БД 4 Не пойму этого разделения (у меня нет таких больших проектов)
Axios это лишь HTTP библиотека, она не сможет аггрегировать 10 различных GET запросов на сервер в один единственный, серверу так или иначе придётся отвечать на 10 запросов GraphQL же выстраивает Graph, а граф можно сагрегировать в большой 1 граф. тем самым ты читаешь с сервера ТОЛЬКО те данные что тебе нужно и всё это одним запросом
Denis
Это я понял как работает
Denis
Это плюс
Denis
Но я могу на sql так же делать
Roman
SQL это совсем другой уровень, это происходит уже позади API
Roman
надеюсь ты понимаешь что GraphQL это НЕ язык для обращения к бд?
Roman
это язык между клиентом и сервисом, т.е. API, а вот как этот сервис и откуда он эти данные уже будет доставать (SQL, noSQL, Filesystem, Object Storage.. what ever..) это совсем другой уровень абстракции
Rafael 🌵
Вы тут спорите ни о чем, у netflix есть стоя реализация аналога graphql
Roman
Вы тут спорите ни о чем, у netflix есть стоя реализация аналога graphql
однако GQL более "стандарт" нежели что-то внутреннее там у Netflix'а
Roman
суть в том что GraphQL отлично подходит для модульных Vue приложений, поэтому было бы интересно пообщаться с единомышленниками
Rafael 🌵
http://tonsky.livejournal.com/309037.html
Denis
суть в том что GraphQL отлично подходит для модульных Vue приложений, поэтому было бы интересно пообщаться с единомышленниками
https://github.com/Folkloreatelier/laravel-graphql Только нахера он я не пойму, все равно. Чтоб потом статическими методами в базу лукаться?
Stanislav
Так, всем ставить звездочку https://bugs.chromium.org/p/chromium/issues/detail?id=758600
Denis
Короче - я считаю этот Граф - лишней абстракцией
Roman
Не стандарт
я не зря написал "стандарт" в ковычках, однако есть открытая спецификация, есть open source'ные реализации на разных языках, уже у некоторых как Github в продакшне
Stanislav
:)
Denis
это замена REST, и это НЕ замена SQL
Еще один сервак, кароч http://graphql.org/learn/serving-over-http/
Anonymous
http://tonsky.livejournal.com/309037.html
такое чувство что у чувака стоит на mysql и больше ничего не нрав. Не понял предъяв по поводу "формата". Мб потому что куча воды в статье
Roman
Он требует сервер же
а разве REST не требует сервера?)) да, REST сервер написать легче с нуля, но со временем когда сервис начнёт расти и усложняться - REST превратится в один большой кошмар
Denis
это замена REST, и это НЕ замена SQL
REST мне каж сокет заменит
Roman
REST мне каж сокет заменит
а сокеты тот тут причём?! o_O сокеты это транспортный уровень так же как и HTTP
Rafael 🌵
На Хабре в комментах рассказали как 1м запросом ддосить бд на gql, просто офигенская увеличив вложенность запроса
Stanislav
а разве REST не требует сервера?)) да, REST сервер написать легче с нуля, но со временем когда сервис начнёт расти и усложняться - REST превратится в один большой кошмар
Вот xanf_ua ни раз обращал внимание, что с оптимизацией могут быть проблемы, ибо "это штука в себе" з.ы. я в этом не шарю
Anonymous
По моему очень толково рассказано
ну смотри он на 10% расписал шо это лишний слой абстракции. Оставшиеся 90% он написал какую-то дичь про то шо фейсбук ему не командир и ему не нрав вид данных потому что не нрав
Denis
Короче - я считаю этот Граф - лишней абстракцией
Roman
И что?
ну так ты сравниваешь груши с огурцами
Roman
с каких пор http = транспортный лвл?
а какой же это тогда уровень?
Denis
ну так ты сравниваешь груши с огурцами
Нет. Я сравниваю способы обмена данными
Anonymous
всегда был прикладной
Roman
Нет. Я сравниваю способы обмена данными
ты говоришь "давайте заменим HTTP - сокетами", но мы же не о том "как" данные передавать, а как к API серверу "обращаться", т.е. как API расписать то чего тебе нужно и тут у нас есть REST, SOAP, GraphQL и т.д. и т.п. поэтому сравнивать сокеты (транспортный уровень) с GraphQL (протокол общения с API) совсем неправильно
Anonymous
сокеты работают поверх tcp