⚡ Ссылки Курс по Nest.js и Typescript: purpleschool.ru/course/nestjs Курс по микросервисам на Nest.js: purpleschool.ru/course/microservices Видео про Nest.js: ruclips.net/video/AtCxtu8Suvc/видео.html Видео про AstroNvim: ruclips.net/video/LKnuIazeiM4/видео.html Видео про декораторы в TypeScript 5.0: ruclips.net/video/-ZFprXU3-RA/видео.html Документация Nest.js: nestjs.com Мой telegram канал: t.me/purple_code_channel Все мои курсы: purpleschool.ru
Это великолепно!) Спасибо большое NestJS после Express кажется сильно удобнее) Особенно после того, как в Express пытался соблюдать структуру аналогичную в NestJS, используя импровизированные controllers и services)
В целом очень чувствовалось желание автора сделать контент понятным, и первая часть прям таки достойна уважения, но после середины появилась некая спешка, когда служебные слова и команды идут без особого пояснения, а тип пишем так потому что так надо. Называть эндпоин create тоже такое, потом ломаешь голову связанно с этой историей или нет, понятно что когда давно с технологией работаешь это на уровне интуиции, но когда только начинаешь знакомиться такие перлы расстраивают
Спасибо за полезный материал по NestJS. По ощущениям, работа с ним (судя по материалу) похожа на работа со Spring Boot в Java. Меня интересует вопрос по производительности. Вы упомянули, что "самые тяжелые приложения могут запускаться в течении 3-4 секунд". Является ли это правдой для систем. сравнимых Apache Airflow (и прочими Оркестраторами) или других систем, которые требуют множнство различнх внешних интеграций? Или подобная система будет загружаться дольше? Если да, то насколько?
Как можно визуализировать модули? Было бы очень интересно... Какой-то необычный тулинг - это всегда круто. Ещё видел что Nest.js недавно свои девтулзы выпустили, тоже очень интересно.
Самый главный вопрос, как - подключить - админ панель? Почему у пайтона есть Джанго с готовой админкой, а у неста нет? nest-admin не хочет устанавливатся на актуальную версию неста, другие админки тоже со своими причудами, например AdminJS как я понял не работает с настройками commonjs. Неужели все пишут кастомные админки?)
Не подскажите, что бы Вы рекомендовали использоватm вместо typegoose (который Вы использовали в своем курсе, но библиотека уже не поддерживается разработчиками)?
Антон, застряло... на 39:15, подчеркивает 'beforeExit' и говорит что type string not assignable to parameter of type 'never'. PS: ok, заменил this.$on на process.on (нагуглил, хотя многое пока неясно..) и вроде заработало...
Спасибо за видео, хороший обзор. Подскажите, пожалуйста, IOC контейнер в Nest позволяет забиндить интерфейс на его реализацию? Контролер (да и почти любой сервис) ведь по хорошему должен зависеть от интерфейса а не от реализации.
спасибо за ваши видео. хотел спросить что вы думаете про springboot -там кажется всего так много и много написано, кажется что nest как-то намного проще и делает те же функции
Этот урок не для чайников прочтите документацию потом смотрите , так как слишком многое без пояснений . Это скорее практический урок для начинающих а не вводный урок. Все равно спасибо автору за такой труд
Покупал ваш курс по nestjs на юдеми в 2021 году. Есть ли принципиальные новшества в вашем курсе по nest на purpleschool? Там другой проект? Или новинки фреймворка освещены? Вот думаю брать или нет. Стартовые видео одни и те же.
Хотел вопрос задать, что делать если тебе не хочется изучать html and css? Нужно ли Бэкендеру изучать их? Можно ли изучать JavaScript для бэкенда, не зная Html and css?
Никогда не понимал клавиатурного кретинизма у всех многочисленных учителей в RUclips: как возможно [постоянно] ошибаться в каждом втором простом англ. слове, которых по работе десятки-сотни раз за день пишешь, ппц. Но видео в целом полезное.
@@PurpleSchool почему вдруг не надо. Я хочу писать на чистом js и этого достаточно. Чтобы писать чистый код не нужно внешних принудительных абстракций, нужна внутренняя дисциплина и хорошее командное код ревью
@@СергейБит Сразу видно, чел никогда не работал в крупных проектах) То что ты описал, выглядит гладко в теории, на практике это сломается уже спустя месяц
Это не сравнимые вещи. Express - простейший фреймворк для обработки запросов. Чтобы написать на нём приложение полноценное надо затащить кучу всего: DI, тесты, архитектуру и так далее. Nest - готовое решение, которое в качестве http роутинга использует тот же экспесс (а можно в 2 нажатия заменить на fasify). Рекомендую посмотреть моё первое видео обзор, там детально рассказывается почему Nest.
@@PurpleSchool не особо вижу связи между тем, что он условно позволяет, и то как это все обильное обмазывание абстракциями сказывается на производительности конечного приложения и роста сложности входа (если действительно вникать, а не принимать черную коробку как должное). Это все не бесплатно, и мы уже все проходили в других ЯП, и опять вернулись на исходную. Для большого монолита наверно имеет право на жизнь, в контексте микросервисов - медленная сложная проприетарная черная коробка, которую не пофиксить самому в случае чего костылем, а это не то что обещает эта архитектура- простота, минимализм, всеядность и выразительность микросервисов. Вообще особого смысла в этом нет, если давно это придумано на джаве с уже давно известными плюсами и минусами.
здравствуйте Антон. досмотрел ваш курс, полностью разобрался с нестом, хорошо его понимаю. собственно вопрос, куда двигаться дальше? заканчиваю 4 курс университета, хочется уже устроиться на свою первую работу, но не знаю как и куда двигаться далее. заранее спасибо за ответ!
Все зависит от вашей цели, если утроится бэкендом, то готовиться и начинать проходить собеседования. Ну и конечно подтянуть базы данных и прочие сопутствующие вещи и теорию ноды. У меня она в отдельном курсе по Node.js
Сначала устройся на работу, потом ты узнаешь что на самом деле ты полностью не разбираешься. Тебя ткнут в то, что ты не знаешь и поймешь куда двигаться дальше
У кого ошибка "Модуль ""@prisma/client"" не имеет экспортированного элемента "PrismaClient"." делаем следующее: -в shema.prisma находим generator client и добавляем туда "output = "../node_modules/.prisma/client"" у меня вышло так: generator client { provider = "prisma-client-js" output = "../node_modules/.prisma/client" } -снова делаем миграцию "npx prisma migrate dev" -меняем "import { PrismaClient } from "@prisma/client"";на "import { PrismaClient } from "../../node_modules/.prisma/client"" (Обратите внимание что путь к папке у вас может отличаться, но если вы делали все по видео то должен совпасть);
А еще у вас могла возникнуть ошибка "Аргумент типа "string" нельзя назначить параметру типа "never"." в database.service.ts, в этом месте "this.$on('beforeExit', async () => {", я решил ее так: -зажимаем ctrl и кликаем в $on, попадаем в index.d.ts (это внутри модуля призмы) -находим строку " $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): void;" (у меня это 59 строка, возможны отличия в зависимости от версии) -в части кода "eventType: V" добавляем "| string", чтобы вышло "eventType: V | string", должно перестать ругаться p.s. Баганый какойто этот ваш Prisma...
Производитедьность кто-то смотрел? Говорят этот оверхед понижает производительность express в 10 раз. При том, что express сам по себе медленный. А под fastify из коробки работает минимум, остальное костыли клепать надо.
Конечно, и про понижение в 10 раз, полный бред. Вот официальные бенчмарки, которые измеряются при PR: github.com/nestjs/nest/blob/master/benchmarks/all_output.txt Понижение менее 5%, которое можно считать не значительным.
Это вам матч часть нужно учить. Нест узкоспециализированный инструмент, очевидно подразумевается что вы уже обладаете какой то базой, а это вам практический урок
Конечно есть. А это бесплатная часть, чтобы познакомить людей с фреймворком. При чем тут инфоциганство? Я продаю качественные продукты, но для этого людям надо понять качество подачи.
⚡ Ссылки
Курс по Nest.js и Typescript: purpleschool.ru/course/nestjs
Курс по микросервисам на Nest.js: purpleschool.ru/course/microservices
Видео про Nest.js: ruclips.net/video/AtCxtu8Suvc/видео.html
Видео про AstroNvim: ruclips.net/video/LKnuIazeiM4/видео.html
Видео про декораторы в TypeScript 5.0: ruclips.net/video/-ZFprXU3-RA/видео.html
Документация Nest.js: nestjs.com
Мой telegram канал: t.me/purple_code_channel
Все мои курсы: purpleschool.ru
У тебя macOS на виртуалке стоит или это мак мини? И да кстати, какое у тебя железо стоит?
Это великолепно!)
Спасибо большое
NestJS после Express кажется сильно удобнее)
Особенно после того, как в Express пытался соблюдать структуру аналогичную в NestJS, используя импровизированные controllers и services)
Да, именно)
Очень здорово, спасибо. На удивление получилось даже с базой данных, хотя до этого призму никогда не видел.
Супер 👍
Антон, спасибо.
Куплю твой курс по Nest.js , он того стоит.
Супер)
Хорошее видео, благодарю. Дополняю мерн нестом.
@@podpalmoi 👍
Вот реально инфа структурирована. Если сказал контрллеры разбираем, то разбираем только контроллеры. Это настоящий преподаватель
рот широк
оооо почти час крутого контента, то что нужно!
Спасибо)
Обожаю ваши уроки nest js как раз подъехал 🎉
Спасибо)
Обожаю Ваши уроки! Все четко и ясно! Спасибо за контент!
Спасибо!
Материал очень полезный
От vim'a правда глаза вытекают, но это вкусовщина)
😂
Антон, большое спасибо за видео!
Получилось очень сжато, информативно и доступно!
Желаю Вам и вашему каналу успехов в развитии!
Спасибо!
Антон радует просто космическими темпами. Жду не дождусь Linux
Да, будет)
@@PurpleSchoolантон, можете сказать, почему используете prisma, а не тот же typeorm?
Удобные миграции, нет кучи багов, которые годами не решаются. Удобные API для запросов. В целом можно посмотреть мой обзор)
@@PurpleSchool реквестую обзор на призму. насколько умные там миграции? умеют сами за изменениями в моделях следить?
ДА ДА ДА! Прошу уделите бэк энду больше времени, сделайте полный, подробный курс про Nest JS...
Так есть же: purpleschool.ru/course/nestjs
Мне курс ваш по восмерке понравился на удеми.
Спасибо)
Прекрасный контент, спасибо :)
Пожалуйста!
Православный контент.
Святой лайк от Христа 👍
супер уроки -ждем еще, понравилось
Спасибо!
Очень полезное видео, спасибо!
Спасибо
В целом очень чувствовалось желание автора сделать контент понятным, и первая часть прям таки достойна уважения, но после середины появилась некая спешка, когда служебные слова и команды идут без особого пояснения, а тип пишем так потому что так надо. Называть эндпоин create тоже такое, потом ломаешь голову связанно с этой историей или нет, понятно что когда давно с технологией работаешь это на уровне интуиции, но когда только начинаешь знакомиться такие перлы расстраивают
Да, очень понравился. Похож на Spring Web в Java😄
Решил вот на нем небольшой проект сделать с фронтом на Vue.js
Подумываю о покупке курса)
@@НиколайСкородумов-л7з 👍
дякую Антон за класні уроки!
Спасибо!
Спасибо за полезный материал по NestJS. По ощущениям, работа с ним (судя по материалу) похожа на работа со Spring Boot в Java. Меня интересует вопрос по производительности. Вы упомянули, что "самые тяжелые приложения могут запускаться в течении 3-4 секунд". Является ли это правдой для систем. сравнимых Apache Airflow (и прочими Оркестраторами) или других систем, которые требуют множнство различнх внешних интеграций? Или подобная система будет загружаться дольше? Если да, то насколько?
У нас огромный проект стартует секунд 10, но это никак не влияет на работу.
Не стоит забывать в каких условиях запускаются проекты
В догоночку к этому, было бы неплохо сделайть гайд по шарингу интерфейсов между микросервисами)
Это у меня уже разобрано в этому курсе: purpleschool.ru/course/microservices
@@PurpleSchool В курсе рассматривается кейм монорепы. Я же имею ввиду мультирепозиторий
Тогда npm самый просто вариант или git sub modules
Писал бак часть для диплома в стеке nest, graphql, prisma
Такой кайф испытал от разработки, топ инструмент
Полностью согласен)
Как можно визуализировать модули? Было бы очень интересно... Какой-то необычный тулинг - это всегда круто. Ещё видел что Nest.js недавно свои девтулзы выпустили, тоже очень интересно.
Их тулзы для визуализации зависимостей платные, но есть альтернатива. Сделаю видео.
Спасибо вам за курс а когда будет проект с использованию nestJs
В курсе с наставником есть практический проект по Nest. Или я не понял вопрос?
Все гуд, а зачем эти красные мигающие глюки по-всюду? Типа тест на раздражительность?
Самый главный вопрос, как - подключить - админ панель?
Почему у пайтона есть Джанго с готовой админкой, а у неста нет?
nest-admin не хочет устанавливатся на актуальную версию неста, другие админки тоже со своими причудами, например AdminJS как я понял не работает с настройками commonjs.
Неужели все пишут кастомные админки?)
@@Rohan-Sensei ни разу не пользовался готовой админкой
Nest Next Nuxt - фантазия походу отсутствует напрочь ...
Вы ещё забыли Nixt: github.com/nix-community/nixt
@@PurpleSchool ага, а вот что еще chatGPT нашёл)
Node
Nuxt
Nest
Next
Neon
Nava
Nino
😂
И ладно бы это был только бэк, или только фронт, типа фишка направления. Но нет! 😅
Боже, ну хоть кто то это упомянул. Я думал только меня одного это бесит
Не подскажите, что бы Вы рекомендовали использоватm вместо typegoose (который Вы использовали в своем курсе, но библиотека уже не поддерживается разработчиками)?
Nestjs-mongoose, которая рассматривается в обновленных лекциях
06:37 почему у меня строчка bootstrap(); подчеркнута и пишет про then?
Антон, застряло... на 39:15, подчеркивает 'beforeExit' и говорит что type string not assignable to parameter of type 'never'. PS: ok, заменил this.$on на process.on (нагуглил, хотя многое пока неясно..) и вроде заработало...
можно использовать ts-ignore
но лучше этим не баловаться
Спасибо за видео, хороший обзор.
Подскажите, пожалуйста, IOC контейнер в Nest позволяет забиндить интерфейс на его реализацию? Контролер (да и почти любой сервис) ведь по хорошему должен зависеть от интерфейса а не от реализации.
Конечно, мы можем указать через интерфейс и указать useClass, который его реализует
спасибо за ваши видео. хотел спросить что вы думаете про springboot -там кажется всего так много и много написано, кажется что nest как-то намного проще и делает те же функции
Nest для JS и TS, и да, он достаточно простой
Подскажите пожалуйста, а как удалить с помощью команды сгенерированные файлы после nest g mo co ...
Круто! Подскажите новичку пару мониторов для программирования. На каких вы работаете?
Это старые LG, один широкоформатный, второй 4K
Этот урок не для чайников прочтите документацию потом смотрите , так как слишком многое без пояснений . Это скорее практический урок для начинающих а не вводный урок. Все равно спасибо автору за такой труд
Спасибо
подскажите что за программа с помощью которого вы отправляли http запросы: полльзуюсь обычно curl но ваш намного удобнее
Это httpie
@@PurpleSchool огромный рахмет
А как называется это шрифт? Очень приятен глазу
JetBrains Mono
А как правильно делать моки базы данных, чтобы в основной ничего не изменялось? Или предполагается, что тесты будут запущены на локальной бд?
E2e обычно запускаются но отдельной базе данных, которая перед тестами чистится. А для unit можно мокать методы репозитория.
А можно использовать всю эту красоту на фронтенде? Бекенд на другом языке будет написан
На фронте похожую архитектуру имеет Angular
спасибо что лучше выбрать ларавел или нест для изучения и погружения и для дальнейшего - мучусь уже полгода-подскажите
Зависит от языка. Если TS. То сначала основы ноды, потом Nest, если PHP, то Laravel не плох, но это php…
@@PurpleSchool большое спасибо
Покупал ваш курс по nestjs на юдеми в 2021 году. Есть ли принципиальные новшества в вашем курсе по nest на purpleschool? Там другой проект? Или новинки фреймворка освещены?
Вот думаю брать или нет. Стартовые видео одни и те же.
Они одинаковы с курсом на Udemy. И там и там добавлены новые дополнительные лекции.
@@PurpleSchool спасибо за ответ)
Круто! Когда ждать видос по Angular?😏
Сложный вопрос)
Хотел вопрос задать, что делать если тебе не хочется изучать html and css? Нужно ли Бэкендеру изучать их? Можно ли изучать JavaScript для бэкенда, не зная Html and css?
Да, можно. У меня как раз так и построен курс: purpleschool.ru/course/javascript-advanced
HTML и CSS тут не критичны
как только столкнешься с шаблонизаторами, будешь дергать фронтов на каждый чих
сейчас версия 10 уже у nest, интересно сильно ли расходится с версией 9 на которой вы работаете тут ?
У меня есть отдельное видео с обзором: ruclips.net/video/LywYydwT1t0/видео.html
ты лучший
Спасибо!
@@PurpleSchool жду видео по поиску лучших практик
он еще и комменты здесь - чистит ))
будет ли какой-то новый курс по несту новый с призмой или тайпорм?
Будет отдельный курс по архитекуре Nest и там будет Prisma
Оо супер
Спасибо)
Никогда не понимал клавиатурного кретинизма у всех многочисленных учителей в RUclips: как возможно [постоянно] ошибаться в каждом втором простом англ. слове, которых по работе десятки-сотни раз за день пишешь, ппц.
Но видео в целом полезное.
А вы попробуйте держать повествование, план по лекции в голове, говорить и печатать.
А где посмотреть без TS(язык не совместим со мной)?
На Nest нельзя писать без TS, да и в целом без него не надо писать
@@PurpleSchool почему вдруг не надо. Я хочу писать на чистом js и этого достаточно. Чтобы писать чистый код не нужно внешних принудительных абстракций, нужна внутренняя дисциплина и хорошее командное код ревью
@@СергейБит Сразу видно, чел никогда не работал в крупных проектах) То что ты описал, выглядит гладко в теории, на практике это сломается уже спустя месяц
Люди до изобретения компьютерной мыши би лайк:
Сравнивали с Adonisjs?
Тут сложно сравнивать. Nest популярен, куча либ сторонних, а вот Adonis нет
А чем express хуже nest? Я глянул статистику гугл запросов, экспрес куда популярнее nest
Это не сравнимые вещи. Express - простейший фреймворк для обработки запросов. Чтобы написать на нём приложение полноценное надо затащить кучу всего: DI, тесты, архитектуру и так далее. Nest - готовое решение, которое в качестве http роутинга использует тот же экспесс (а можно в 2 нажатия заменить на fasify). Рекомендую посмотреть моё первое видео обзор, там детально рассказывается почему Nest.
@@PurpleSchool спасибо за ответ)
@@PurpleSchool Так может не надо тащить свой DI в JS, превращая все это в медленное Г подобное джаве? =))
Не вижу связи между скорость и DI. DI и IOC позволяет нам строить грамотную архитектуру, писать простые тесты с mock.
@@PurpleSchool не особо вижу связи между тем, что он условно позволяет, и то как это все обильное обмазывание абстракциями сказывается на производительности конечного приложения и роста сложности входа (если действительно вникать, а не принимать черную коробку как должное). Это все не бесплатно, и мы уже все проходили в других ЯП, и опять вернулись на исходную. Для большого монолита наверно имеет право на жизнь, в контексте микросервисов - медленная сложная проприетарная черная коробка, которую не пофиксить самому в случае чего костылем, а это не то что обещает эта архитектура- простота, минимализм, всеядность и выразительность микросервисов. Вообще особого смысла в этом нет, если давно это придумано на джаве с уже давно известными плюсами и минусами.
здравствуйте Антон. досмотрел ваш курс, полностью разобрался с нестом, хорошо его понимаю. собственно вопрос, куда двигаться дальше? заканчиваю 4 курс университета, хочется уже устроиться на свою первую работу, но не знаю как и куда двигаться далее. заранее спасибо за ответ!
Все зависит от вашей цели, если утроится бэкендом, то готовиться и начинать проходить собеседования. Ну и конечно подтянуть базы данных и прочие сопутствующие вещи и теорию ноды. У меня она в отдельном курсе по Node.js
Сначала устройся на работу, потом ты узнаешь что на самом деле ты полностью не разбираешься. Тебя ткнут в то, что ты не знаешь и поймешь куда двигаться дальше
а еще жидким калом обосрешся на первых тасках.Увы и ах😢
@@waltergibbs3041 по себе не судят) сейчас стажируюсь, вроде как все отлично
@@nocap7223 та скока я таких видел,все запуганные первые месяцы как хомячки при громком звуке.Вообще нужно за универ платить и работать паралельно
У кого ошибка "Модуль ""@prisma/client"" не имеет экспортированного элемента "PrismaClient"." делаем следующее:
-в shema.prisma находим generator client и добавляем туда "output = "../node_modules/.prisma/client"" у меня вышло так:
generator client {
provider = "prisma-client-js"
output = "../node_modules/.prisma/client"
}
-снова делаем миграцию "npx prisma migrate dev"
-меняем "import { PrismaClient } from "@prisma/client"";на "import { PrismaClient } from "../../node_modules/.prisma/client"" (Обратите внимание что путь к папке у вас может отличаться, но если вы делали все по видео то должен совпасть);
А еще у вас могла возникнуть ошибка "Аргумент типа "string" нельзя назначить параметру типа "never"." в database.service.ts, в этом месте "this.$on('beforeExit', async () => {", я решил ее так:
-зажимаем ctrl и кликаем в $on, попадаем в index.d.ts (это внутри модуля призмы)
-находим строку " $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): void;" (у меня это 59 строка, возможны отличия в зависимости от версии)
-в части кода "eventType: V" добавляем "| string", чтобы вышло "eventType: V | string", должно перестать ругаться
p.s. Баганый какойто этот ваш Prisma...
Странный хак, во всех проектах работало их коробки по инструкции на сайте.
Лучше всего обходиться без Next и ли Express. На чистой ноде можно делать всё.
А почему лучше? На чистой ноде делать велосипеды для рейтинга, промежуточных обработчиков и всего остального?
Дык а зачем нода, если есть плюсы. А там и до машинного кода не далеко...
с. Я не буду писать ему отдельный интерфейс 25.33/ 26.10 Создадим папочку dto )
Remix круче, нет?
Remix - frontend фреймворк, nest - backend
@@PurpleSchool нет, это fullstack
Курс всего за 2к? Круто.
Именно
Производитедьность кто-то смотрел? Говорят этот оверхед понижает производительность express в 10 раз. При том, что express сам по себе медленный. А под fastify из коробки работает минимум, остальное костыли клепать надо.
Конечно, и про понижение в 10 раз, полный бред. Вот официальные бенчмарки, которые измеряются при PR: github.com/nestjs/nest/blob/master/benchmarks/all_output.txt
Понижение менее 5%, которое можно считать не значительным.
Видео старовато с нестом 9.0, хотя сейчас 9.4.
Видео записывалось вчера!) Он пишет всегда ^9.0.0 в package.json, а ставит последнюю 9-ю версию. ^ - означает что допустима версия до 10.
юзлес гайд без пояснения действий
Согласен.
Это вам матч часть нужно учить. Нест узкоспециализированный инструмент, очевидно подразумевается что вы уже обладаете какой то базой, а это вам практический урок
видео не о чем. Рассказал бегло, что есть контролер, провайдер, модуль
У вас же есть нормальный курс по несту, зачем это инфоцыганство? Заяем очередной рваный пересказ документации?
Конечно есть. А это бесплатная часть, чтобы познакомить людей с фреймворком. При чем тут инфоциганство? Я продаю качественные продукты, но для этого людям надо понять качество подачи.