Size: a a a

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

2020 March 06

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Alexander Pezikov
Народ, а может кто-нибудь объяснить: за что ответственны сервисы? Как разграничивать логику?
Допустим, есть у меня сервис пользователя. У пользователя есть комментарии. Я должен получить пользователя вместе со всеми его комментариями.
а) в сервис пользователя и инжектю репозиторий юзера и репозиторий комментариев и делаю запросы к этим двум репозиториям
б) в сервис пользователя  делаю инжект репозитория пользователя и сервиса комментариев и получаю комментарии через сервис комментариев

Когда в сервис инжектить другие репозитории, а когда другие сервисы?
В графе все так и работает, у тя все не зависимо и когда надо конектишь сущности
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Но если запросов много подобных, тогда прав @bowzee
источник

IK

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

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Я ща так пилю и не страдаю, если страдаю то перевожу в сырой sql
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Скажи нет преждевременной оптимизации)
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Alexander Pezikov
Народ, а может кто-нибудь объяснить: за что ответственны сервисы? Как разграничивать логику?
Допустим, есть у меня сервис пользователя. У пользователя есть комментарии. Я должен получить пользователя вместе со всеми его комментариями.
а) в сервис пользователя и инжектю репозиторий юзера и репозиторий комментариев и делаю запросы к этим двум репозиториям
б) в сервис пользователя  делаю инжект репозитория пользователя и сервиса комментариев и получаю комментарии через сервис комментариев

Когда в сервис инжектить другие репозитории, а когда другие сервисы?
Сервис это не точка доступа к таблице в базе данных. Строй сервис над доменом юзера и делай в нём нужные тебе обработчики, хоть с комментариями, хоть без комментариев. При этом работа с отдельным комментарием может быть отдельным доменом, инкапсулирующим все CRUD операции
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Нужно мыслить не базой данных а бизнесовыми сущностями в системе. Какие они есть, какие над ними возможны операции. БД вторична и неважна.
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Важны когда много данных и тогда нужно на уровне запросов к базе решать
источник

DB

Dilame Bowzee in NestJS — русскоязычное сообщество
ILshat Khamitov
Такое редко, в основном тока для ботов когда трилион запросов, люди так не могут, и потход графа вывозит
Для таких ситуаций есть ❤️Hasura ❤️
Делать такое ручками на несте больно, мне кажется, что даже неправильно.
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
ILshat Khamitov
Важны когда много данных и тогда нужно на уровне запросов к базе решать
Это всего лишь детали доступа к бд, система должна проектироваться так, чтобы бд можно было легко заменить
источник

DB

Dilame Bowzee in NestJS — русскоязычное сообщество
Andrey Melikhov
Это всего лишь детали доступа к бд, система должна проектироваться так, чтобы бд можно было легко заменить
Противник хранимых процедур detected :)
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Dilame Bowzee
Противник хранимых процедур detected :)
А у них есть сторонники?
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Хранимки - это архитектурный ад
источник

DB

Dilame Bowzee in NestJS — русскоязычное сообщество
Andrey Melikhov
А у них есть сторонники?
Да, и их очень много) Я один из них, кстати.
Я считаю, что датацентричные приложениия можно (и нужно) разрабатывать в базе данных.
источник

DB

Dilame Bowzee in NestJS — русскоязычное сообщество
Andrey Melikhov
Хранимки - это архитектурный ад
Хранимки выполняются ближе всего к данным. Также они всегда выполняются в транзакции.
Это даёт прямо-таки суперсилу. Вещи, которые на JS занимают пару дней и 1000 строк кода в БД делаются за пару часов и 100 строк кода
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Dilame Bowzee
Да, и их очень много) Я один из них, кстати.
Я считаю, что датацентричные приложениия можно (и нужно) разрабатывать в базе данных.
Ну возможно, я бы не хотел строить OLAP-кубы в приложении.
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Dilame Bowzee
Хранимки выполняются ближе всего к данным. Также они всегда выполняются в транзакции.
Это даёт прямо-таки суперсилу. Вещи, которые на JS занимают пару дней и 1000 строк кода в БД делаются за пару часов и 100 строк кода
Я бы вообще не стал делать датацентричное приложение на js :)
источник

DB

Dilame Bowzee in NestJS — русскоязычное сообщество
Andrey Melikhov
Ну возможно, я бы не хотел строить OLAP-кубы в приложении.
Разработка в БД != построение OLAP-кубов)
источник

DB

Dilame Bowzee in NestJS — русскоязычное сообщество
Andrey Melikhov
Я бы вообще не стал делать датацентричное приложение на js :)
А на чём?
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
В одном потоке дробить числа— как себе затея
источник