@proGO

Страница 1089 из 1674
Nikolay
25.12.2017
19:32:02
В graphql тоже самое, как ты написал хэндлер, так и будет
если graphql рассматривать, как стандарт протокола - то да. Если его рассматривать в реальном мире, с точки зрения реализации на конкретной базе - то это вырвиглазная наркомания

Nick
25.12.2017
19:32:21
Давай в примере, опиши рест, а я опишу спеку )

Nikolay
25.12.2017
19:32:40
что в примере?

приведи пример бизнес-логики

Google
Nikolay
25.12.2017
19:33:07
я тебе объясню, почему там не нужен graphql

Nick
25.12.2017
19:33:11
На твой выбор

Nikolay
25.12.2017
19:33:36
не, ну ты же утверждаешь, что он нужен :) вот и приведи пример, где без него никак

Nick
25.12.2017
19:34:17
Я не говорю, что без него никак. Я говорю с ним можно жить

xPushkin
25.12.2017
19:34:41
не, ну ты же утверждаешь, что он нужен :) вот и приведи пример, где без него никак
Если у тебя много разных клиентов который используют одинаковые сущности, но какому-то клиенту нужны одни поля, а другому другие + в тоже время какие-то поля они делят.

Nick
25.12.2017
19:35:53
значит, надо различать клиенты на бэкенде, например, используя разные токены авторизации. Причем тут graphql?
У тебя могут быть разные версии клиентов, у одних инфо больше у других меньше

Demuz
25.12.2017
19:36:01


Nikolay
25.12.2017
19:36:07
А можно просто использовать GraphQL
зачем? нет логики, "у меня два клиента - давайте-ка я в разы усложню бэк"

Nick
25.12.2017
19:36:22
но без него лучше :)
Давай проще. Магазин. Клиент и его покупки. Реализуй рестом

Google
Andrey
25.12.2017
19:37:09
если кратко, то это допустим ты получаешь дату, но тебе нужно ее конвертировать, ты создаешь мутатор который возвращает уже отформатированную жату если не ошибаюсь

Nick
25.12.2017
19:37:16
Изменение данных

Nikolay
25.12.2017
19:37:30
Да не усложнишь ты ничего
разумеется, усложню. Ты какими-то абстрактными терминами мыслишь. Вот у тебя база, вот у тебя логика. Для GraphQL надо написать уйму кода, который будет маппить одно на другое. Для REST-нет

Andrey
25.12.2017
19:38:05
Нет, эт лучше через квери делать
я написал вообщем, я не имею ввиду graphql, мне он не нужен )

xPushkin
25.12.2017
19:38:07
@Enchantner я примерно так же скандалил когда впервые услышал про NoSQL

Nikolay
25.12.2017
19:38:52
Да нет ж. Открой код какой нибудь сангрии
ты мне сейчас расскажешь, что у меня не будет сложностей перетащить мое приложение с graphql с постгри, скажем, на монгу? вот это весело будет

Andrey
25.12.2017
19:39:07
вон github начал юзать graphql, ну так открытое же апи

Nick
25.12.2017
19:39:15
Мутации нужны чтобы менять данные, это ж мутации. ))) условно говоря пост в тесте

Nikolay
25.12.2017
19:39:35
Не будет
разумеется, будут, не смеши

Nick
25.12.2017
19:39:41
Вообще никаких

Nikolay
25.12.2017
19:39:46
да дохера будет

как минимум потому что джойны устроены категорически иначе, а ORM общего для них нет и быть не может вменяемого в принципе

это тупо другая база абсолютно с другой логикой работы с ней

Google
Andrey
25.12.2017
19:40:37
`{ user(id: "ZW5jaG9kZSBIZWxsb1dvcmxk") { id name friendsConnection(first: 3) { edges { cursor node { id name } } } } }` я думаю это еще цветочки с вложенностью )

Nick
25.12.2017
19:40:55
Это будут изменения в dao слое

Nikolay
25.12.2017
19:41:06
чтобы фронту было удобнее рендерить хрень, давайте сделаем плохо бэку

Nick
25.12.2017
19:41:07
Доменная область останется также

Nikolay
25.12.2017
19:41:10
это ущербная логика

Nick
25.12.2017
19:41:17
Да ничего там не плохо)))?

Andrey
25.12.2017
19:41:49
скажите, зачем тогда уж http code ? как будут ошибки выдаватсья ? эт интересно

Nikolay
25.12.2017
19:41:52
у меня был один раз чувак, который ныл, чтобы ему в JSON поля отдавали CamelCase'ом, ибо у него иначе линтер на фронте ругался. Он призывал отменить pep8 и названия полям в модели дать таким образом.

Nikolay
25.12.2017
19:42:34
вот тут так же логика - да похер, что у нас запрос может в 10 джойнов с бубном разложиться на бэке, зато рендерить удобно будет

