ждем курс, который бы включал prisma, nest, rabbitmq, redis, postgresql для бекенда (Elasticsearch туда же неплохо), а то работодатели нынче все хотят и сразу, теперь и мы хотим все и сразу)
Спасибо. Было бы еще интересно посмотреть как на призме правильно реализовать механизм soft delete. У них есть это в документации, но у меня так и не получилось нормально сделать, постоянно какие-то ошибки сыпятся.
вот нашёл такой комент на просторах ютуба ) Problem in prisma : 1. you can only have one prisma schema file, imagine how big it is when the app contain 20 model. 2. There is no hooks for model, 3. You can't extend the model class 4. Soft deleting is possible, but too verbose 5. There is no global scope utility
@@PurpleSchool - невозможно управлять кэшем. БД постгрес объемом менее 1гб съедает призмой 12 гигабайт виртуальной памяти и невозможно дебажить что внутри этого кэша что и зачем и как туда попадает. Приводило к остановке продакшна раз в три недели. - Призма генерирует на нашем размере структуры в 60 таблиц 1 файл по овер 100 типов на каждую таблицу в итоге бандл призмы это Десятки Тысяч! строк, который весит мегабайты! на котором при открытии Шторм подвисает на новых райзенах у него начинает память в ява машине течь из-за количества синтаксического анализа, а из этого файла подсасываются типы для статического анализа как штормом так и линтером например. - Обновление версии ноды или призмы приводило иногда к тому что типы в призме начинают генерироваться по другому после чего приходилось делать рефакторинг из-за сломавшейся типизации во многих частях проекта - В призме невозможно откатить миграцию (изменение в БД) откат миграции возможен только если миграция упала при применении, если она не выдала ошибку при применении - откатить нельзя :( в итоге при наличии неконсистентных данных в БД и релизе ветки которая в тесте была ок - могли сыпаться ошибки при запуске продакшна, а миграцию откатить нельзя потому что она уже успешно применилась и пока продебажишь и напишешь миграцию поверх миграции - прод полчаса простоял - Призма не дружелюбна к тому что в ней структуру апдейтят в разных ветках. Если в одной ветке миграция есть с новым полем, а в другой нет, то при попытке сделать новую миграцию она будет просить уничтожить все данные и применить все миграции заново. - Из-за этого с призмой сложно выстроить флоу когда есть два бекендера и более, при этом каждый может выстрелить себе призмой в ногу. В итоге чтобы просто сделать миграцию, нужно помнить от какой ветки у тебя сейчас состояние локальной базы и создастся у тебя миграция или придется дропать базу, переключаться на мастер, применять миграции от него, возвращаться в ветку в которой работал накатывать дамп данных чтобы БД была не пустой и можно было протестировать фитчу и только после этого сделать миграцию, надеясь что сделал правильную и ее не придется удалять т.к. если ее придется отменять то все опять по кругу... На момент принятия решения о переходе еще не знал что есть такое: Prisma поддерживает генерацию моделей на основе схемы GraphQL с помощью интеграции @prisma/generator, и это позволяет избежать дублирования моделей между Prisma и GraphQL, так как они будут автоматически синхронизированы на основе схемы GraphQL. И была проблема описания моделей в призме рядом с такими же моделями для GraphQL получалось дублирование типов и поддержка одинаковых описаний структур данных в двух местах, что неимоверно бесило. Искал такое решение, но нашел только после того как уже начали переписывать на TypeORM, спасибо коллегам, которые уходили от нас и на собесах говорили что их достала призма - кто-то из интервьюверов подсказал решение. Работая с prisma, когда на стендапе кто-то из коллег делился очередной раз как потратил дофига лишнего времени из-за очередного говна с призмой уже не надо было объяснять никому что именно с ней не так, а менеджер и техлид с пониманием и сочувствием говорили разработчику в течении года "потерпи мы скоро с нее съедем". И за обедом с коллегами тоже только и говоррили о том, как хорошо переехать с призмы на нормальную ORM и как счастливо заживем после этого. В итоге с TYPE ORM тоже съли боли. Но обернули в нем метод find небольшой оберткой, которая позволила сократить переписывание кода запросов в prisma-стиле и избавить от проблем интерпритации relation и условий к ним относящихся, работающей не правильно в Type ORM. Но это совершенно меньшая боль, по сравнению с выше описаным в prisma.
@@nik_sem Исходя из статистики (любящих/ ненавидящих) призму, Я так понимаю, Prisma подходит для маленьких или мало-средних проектов, где запросы к БД в целом не сложные, для более сложных лучше выбирать другие ORM. Для Node JS для SQL что лучше посоветуете изучать? Слышал для TS лучше выбирать TypeORM. Пробовал Entity Framework для C# и MS SQL, шикарный Mongoose для Mongo DB на Node JS. А вот для Postgres пока не решил, за что браться изучать, сейчас пишу на Prisma по советам блохеров.
В своём проекте на TypeScript выбрал MikroORM, т.к. Prisma делит всё на несколько запросов, и оказывается медленнее других ORM из-за своей архитектуры. Если верить бенчмарку IMDBench, Prisma почти в 2 раза медленнее TypeORM.
Не хейчу prisma но все проблемы которые были описаны в видео, решаются в sequelize. Почему я не слышу на этом канале про него? scopes, hooks вообще отличные, очень нравятся.
Антон подскажите пожалуйста. В некоторых туториалах prisma и prisma-client ставят в dependancy , а в других только клиента в dependancy и prisma в devDependancy. Как правильнее и почему?
Prisma генерит типы where, select и тд для моделей в пространстве имен Prisma в @prisma/client. Чтоб определить для модели post типизированный блок where. import { Prisma } from '@prisma/client' -> const postWhere: Prisma.PostWhereInput = {}
начал только использовать призму, сразу начала бесить проблема с методом delete. Который кидает ошибку припопытке выполнить удаление по айдишнику которого уже нет в базе. После других орд это прям бесит. Как боритесь с этим? ловить ошибку или проверять запросом перед удалением выглядит как костыль
@@PurpleSchoolесли делать удаление через релейшены (delete: true) то ошибку не захендлить нормально. Почему этого минуса нет в видео. На гитхабе куча постов с этой проблемой уже несколько лет, и простыни жалоб
Она конечно удобная, но на продакшене не совсем удобно создавать теневую базу данных, а так же из минусов геморой с тем, что она по дефолту читает DATABASE_URL из .env файла когда у тебя несколько env файлов для разных сред , а так супер :)
пробовал sequelize и typeorm - как-то не очень удобно, нужно ломать голову как настроить миграции и всё остальное. а prisma сразу завелась и миграции в виде sql, который красиво подсвечивается в IDE - очень удобно.
@@PurpleSchool Привет! Я использую стек nest, typeorm, typeorm-transactional. Очень нравится подход, когда транзакция наследуется вместе с вызываемыми в контексте методами. К сожалению, в typeorm много проблем, которые не решаются из года в год, поэтому для нового проекта ищу новую ORM. Насколько я знаю, в Prisma не все хорошо с привычными транзакциями, Interactive transactions только появился и еще не присутствует возможность хотя бы управлять типами блокировок. Хотел бы попросить, в видео про сравнение ормок, детальнее рассмотреть вопросы связанные с транзакциями. Интересно было бы узнать еще про mikroorm.
Антон, подскажите, пожалуйста, как решить эту проблему? Prisma needs to perform transactions, which requires your mongodb server to be run as a replica set.
@@PurpleSchool Я не обосо бэк, но разве нельзя запросы хранить по файлам с подсветкой, а в node приложении их просто читать через fs? При билде можно будет заранее в ts файлы как переменные выгрузить как объект и по ключам если ENV прод вставлять в те места где обращается через fs?
Подскажите, можно ли в vim который вы используете настроить деплой на удаленный сервер и наоборот подгрузку файлов, сравнение и т.д.?) если да, могли бы вы записать видео на эту тему?)
Привет, спасибо за видео.Возник вопрос: допустим у нас есть связь один ко многим (user; Post модели).Мы же получается можем сделать связь между ними как со стороны модели user через connect,так и создавая пост также через connect по id?
У Prisma очень не понравилось удаление, когда нужно удалить по условию, она по этому условию находит ключи и по ним удаляет. А еще при вставке значений она зачем-то получает весь объект и отключить никак нельзя, а при множественной вставке существенно влияет на производительность
Много из тех, кто пользовал Prisma, очень хорошо отзывается о MikroORM, говоря, что она решает те проблемы, которые в данный момент имеют Prisma и TypeORM. Будет очень круто, если бы сделал обзор на эту ORM 👍
mikro orm это лучшее что на рынке есть, призма это просто такая боль адская, просто не перевариваю её после 3х месяцев работы, у меня вообще иногда складывается ощущение что автор канала мазохист. В микроорм ты можешь делать полноценные классы с полноценным инкапсулированным функционалом, писать максимально декларативно и абстрактно, удобная система транзакций и минимализм, с призмой ты постоянно должен чёто компилировать, нет поддержки в integel idea, в ней там работать нереально, (лень всё перечислять) кароче я мнение автора вообще не понимаю и не разделяю
Клиент для go вроде поддерживается сообществом, так же есть для rust и есть что-то для генерации entity на c# Конечно жаль, что призма щас остается только на ts/js, так как хотелось бы стандартизации во всех микросервисах добиться)
Все CRUD операции на prisma проходят значительно дольше, чем на том же sequelize. Разница в 2-5 раз (read быстрее, update/ delete дольше). С чем это может быть связано?
Пока единственное преимущество TypeORM перед Prisma, судя по Вашему видео, это типизированный 'where' в случае "собирания" условий а потом внедрении их в запрос. В TypeORM давно тип для 'where' описанной сущности есть, и это капец удобно, ждем в Призме)
Решил я впилить призму в существующий проект с бд, так она после первой миграции (db pull, diff) и добавления новой таблицы в схему предложила сделать ресет всей базы и стереть данные. Полдня искал как сделать нормальное обновление бд, так и не нашёл. Выкинул это г*вно
Кстати, все вот говорят, что нужно устанавливать @prisma/client, но это не так. @prisma/client автоматически создается при генерации призмой типов командой `prisma generate`.
Загловок видео не соответствует содержанию. "Обзор Prisma ORM для Node.JS" подошло бы лучше. Утверждать что это лучшая орм было бы правильно если бы в видео был хотя бы какой то сравнительный анализ хотя бы двух орм.
@@microspacer вот именно. я тоже не понимаю зачем нужно ORM в принципе. если в итоге всеравно SQL запрос, который принципиально невозможно как-то упростить.
синтаксис SQL запросов тяжело читать. поэтому давайте создадим ORM, что-бы можно было точно так же тяжело читать код, при этом еще и предварительно потратив время на изучение синтаксиса ORM. ох уж эти бесполезные фреймворки и библиотеки, которые НИЧЕГО не упрощают... зачем их используют, если проще их НЕ использовать ?? просто типа мода такая или что ?
⚡Курс по Node.js c Prisma: purpleschool.ru/course/nodejs
Антон, не хочу показаться бестактным, но рассмотрите элайнеры, Вы ведь блогер, картинка тоже важна. От чистого сердца.🤗
мое почтение и уважение за вашу просветительскую деятельность. благородным делом занимаетесь товарищ.
Благодарствую
Спасибо за видео, Антон. Будет интересно посмотреть про typeORM
Принято)
Офигеть, призма еще жива, 4 года назад ей пользовался, дружил с создателями и бухал с ними на GraphQL Conf. Крутые типы, много толковых ребят собрали
Да, и очень даже развивается
ждем курс, который бы включал prisma, nest, rabbitmq, redis, postgresql для бекенда (Elasticsearch туда же неплохо), а то работодатели нынче все хотят и сразу, теперь и мы хотим все и сразу)
👍
Спасибо. Было бы еще интересно посмотреть как на призме правильно реализовать механизм soft delete. У них есть это в документации, но у меня так и не получилось нормально сделать, постоянно какие-то ошибки сыпятся.
Здравствуйте, пожалуйста, подскажите, какое расширение вызывает проблемы рядом с кодом ? Заранее спасибо !
Очень крутое видео, особенно порадовало наличие сложных примеров из большого проекта
Спасибо!
Побольше бы таких видео
Спасибо) Выпускаю каждую неделю, но не всегда про Node.js
в тайпорм иожно очень просто типизировать вложенные поля если надо where вынести. Просто where надо протипизировать как сам typeOrm подсказывает
вот нашёл такой комент на просторах ютуба )
Problem in prisma :
1. you can only have one prisma schema file, imagine how big it is when the app contain 20 model.
2. There is no hooks for model,
3. You can't extend the model class
4. Soft deleting is possible, but too verbose
5. There is no global scope utility
Сделали проект на Prisma Orm прожили на ней 2 года, с болью переехали на Type Orm, довольны
Почему переехали?
@@PurpleSchool
- невозможно управлять кэшем. БД постгрес объемом менее 1гб съедает призмой 12 гигабайт виртуальной памяти и невозможно дебажить что внутри этого кэша что и зачем и как туда попадает. Приводило к остановке продакшна раз в три недели.
- Призма генерирует на нашем размере структуры в 60 таблиц 1 файл по овер 100 типов на каждую таблицу в итоге бандл призмы это Десятки Тысяч! строк, который весит мегабайты! на котором при открытии Шторм подвисает на новых райзенах у него начинает память в ява машине течь из-за количества синтаксического анализа, а из этого файла подсасываются типы для статического анализа как штормом так и линтером например.
- Обновление версии ноды или призмы приводило иногда к тому что типы в призме начинают генерироваться по другому после чего приходилось делать рефакторинг из-за сломавшейся типизации во многих частях проекта
- В призме невозможно откатить миграцию (изменение в БД)
откат миграции возможен только если миграция упала при применении, если она не выдала ошибку при применении - откатить нельзя :(
в итоге при наличии неконсистентных данных в БД и релизе ветки которая в тесте была ок - могли сыпаться ошибки при запуске продакшна, а миграцию откатить нельзя потому что она уже успешно применилась и пока продебажишь и напишешь миграцию поверх миграции - прод полчаса простоял
- Призма не дружелюбна к тому что в ней структуру апдейтят в разных ветках. Если в одной ветке миграция есть с новым полем, а в другой нет, то при попытке сделать новую миграцию она будет просить уничтожить все данные и применить все миграции заново.
- Из-за этого с призмой сложно выстроить флоу когда есть два бекендера и более, при этом каждый может выстрелить себе призмой в ногу. В итоге чтобы просто сделать миграцию, нужно помнить от какой ветки у тебя сейчас состояние локальной базы и создастся у тебя миграция или придется дропать базу, переключаться на мастер, применять миграции от него, возвращаться в ветку в которой работал накатывать дамп данных чтобы БД была не пустой и можно было протестировать фитчу и только после этого сделать миграцию, надеясь что сделал правильную и ее не придется удалять т.к. если ее придется отменять то все опять по кругу...
На момент принятия решения о переходе еще не знал что есть такое:
Prisma поддерживает генерацию моделей на основе схемы GraphQL с помощью интеграции @prisma/generator, и это позволяет избежать дублирования моделей между Prisma и GraphQL, так как они будут автоматически синхронизированы на основе схемы GraphQL.
И была проблема описания моделей в призме рядом с такими же моделями для GraphQL получалось дублирование типов и поддержка одинаковых описаний структур данных в двух местах, что неимоверно бесило.
Искал такое решение, но нашел только после того как уже начали переписывать на TypeORM, спасибо коллегам, которые уходили от нас и на собесах говорили что их достала призма - кто-то из интервьюверов подсказал решение.
Работая с prisma, когда на стендапе кто-то из коллег делился очередной раз как потратил дофига лишнего времени из-за очередного говна с призмой уже не надо было объяснять никому что именно с ней не так, а менеджер и техлид с пониманием и сочувствием говорили разработчику в течении года "потерпи мы скоро с нее съедем". И за обедом с коллегами тоже только и говоррили о том, как хорошо переехать с призмы на нормальную ORM и как счастливо заживем после этого.
В итоге с TYPE ORM тоже съли боли. Но обернули в нем метод find небольшой оберткой, которая позволила сократить переписывание кода запросов в prisma-стиле и избавить от проблем интерпритации relation и условий к ним относящихся, работающей не правильно в Type ORM. Но это совершенно меньшая боль, по сравнению с выше описаным в prisma.
@@nik_sem Исходя из статистики (любящих/ ненавидящих) призму, Я так понимаю, Prisma подходит для маленьких или мало-средних проектов, где запросы к БД в целом не сложные, для более сложных лучше выбирать другие ORM. Для Node JS для SQL что лучше посоветуете изучать? Слышал для TS лучше выбирать TypeORM. Пробовал Entity Framework для C# и MS SQL, шикарный Mongoose для Mongo DB на Node JS. А вот для Postgres пока не решил, за что браться изучать, сейчас пишу на Prisma по советам блохеров.
@@nik_sem а в чем смысла переезда с одной ORM на другую? Писали бы просто SQL запросы, и никаких проблем.
Здравствуйте, откуда взяли "post" на 13-58 минуте?
В своём проекте на TypeScript выбрал MikroORM, т.к. Prisma делит всё на несколько запросов, и оказывается медленнее других ORM из-за своей архитектуры. Если верить бенчмарку IMDBench, Prisma почти в 2 раза медленнее TypeORM.
Не хейчу prisma но все проблемы которые были описаны в видео, решаются в sequelize. Почему я не слышу на этом канале про него? scopes, hooks вообще отличные, очень нравятся.
Антон подскажите пожалуйста. В некоторых туториалах prisma и prisma-client ставят в dependancy , а в других только клиента в dependancy и prisma в devDependancy. Как правильнее и почему?
Prisma генерит типы where, select и тд для моделей в пространстве имен Prisma в @prisma/client. Чтоб определить для модели post типизированный блок where. import { Prisma } from '@prisma/client' -> const postWhere: Prisma.PostWhereInput = {}
начал только использовать призму, сразу начала бесить проблема с методом delete. Который кидает ошибку припопытке выполнить удаление по айдишнику которого уже нет в базе. После других орд это прям бесит. Как боритесь с этим? ловить ошибку или проверять запросом перед удалением выглядит как костыль
@@efimovmaksim обрабатывать ошибку конечно
@@PurpleSchoolесли делать удаление через релейшены (delete: true) то ошибку не захендлить нормально. Почему этого минуса нет в видео. На гитхабе куча постов с этой проблемой уже несколько лет, и простыни жалоб
Она конечно удобная, но на продакшене не совсем удобно создавать теневую базу данных, а так же из минусов геморой с тем, что она по дефолту читает DATABASE_URL из .env файла когда у тебя несколько env файлов для разных сред
, а так супер :)
Спасибо за дополнение 👍
спасибо, попробую
Пожалуйста!
пробовал sequelize и typeorm - как-то не очень удобно, нужно ломать голову как настроить миграции и всё остальное. а prisma сразу завелась и миграции в виде sql, который красиво подсвечивается в IDE - очень удобно.
Спасибо за контент! 13:08 немного не понял про миграции. Можно ли обойтись без них?
Можно писать миграции вручную
Спасибо! Антон, можно ли сделать сравнительный анализ популярных ORM? Либо такие обзоры всех популярных :)
Да, вполне
@@PurpleSchool Привет!
Я использую стек nest, typeorm, typeorm-transactional. Очень нравится подход, когда транзакция наследуется вместе с вызываемыми в контексте методами.
К сожалению, в typeorm много проблем, которые не решаются из года в год, поэтому для нового проекта ищу новую ORM.
Насколько я знаю, в Prisma не все хорошо с привычными транзакциями, Interactive transactions только появился и еще не присутствует возможность хотя бы управлять типами блокировок.
Хотел бы попросить, в видео про сравнение ормок, детальнее рассмотреть вопросы связанные с транзакциями. Интересно было бы узнать еще про mikroorm.
@@herenickname расскажите пожалуйста что за проблы и почему typeorm а не sequilize юзули ?
Антон, подскажите, пожалуйста, как решить эту проблему? Prisma needs to perform transactions, which requires your mongodb server to be run as a replica set.
Нужно, чтобы mongo была запущена в кластере для транзакции
А кто-то знает, есть ли такой тип данных (или его можно сделать), чтобы хранить просто дату, без времени. И, соответственно, просто время без даты?
В WebStorm 2022.3.1 заявили поддержку "Prisma ORM support" через официальный плагин. Можете оценить полноту поддержки?
Сейчас не использую подписку Jetbrains, поэтому сказать не могу.
А почему ORM будет только мешать? В любой адекватной ORM можно писать сам голый SQL запрос, и там как раз учесть все сложности
Верно, но это менее удобно, чем хранить отдельный файлы sql с подсветкой
@@PurpleSchool Я не обосо бэк, но разве нельзя запросы хранить по файлам с подсветкой, а в node приложении их просто читать через fs? При билде можно будет заранее в ts файлы как переменные выгрузить как объект и по ключам если ENV прод вставлять в те места где обращается через fs?
Подскажите, можно ли в vim который вы используете настроить деплой на удаленный сервер и наоборот подгрузку файлов, сравнение и т.д.?) если да, могли бы вы записать видео на эту тему?)
Обычно для выкладки я использую Docker и Ansible, поэтому так сложно сказать
Кстати, как prisma дружит с ts-node? У меня проект без сборки, написан на typescript, я смогу использовать призму?
Конечно, она же просто генерит клиент и дальше работает как и любой другой TS код
Привет, спасибо за видео.Возник вопрос: допустим у нас есть связь один ко многим (user; Post модели).Мы же получается можем сделать связь между ними как со стороны модели user через connect,так и создавая пост также через connect по id?
Если нужно создать, то можно использовать create, connect просто соединяет записи.
@@PurpleSchool это я понял, но связать можно как со стороны «один», так и со стороны « ко многим»?
Да.
@@PurpleSchool понял,спасибо
У Prisma очень не понравилось удаление, когда нужно удалить по условию, она по этому условию находит ключи и по ним удаляет. А еще при вставке значений она зачем-то получает весь объект и отключить никак нельзя, а при множественной вставке существенно влияет на производительность
жесть... Сочуствую тем кто юзает призму. Не стал бы её использовать.
Подскажите, что за чудесный шрифт используется? Это Fira code?
Это AI Writer Mono
@@PurpleSchool Благодарю)
0:20 Плинтус: "Am I a joke to you ?"
Много из тех, кто пользовал Prisma, очень хорошо отзывается о MikroORM, говоря, что она решает те проблемы, которые в данный момент имеют Prisma и TypeORM. Будет очень круто, если бы сделал обзор на эту ORM 👍
mikro orm это лучшее что на рынке есть, призма это просто такая боль адская, просто не перевариваю её после 3х месяцев работы, у меня вообще иногда складывается ощущение что автор канала мазохист.
В микроорм ты можешь делать полноценные классы с полноценным инкапсулированным функционалом, писать максимально декларативно и абстрактно, удобная система транзакций и минимализм, с призмой ты постоянно должен чёто компилировать, нет поддержки в integel idea, в ней там работать нереально,
(лень всё перечислять)
кароче я мнение автора вообще не понимаю и не разделяю
Клиент для go вроде поддерживается сообществом, так же есть для rust и есть что-то для генерации entity на c#
Конечно жаль, что призма щас остается только на ts/js, так как хотелось бы стандартизации во всех микросервисах добиться)
Да, было бы отлично)
А какая разница, если это не твоя зона ответственности? Или тут в дело вступает внутренний перфекционист?
А почему Призму устанавливаем с флагом -D?. Типа на продакшене она не нужна? )))
Сама prisma нет, она во время сборки соберёт "@prisma/client", который и будет использоваться.
Антон а есть в планах реакт на Next с наставником?
Да, конечно
Про mikro-orm есть что сказать? Если был опыт конечно)
К сожалению не работал с ней, не могу оценить.
Typeorm работает с миграцими лучше имхо
Все CRUD операции на prisma проходят значительно дольше, чем на том же sequelize. Разница в 2-5 раз (read быстрее, update/ delete дольше). С чем это может быть связано?
Не сталкивался, к сожалению.
Пока единственное преимущество TypeORM перед Prisma, судя по Вашему видео, это типизированный 'where' в случае "собирания" условий а потом внедрении их в запрос. В TypeORM давно тип для 'where' описанной сущности есть, и это капец удобно, ждем в Призме)
Там он на самом деле есть если зайти в типы, но каждый раз его искать не очень удобно.
Эх, а я ждал create и сопутствующую проблему с типами...
А какие там проблемы?
Так же будут неудобства с гео запросами
Это верно
Антон, привет. Какие мысли про ChatGPT?
Не изучал детально.
Решил я впилить призму в существующий проект с бд, так она после первой миграции (db pull, diff) и добавления новой таблицы в схему предложила сделать ресет всей базы и стереть данные. Полдня искал как сделать нормальное обновление бд, так и не нашёл. Выкинул это г*вно
Нужно делать только генерацию миграции и накатывать вручную на существующую базу
@@PurpleSchoolочень удобно.😂
А GraphQL это не ORM ?
Нет, это модель взаимодействия с backend, так же как и API
Безумно неудобно все модели базы данных хранить в одном файле prisma...
Это верно
в роудмапе у них стоит разделение на разные файлы
Чем она лучшая ее синтаксис через одно место описан в плагине Вебшторм. А это как минимум уже отсутствие покрытия иде и ты как в блокноте
Да в webstorm поддержка плохая
уже вышел новый плагин где всё четко
Кстати, все вот говорят, что нужно устанавливать @prisma/client, но это не так. @prisma/client автоматически создается при генерации призмой типов командой `prisma generate`.
Загловок видео не соответствует содержанию. "Обзор Prisma ORM для Node.JS" подошло бы лучше. Утверждать что это лучшая орм было бы правильно если бы в видео был хотя бы какой то сравнительный анализ хотя бы двух орм.
ОРМ в проекте очень мешает мне.
А какую ORM используете?
@@PurpleSchool sqlalchemy. Я сначала пишу запрос, потом думаю как реализовать его на ОРМ. Потом бросаю эта затею. Двойная когнитивная нагрузка.
@@microspacer вот именно. я тоже не понимаю зачем нужно ORM в принципе. если в итоге всеравно SQL запрос, который принципиально невозможно как-то упростить.
синтаксис SQL запросов тяжело читать. поэтому давайте создадим ORM, что-бы можно было точно так же тяжело читать код, при этом еще и предварительно потратив время на изучение синтаксиса ORM. ох уж эти бесполезные фреймворки и библиотеки, которые НИЧЕГО не упрощают... зачем их используют, если проще их НЕ использовать ?? просто типа мода такая или что ?
Чего? В каком месте ORM сложно читаемая? Наоборот код более читаемый чем SQL запросы
@@vladislove1337 давай я тебе сейчас типичный sql запрос скину, а ты мне его реализуешь с помощью orm, ок ?
@@404Negative давай для начала ты мне за это деньги скинешь, а потом уже поговорим что тебе там реализовать
@@vladislove1337
@@vladislove1337 деньги грит, скинешь ахахахах. не, вы посмотрите на него, деньги грит, скинешь ору лол.
сложно обьясняешь
Хрень, все нужно писать в одном файле, тогда лучше SequelizeORM, TypeORM