Size: a a a

NestJS — русскоязычное сообщество

2021 February 04

D

Dmitriy in NestJS — русскоязычное сообщество
Правда там нет версионинга, т.к. у RAWG его на уровне API нет
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Aleksandr Bukhalo
graphql решает определённые проблемы, говорить что можно сделать на ресте тоже самое это глупо, сорри
Какие? Возможность юзеру выбирать то, что он хочет? Очень классно, особенно запросы к БД оптимизировать под нагрузкой, наверное.
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
почитай ссылку
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
там всё более чем подробно описано
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Veaceslav Artiom
:D да нееее, все с этим нормально. Вопрос то в том что не скорость ответа, а скорость работы самого графа.
Я же вижу по тестам что загрузка это где-то 1-2мс
ну ты часть можешь на протобаф переделать, ниче сложного нет там, между мс вроде хттп2 нормально работает
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
Как вообще этой "фигней" пользоваться, чтоб собрать формочку для сохранения данных? Наверное надо идти к бекендерам за консультацией.
Каждый ендпоинт описывается примитивными типами, нет "сложных" типов
Нет связей между типами, не известно как оптимальнее всего запросить связанные ресурсы
Жирные ответы, если не прикрутить фильтр по полям. Но даже если есть фильтр по полям, то ленивых фронтендеров, которые ими не пользуются - никто не отменял.
Нет возможности построить сложный агрегационный запрос без участия бэкендера
Из-за REST API нет возможности использовать Apollo Client или Relay, приходиться использовать Redux, MobX
Самый жирный минус:

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

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
вот если коротко
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
🏡 ILshat Khamitov
ну ты часть можешь на протобаф переделать, ниче сложного нет там, между мс вроде хттп2 нормально работает
Я вот тоже думаю над этим.
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
я у себя так и планировал, там где граф будет тупить попробовать на протобаф, если не изменится скорость или небольшой + то отсавить граф
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
а вообще по тсп же можно напрямую долбанутся к мс, у тя же внутрення шляпа, не обязательно граф внутри юзать так то))
источник

LK

L K in NestJS — русскоязычное сообщество
json rpc ) самый тупой и простой формат
легче чем рест в плане понимания ) но теже проблемы у фронта будут что и с рестом
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
🏡 ILshat Khamitov
а вообще по тсп же можно напрямую долбанутся к мс, у тя же внутрення шляпа, не обязательно граф внутри юзать так то))
Я вообще чутка (сильно) думаю переделывать, буду ставить gRpc между мс-ами, очередь пусть будет у них внутри на том же bull, а вот общение с фронтом скорее всего переедет на REST ибо я вот смотрю на этот проект и понимаю что граф тут нужен грубо говоря на 4-5% не более.
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
Dmitriy
"не будет кодгена" - почему ж? Есть же генерация REST по Swagger-спецификации
"не будет возможности выбирать данные на клиенте без изменения кода сервера" - это как раз хорошо, ибо надёжно
>> "не будет возможности выбирать данные на клиенте без изменения кода сервера" - это как раз хорошо, ибо надёжно

это твоё надёжно обычно заканчивается тем, что клиент сделает 10 запросов, чтобы забрать данные, вместо одного.
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Veaceslav Artiom
Я вообще чутка (сильно) думаю переделывать, буду ставить gRpc между мс-ами, очередь пусть будет у них внутри на том же bull, а вот общение с фронтом скорее всего переедет на REST ибо я вот смотрю на этот проект и понимаю что граф тут нужен грубо говоря на 4-5% не более.
сабскрипшены задобаешся руками реализовывать) на веб сокетах
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
а учитывая что бекендер заранее знает как проще и быстрее забрать данные, это должен делать он, а не клиент
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
🏡 ILshat Khamitov
сабскрипшены задобаешся руками реализовывать) на веб сокетах
Слушая, а я вот не уточнял (может ты в курсе), у нас Angular может как-то доставить данные через gRpc ?
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
у нас на работе так работает, есть клиент жеж
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
🏡 ILshat Khamitov
у нас на работе так работает, есть клиент жеж
Так я не в курсе вообще, не смотрел gRpc пока вообще. Тогда вообще можно выпилить и REST и будет чисто gRpc
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Aleksandr Bukhalo
Как вообще этой "фигней" пользоваться, чтоб собрать формочку для сохранения данных? Наверное надо идти к бекендерам за консультацией.
Каждый ендпоинт описывается примитивными типами, нет "сложных" типов
Нет связей между типами, не известно как оптимальнее всего запросить связанные ресурсы
Жирные ответы, если не прикрутить фильтр по полям. Но даже если есть фильтр по полям, то ленивых фронтендеров, которые ими не пользуются - никто не отменял.
Нет возможности построить сложный агрегационный запрос без участия бэкендера
Из-за REST API нет возможности использовать Apollo Client или Relay, приходиться использовать Redux, MobX
Самый жирный минус:

Фронтендеры пишут кучу бойлерплейт кода, для получения связанных данных между ресурсами. Часто гадают на кофейной гуще. Часто с матами. Лучше и правильнее чем бэкендер, который проектировал модели и базу, никто такие связи на клиенте не построит.
Ты так пишешь, потому что, возможно, думаешь, что я о GraphQL ничего не знаю. Это не так, я читал на эту тему, и ту статью я сейчас тоже поглядел. Лично для меня аргумент вида "Нет возможности построить сложный агрегационный запрос без участия бэкендера" очень странный. Потому что в реальных условиях с GraphQL ты его точно так же не сделаешь без бэкендера. Потому что под капотом там всё равно SQL-запрос, который нужно строить (учитывая возможности конкретных СУБД) и после этого оптимизировать. Невозможно оптимально реализовать логику, заранее не продуманную на бэкенде.

"Как вообще этой "фигней" пользоваться, чтоб собрать формочку для сохранения данных? Наверное надо идти к бекендерам за консультацией." - с GraphQL ты точно так же будешь ходить к бэкендерам. Может не в первые месяцы разработки, но будешь. Когда данных переваливает за десятки миллионов, вопрос оптимизации всё поставит раком.
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Veaceslav Artiom
Так я не в курсе вообще, не смотрел gRpc пока вообще. Тогда вообще можно выпилить и REST и будет чисто gRpc
источник