Demuz
25.12.2017
19:42:41
???
Тоже было такое )))))))))))

Nikolay
25.12.2017
19:44:10
если суть API - это предоставление доступа к базе, то есть тупо прокидывание той же монги наружу - тогда это может иметь смысл. Но в случае серьезного приложения с бизнес-логикой это ужасное и ненужное спагетти, которое смешивает слои и ломает абстракцию

Nikolay
25.12.2017
19:45:29
Nick
25.12.2017
19:45:44
Да у меня хотя бы есть приложения на graphql

И я понимаю для чего он

Google
Nikolay
25.12.2017
19:47:05
ну вот я тоже понимаю, для чего он. Крайне узкая и специфическая сфера, и то не факт, что там без него не было бы лучше

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

Nick
25.12.2017
19:48:01
Да все там отлично с этим

Кстати ещё и на микросервисы ложиться не плохо

Nikolay
25.12.2017
19:49:56
Кстати ещё и на микросервисы ложиться не плохо
каждый день ложусь на микросервисы, ага

нет, хреново он ложится на микросервисы, разумеется

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

API с джойнами и сложной логикой сюда никак не вписывается

Admin
ERROR: S client not available

Demuz
25.12.2017
19:53:39


Александр
25.12.2017
19:53:54
Если у тебя есть сервис, который берет кучу данных от кучи микросервисов, то graphql отлично ложится на микросервисы

Andrey
25.12.2017
19:54:45
Если у тебя есть сервис, который берет кучу данных от кучи микросервисов, то graphql отлично ложится на микросервисы
куча данных от других микросервисов оверхед на TTFB как минимум с каждого сервиса допустим +30ms + еще на graphql 40ms не знаю сколько там отдается и как работает graphql

Nikolay
25.12.2017
19:56:28
Если у тебя есть сервис, который берет кучу данных от кучи микросервисов, то graphql отлично ложится на микросервисы
если у тебя есть сервис, который берет данные от кучи микросервисов, да так, что тебе нужны джойны данных для этого - то ты ССЗБ

тут дело не в graphql, а в прокладке между стулом и монитором

Александр
25.12.2017
19:58:58
Джойны данных иногда нужны, но страшного в этом обычно ничего нет

Nikolay
25.12.2017
19:59:19
Джойны данных иногда нужны, но страшного в этом обычно ничего нет
они часто нужны. Только фронт к ним отношения никакого иметь не должен.

Александр
25.12.2017
19:59:40
А про задержки в миллисекундах - ну это жесть же. Там наносекунды обычно, если не касаться базы

Nikolay
25.12.2017
20:00:11
Google
Andrey
25.12.2017
20:00:49
еще б впихнуть 1 базу для всех сервисов ))))

Александр
25.12.2017
20:00:50
Баз в распределенной бизнес логике куча :) но они в этом случае делаются достаточно простые, и запросы туда тоже простые

Andrey
25.12.2017
20:01:28
вот как ни как, лично с graphql понравился бы join с нескольких сервисов с баз но настораживает э онли бизнеслогика на бекенде

Александр
25.12.2017
20:02:35
Ну у нас это работает. Куча сервисов через grpc общаются, и затем в graphql пихается и все быстро и хорошо работает.

Александр
25.12.2017
20:03:04
А при чем тут фронт?

Александр
25.12.2017
20:03:22
Фронт оперирует только данными. И запрашивает что ему нужно

Nikolay
25.12.2017
20:03:23
у кого-то и гомеопатия работает

Александр
25.12.2017
20:03:50
А какой аргумент надо? Я же говорю исходя из практического опыта :)

Nikolay
25.12.2017
20:04:02
Фронт оперирует только данными. И запрашивает что ему нужно
есть протокол взаимодействия фронта с бэком. Есть эндпойнты и варианты запросов к ним по HTTP

фронт не должен хотеть ничего за пределами этого протокола, как и бэк не должен отдавать

Александр
25.12.2017
20:04:28
Ага, graphql-схема. В которой описаны все запросы и типы данных

Что не так?)

Nikolay
25.12.2017
20:04:38
городить какие-то обощения поверх этого - это плодить ненужные сущности и смешивать логику

Что не так?)
а она не нужна :) есть просто схема, graphql там ни при чем

Andrey
25.12.2017
20:05:23
не вижу я пользы от graphl кроме - join с нескольких сервисов с баз ( настораживает ) - когда нужно бысто поднять бек без какой либо логики, все пусть на фронте разбираются - публичное api ничего больше, не вижу смысла

Александр
25.12.2017
20:06:22
Ну можно json-rpc сделать. Только принципиальная разница то какая? :)

Nikolay
25.12.2017
20:06:55
Ну можно json-rpc сделать. Только принципиальная разница то какая? :)
можно вообще все в один хэндлер запихать и делать на него POST, да. Только надо от логики исходить всегда

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