
Nikolay
25.12.2017
19:32:02

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

Nikolay
25.12.2017
19:35:17

xPushkin
25.12.2017
19:35:44

Nick
25.12.2017
19:35:53

Demuz
25.12.2017
19:36:01

Nikolay
25.12.2017
19:36:07

Nick
25.12.2017
19:36:22

Nikolay
25.12.2017
19:36:29

Google

Nick
25.12.2017
19:36:41

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

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

xPushkin
25.12.2017
19:37:23

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

Nick
25.12.2017
19:37:38

Andrey
25.12.2017
19:38:05

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

Nikolay
25.12.2017
19:38:52

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
Да ничего там не плохо)))?

Demuz
25.12.2017
19:41:21

Nick
25.12.2017
19:41:45

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

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

Nick
25.12.2017
19:42:13

Demuz
25.12.2017
19:42:30

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

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

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

Nick
25.12.2017
19:44:49

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

Nikolay
25.12.2017
19:56:28
тут дело не в graphql, а в прокладке между стулом и монитором

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

Nikolay
25.12.2017
19:59:19

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

Andrey
25.12.2017
19:59:46

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 пихается и все быстро и хорошо работает.

Nikolay
25.12.2017
20:02:53

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

Nikolay
25.12.2017
20:03:16

Александр
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
фронт не должен хотеть ничего за пределами этого протокола, как и бэк не должен отдавать

Александр
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
ничего больше, не вижу смысла

Nikolay
25.12.2017
20:05:35

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

Nikolay
25.12.2017
20:06:55