Ура! Вышло новое видео, где мы с Андреем Мелиховым обсуждаем текущее состояние и будущее Node.js для разработки и разработчиков. ✅ Подписывайтесь на канал «Организованное программирование» в Telegram: t.me/orgprog
Как на бэке TS в Express понижает производительность, если TS превращается в JS и потом на Node JS запускается? В чистом виде TS не запускается за исключением конечно экспереметального режима сырого
Я на Nest JS + Type ORM уже более 5 лет. За это время сделал ОГРОМНОЕ количество проектов - как не большие микросервисы, так и весьма емкие монолиты. Более удобного и крутого решения я еще не видел. Sping Boot просто нервно курит в сторонке (с точки зрения простоты и удобства) тем более после 8 лет разработки на Java было с чем сравнить! Нагрузки - максимальные что были около 5к req/sec. Все зависит исключительно от понимания того что ты делаешь и как ты это делаешь. На сколько легко можно подключиться микросервисы в Nest JS - это вообще отдельная песня! Сейчас работаю над проектом где 17 микросервисов - все на NestJS + mono repo. Просто песня
Плюсую. Сам на Несте много пописал... Только хорошие впечатления... И никогда не хотелось плакать что нет НодеВейДатабейс лейера 😂😂 видимо Кирилл привык к такому подходу
На самом деле отлично, что многие считают, что нода это просто инструмент для bff, потому что в это время мы пишем проекты любой сложности и практически не имеем конкуренции 🙃
Без обид, но Андрей находится реально в пузыре Яндекса, где Node js используют для BFF и инструментов developer инфры. Но если глянуть на рынок России, то куча больших и маленьких компаний пишут полноценный бэк на Node js. Например, МТС, Райффайзен, Астра, Росатом, Билайн, X5, QClean и это только кого я знаю. Я бы сказал Node js отъела и отъедает солидный кусок у Java, Python и PHP. От Nest js я тоже не в восторге, приятней Fastify js. Если хочется, что-то похожее на Laravel можно посмотреть на Adonis Js
МТС? Странно, в моем стриме ноды вообще нет, ну кроме фронта). Везде пайтон да джава. Кое где встречается гошка. Надо глянуть техрадар других направлений. Но про ноду я очень редко слышу в экосистеме МТС. Имею в виду бэк
@mokevnin у встроеных тестов node есть одно приемущество с ним по уолчанию можно использовать нодовскую библиотеку assert про которую знает typescript, сужая типы по мере продвижение по тесту. Что часто бывает очень удобно. А вот всякие jest, ava и т.д. часто имею у себя в комплекте свои функции проверки про которые typescript ничего не знает и приходится дублировать условия.
на мой взгляд себя хорошо показала связка prisma orm + graphql + кодогенерация плагином prisma-nestjs-graphql удобно шарить типы, не нужно руками описывать dto, фильтры, пагинации и большую часть рутинных типовых запросов мой перфрорманс вырос по скорости разработки х3 уже написал 4 бекенд приложения на ноде, опыт разработки 9 лет
@@eugenekalashnikov9331 я использую плагины кодогенерации, все объекты для графкуэль, все возможные поиски, уcловия, пагинации из призмы генерятся. 1) пишу базовый класс который содержит реализацию всех методов призмы круды и не только, поиски. генерирую призмой объекты вокруг бизнес сущности и прокидываю типы при наследование 2) генерирую графкуль объекты с декораторами, подкладываю в нужные query и mutation 3) пишу код схемы, наследуюсь класс, генерю объекты gql, готово - скорость разработки х10 4) на фронте можно использовать все возможности призмы при необходимости
Хорошо, что наткнулся на это видео. Как человек последние года 2 пишущий на годе, а до этого писавший фронтенд, скажу, что у ноды будут проблемы с подготовкой нормальных спецов , пока не будет нормальных туториалов. Все книги, которые в основном вижу дают самые основы, а затем переходят к использованию экспресса. Многие вещи, которые позволяет сделать нода просто не освещаются. Если книги чуть посложнее, например, "node.js patterns", то там местами вообще вещи объясняются так, как будто вы пришли из другого яп.
@@MrChelovek68 да неправда. Посмотрел тут недавно кратко "Програимируем на python" Лутца - очень хороший учебник, аналога которого в node.js нет и по ходу не будет
@@igorsavelev9013 в основном. и два тома многовато так то. но все же, все одно,бро. я вот си курю терь,мне оч нравится,ток литературы маловато нормальной. чтоб не "переписывание очередной спецификации языка".
Мне кажется на старте проекта нет смысла заморачиваться с выбором языка. Напомню, что instagram и facebook были написаны лютым говнокодом на php5. Выросли -- сменили язык, парадигму и тд (когда уже денег было хоть сжигай в печке)
Про нест кстати да. Дико усложнен. Express надстройка над nodejs. Nest надстройка над express. Две абстракции. Не надо на js стараться писать как на Java. На Js нужно писать как на js :)
Ну ведь у classic Yarn в шапке написано, переходите на новый Yarn. Если используешь в проекте "yarn berry" - то левый разработчик даже это не заметит, так как бинарник хранится в репозитории, и автоматически подхватывается обычным `yarn`. Апгрейд на Yarn Berry - это команда "yarn set version 4.x" (кстати да, Yarn уже давно четвертой версии). Фичи, которые предоставляет Yarn 4 не снились ни pnpm, ни npm. Говорить о том, что Yarn - мертв - это по меньшей мере скоропалительные похороны.
Нет у Ноды никакой проблемы с Постгресом. npm i pg и вперёд или в Фастифай есть плагин тоже на pg построен. Скорость норм за счет асинхронности + есть пул коннектов. Темплейт литералы вообще спасают если нужно трехэтажный запрос отформатировать.
Последние 6 лет пишу то что тут собеседники называют "рич бэкенд" на ноде. Фронта вообще не касаюсь. Использую декораторы - ну а чо, у нас нет требований отвечать за 2 микросекунды. (В пет проектах не использую, без них функциональности хватает). Всё участники процесса - заказчики/менеджмент/техлиды/разработчики - довольны.
Про обратную совместимость в nodejs. Это очень спорный вопрос . Если проект тольк на чистой годе без сторонних пакетов то возможно. А в жизни даже с 16 на 18 иногда не получается перейти
Я уверен, что будущее именно за нодой и тайпскриптом в частности. Первое, это обратная совместимость, как в джаве, второе - единый язык фронта и бэка. Кто отрицает это очевидное преимущество уже страдает проф деформацией
@@igor-grudinin всю свою сознательную жизнь писал на php. Энтерпрайз в основном. Я уже тестировал эту идею с typescript на фронте и беке. Сейчас один проект развиваем, шаблоны на vue ts в виде классов, контроллеры и формы тоже на ts в виде классов. Показывает себя прекрасно, а скорость разработки при этом иксуется в разы. Мы, конечно, движок в паблик выкладывать не будем, но с уверенностью могу заявить, что будущее за такими. Потому что если это приправить модульной архитектурой и синхронными запросами в базу (что у нас уже реализовано), даёт форму по качеству и поддержке всем известным ларавелям джангам и некстам, а собирается всё командой из докера. А с учётом развития вебвью, так это ещё и разработка кроссплатформенных приложений в одном месте. Так что вряд ли тебе меня получится убедить в обратном, потому что на практике я убедился в другом)
Никто не заставляет в express обмазываться миддлварами. Пиши как хочешь. У тебя есть нормальные объективы request, response - делай с ними что хочешь. А вот на nest как раз под капотом генерируется и в итоге куча всяких функций, тонны всякого г вызывается, чтобы отдать вшивый json.
Я наоборот сторонник Bun, хочу какой нибудь пет-проект на нем целиком сделать и фронт и бэк. Но в целом тоже смотрю на переход в голанг, а то как то сложно работу найти на ноде, значит подтвердились мои подозрения что нода мало кому нужна (((
на 11:35 обсуждают совместный релиз бек и фронт эндов и как-бы соглашаются, что это неправильно. Почему так? Объясните джуну чем плохо обновлять приложение целиком?
Подводя итог можно сказать что область применения ноды свелось к бфф. Из своего опыта разработки могу сказать что когда-то очень сильно подсел на ноду но потом увидев какой там орм в сиквалайзе плюнул и ушел, это был 2021 год, может сейчас все лучше. Сейчас подсел на флаттер, кайфую от разработки на нем на бэке использую ларавел - лучше Eloquent в орм ничего не встречал. Насчет низкой производительности php - это достаточно спорный вопрос. Октана сильно выручает.
Оч много кто даже в пхп-мире не шарит, что в нем уже норм неблокируемые асинхронные подходы (swoole, octane) с корутинами, что уже за ребят из JS-мира говорить. Зато в питоне и гошечке они почему-то шарят. Это так, не в упрек ребятам, просто забавный и не очень приятный факт.
@@astkh4381 ни разу не сталкивался с тем, что одного потока не хватает, хотя я и не занимался хайлоадом. А в чём проблема заспавнить воркеры для многопоточности?
У ноды сейчас нету альтернативы в плане full typesafe подхода на уровне prebuild во время разработки. Даже хайповая гошка. а в ней все используют stdlib и стремаются использовать orm. Пишут запрос через sql строки. Где там проверка вообще, можно в рантайме упасть. Значит нужно писать тесты еше на стадии прототипа/проверки идеи. TS сильно ушел вперед в плане dx по сравнению с другими платформами.
Странные замечания конечно. По-моему ничего страшного в том чтобы писать SQL руками. Орм нужен для решения определенных задач, типа фильтрации... для решения такой задачи прийдётся писать свой квериБилдер, чтобы этого не делать используют готовый... Если все время пишешь магазины может тебе без орм и не обойтись, в остальном лучше снижать налог на незнание SQL
Кирилл косякнул с дыханием в микрофон, но он ведет себя энергично и активно. Мелихов настроил микрофон хорошо и дает кучу полезной инфы, классный профессионал, но сколько можно засыпать на ходу, что с тоном, что с подачей, ну емое, как так то?
Как всегда контент топ,вс нравится, но емае, пошел за ссылкой на лекцию об ошибках и их обработке как ФП и других ЯП, что упоминули в ролике. Как найти?
Те люди, что пишут здесь про drizzle, вы идиоты. Я затестил ваш drizzle, все дырявое, типы не подтягиваются. Поддержка mysql на нуле. Ну ок, может быть на postgres все норм, но нет, там те же проблемы. Сотни проигнорированных issues на гитхабе. И что по итогу мы имеем? Просто красиво оформленную доку, в которой инфы минимум. Все ваши новомодные инструменты от того и дохнут быстро, что нет никакой поддержки, нет никакого продукта, а есть только маркетинг
Видно что Кирилл на ноде вообще не пишет и не знаком с экосистемой js (без негатива) Поэтому разговор получился про обсуждение какой-то вкусовщины... вот мне это не нравится... вот тут чего-то не хватает... плюс Андрей супер спокойный чел и похоливарить тоже не получилось, а хотелось чуть движняка... Я бы с радостью похоливарил
@@mokevninКирилл, я без негатива, но видно что ты не джаваскриптизер. Хоть и не сомневаюсь, что ты пишешь код периодически, особенно на рельсе. И да мои извинения что сказал что ты вообще не писал на js
Кирилл смотрит на код как бы со стороны, я кстати так же. Если он ощущает дискомфорт, так и говорит. Опять таки сравнить npm и composer. На npm через год проект скачаешь и сто пудово пакеты не встанут сразу. У composer все четкнько. Поэтому зачем выгораживать ноду и js. Как есть так и говорит
@@iBezlepkinдруг ты фиксировать версии у зависимостей пробовал? Или просто от друзей этот тезис услышал 😂 что там у тебя не встанет я не знаю, но вот у меня если крышку у зависимости убрать, то вообще никогда проблем не возникало
Отличный язык, но крайне нишевый. Работы нет и за пределами России я только двух разработчиков смог встретить за 2 года. У BEAM и OTP есть очень много преимуществ и вместе с Elixir и Phoenix можно получить все это практически бесплатно.
Я бы не стал за ноду грустить... О себе переживайте (без негатива). Грустным мне видео показалось потому что никто так и не раскрыл свои аргументы, больше на вкусовщину похоже
На io задачах там есть asyncio, но оно во-первых сбоку наспех прилеплено (см здесь же свежий выпуск с Юрием Селивановым), а во-вторых не для всей инфры есть асинхронные либы (н-р Кликхаус) или есть, но со странностями.
@chasubavil я вообще про треды говорил которые там всегда поддерживались, при чем тут asyncio, то что оно есть я знаю, то что там не все из коробки с ними работает тоже.
@mokevnin Кирилл, прикрепите, пожалуйста доклад, который гость упоминал на 1:34:31: th-cam.com/video/T6Os27MKUCQ/w-d-xo.html Дмитрий Махнёв Артём Кобзарь - (не|ну)жная монада Either на практике и в теории
Datalens значительно проще подключить и обслуживать, да и в целом порог входа для пользователя ниже. Хотя конечно Суперсет пока (пока!) богаче по возможностям
Как будто бы нода хайповала в один момент, все переписывали всё на неё, а потом резко пропала из инфополя. Наверное нашла свою нишу в лёгком bff и всем показалось, что этого достаточно или может отсутствие самодостаточного фреймворка сделало своё дело (nest это все-таки ts, думаю поэтому он не так взлетел и не стал нодовским ларавелем, т.к. не всем ts заходит)
@@mokevninпочему попытка? Хороший подход для организации когда и проекта, хотя временами конечно оверкилл, но очень быстро привыкаешь и потом думается и читается легко и просто
Понял. Node не собирается развивать свой backend потенциал. Пойду дальше писать на GoLang и учить TypeScript только потому что Фронт нужен в любом веб-проекте.
@@PragmaticPragmatist пусть пусть идут побольше в свой Go, нам на Php эта стадная тенденция уже дала свои плоды, достаточно только дать намек что ты хочешь сменить компанию и HRы сразу заваливают предложениями с зп знатно выше чем на Go)
А я где-то сказал про nodemon? не помню ) Конечно сейчас можно watch, но в большинстве проектов вы увидите nodemon, watch только только из экспериментов вышел
Уже последние года два как можно в проде использовать drizzle или prisma + zod все типы напрямую из базы идут + trpc/hono rpc прослойкой. Типы руками не нужно прописывать тем более шарить их между сервисами. Весь смысл единой и крепкой связки ts когда типы из схемы базы идут. Плюс сейчас есть hono который под любой рантайм идет, cloudflare workers или по классике bun/node в контейнере. Единственное во всем этом компоте правильно монорепу настроить. Либо сразу готовый бойлерплейт найти.
Одно из самых глупых, что я продолжаю слышать постоянно это то, что у нас есть фронтэндер, давай ка ты еще бэком займешься, видимо потому, что и там и там есть слово javascript) Это еще условно может работать в обратную сторону, но уж точно не так, это же просто два разных мира и области применения языка, синтаксис тут роль играет не третью и даже не пятую
Насмотрелся я тут на фулстаков как фронтендер, грустно довольно, поэтому сам принципиально пока не лезу на бэковую поляну и мне прекрасно. Уж лучше мочь в чем то одном хорошо, чем делать вид во всем)
@@kot-duott Конечно же нет) Фронт на данном этапе это монстр и с каждым годом все страшнее становится. Минимально адекватный руководитель понимает, что искать одного человека под две области применения невыгодно, как минимум по времени разработки, как максимум по качеству, если надо делать плюс минус что то более серьезное чем форма связи
Тоже интересует - почему так упорно мучаются с ts, матюкаются, долбаются, и упорно грызут кактус. Все что на ts в разы медленней. Читал есть идея ввести четкую типизацию в ноду, это же сразу уберет ненужный ts, меньше гимора. Очень жду реализацию такого режима. В пыхе же сделали - включаете режим четкой типизацию - получаем как скорость так и типы.
У меня один вопрос, почему 1С смогла прийти и за пару лет разнести все эти костыльные веб-велосипеды, выкатив Элемент, а все мировое сообщество годами занимается онанизмом скрещивая фронт и бэк отдельно, пиля новые либы и реакты? Просто когда надо сделать гигантское бизнес-приложение с 1000 справочниками и документами, 1С берет и делает, а остальные веб-программисты делают максимум CRM с парой десятков сущностей. 1С доказала что не нужно писать руками модели, DTO, классы и так далее. Почему нельзя взять и сгенерить всё это программно, проставив галочки в веб-конфигураторе?? Бизнесу не нужны эти копошения, он видит что на 1С один человек пишет раз в 10 больше чем команда фронт-бэк-UIдизайнер-тестировщик и выбирает 1С. Сколько я работал на больших проектах, вообще не представлял как бы например Ростех автоматизировал на чем-то другом. Есть Oracle Apex, но это как в анекдоте, жалкое подобие левой руки )
@@Mike37373 ну во первых там есть свои аналоги типа Salesforce, MS Dynamics, SAP но они сложные и дорогие. Во-вторых все равно вопрос открыт, почему никто кроме 1С не сделал удобную веб-платформу для небольших бизнес-приложений. На западе нет спроса на это?
😂😂😂😂 такой тупости не видел. Что то на уровне зачем какие то продукты кроме хлеба и воды, на них же можно жить 😂😂😂 1с медленное лагучее говно только для снг бедного, который выглядит устаревшим и является таким по всем аспектам
Гость оперирует понятием exception. Так вот в js нет никаких exception. Есть error, который может бросить. В принципе можно бросить любой тип, а не только Error. Не надо в js тащить терминологию из других яп.
1 момент - нод.жс это рантайм для жабаскрипта. node.js это не язык программирования. жабаскрипт можно запускать в браузере, т.к там есть движок для этого. Node это такой же движок для запуска кода, только без браузера. Про какое будущее идет речь?
Ура! Вышло новое видео, где мы с Андреем Мелиховым обсуждаем текущее состояние и будущее Node.js для разработки и разработчиков.
✅ Подписывайтесь на канал «Организованное программирование» в Telegram: t.me/orgprog
Как на бэке TS в Express понижает производительность, если TS превращается в JS и потом на Node JS запускается? В чистом виде TS не запускается за исключением конечно экспереметального режима сырого
@@boycovclub За счёт того, что тебе иногда нужно писать лишние проверки и избегать мутаций. Ну либо обмазывать всё any и as, что нивелирует плюсы TS
@@boycovclubи даже в экспериментальном режиме ТС нотация просто вырезается или игнорится
@@AndreyMelikhovчто значит лишние проверки? Если рантайм у тебя упадет это лишнее? Если для тебя эни это норм то убери строгую проверку эни
@@PragmaticPragmatist вы злой человек, я бы Вас на работу не взял)
Я на Nest JS + Type ORM уже более 5 лет. За это время сделал ОГРОМНОЕ количество проектов - как не большие микросервисы, так и весьма емкие монолиты. Более удобного и крутого решения я еще не видел. Sping Boot просто нервно курит в сторонке (с точки зрения простоты и удобства) тем более после 8 лет разработки на Java было с чем сравнить!
Нагрузки - максимальные что были около 5к req/sec.
Все зависит исключительно от понимания того что ты делаешь и как ты это делаешь.
На сколько легко можно подключиться микросервисы в Nest JS - это вообще отдельная песня!
Сейчас работаю над проектом где 17 микросервисов - все на NestJS + mono repo. Просто песня
Плюсую. Сам на Несте много пописал... Только хорошие впечатления... И никогда не хотелось плакать что нет НодеВейДатабейс лейера 😂😂 видимо Кирилл привык к такому подходу
Возьми джуном к себе
@@vladimirkiryakov3695 слушай а почему type ORM, а не призма или drizzle?
@@vladimirkiryakov3695 а что используешь для общения с клиентом? Я так понимаю trpc так и не завезли на nest
А ты попробуй на несте изолировать у ентити проперти. Сделать их приватными и потом работать через сеттеры и геттеры.
За Мелихова лайк не глядя
Благодаря Андрею начал использовать монаду Either. Спасибо!
Андрей Мелихов выглядит словно пару недель не спал, уж не знаю что с ним Яндекс сделал, но спать они ему точно не дают 😂 В остальном лайк за видео
Он вроде всегда так выглядит
@@ioannpilipchuk8476вроде на последнем хайлоде он лучше выглядел ))) по крайней мере в живую
Ну так платят ниже рынка, переработки, ох как классно
@@Тёмочка-ь7о😂😂😂 лучший 😂😂😂
года 3 назад активно смотрел Мелихова, он тогда так же выглядел или даже более уставшим
На самом деле отлично, что многие считают, что нода это просто инструмент для bff, потому что в это время мы пишем проекты любой сложности и практически не имеем конкуренции 🙃
Без обид, но Андрей находится реально в пузыре Яндекса, где Node js используют для BFF и инструментов developer инфры. Но если глянуть на рынок России, то куча больших и маленьких компаний пишут полноценный бэк на Node js. Например, МТС, Райффайзен, Астра, Росатом, Билайн, X5, QClean и это только кого я знаю. Я бы сказал Node js отъела и отъедает солидный кусок у Java, Python и PHP.
От Nest js я тоже не в восторге, приятней Fastify js. Если хочется, что-то похожее на Laravel можно посмотреть на Adonis Js
МТС? Странно, в моем стриме ноды вообще нет, ну кроме фронта). Везде пайтон да джава. Кое где встречается гошка. Надо глянуть техрадар других направлений. Но про ноду я очень редко слышу в экосистеме МТС. Имею в виду бэк
Что же эти компании опытом не делятся? Я вижу только Tramvai от Т-банка из того, что светится публично
@@alexdr1279Например, стриминг платформа, мой коннект и т.д
@@alexdr1279есть, я там писал
Ни одной вакансии на ноду от этих компаний не видел. Есть какие-то пруфы?
@mokevnin у встроеных тестов node есть одно приемущество с ним по уолчанию можно использовать нодовскую библиотеку assert про которую знает typescript, сужая типы по мере продвижение по тесту. Что часто бывает очень удобно. А вот всякие jest, ava и т.д. часто имею у себя в комплекте свои функции проверки про которые typescript ничего не знает и приходится дублировать условия.
Дарт Вейдер, купи нормальный pop фильтр)
Хаха! Он у меня оказывается был, но использовать я его стал со следующего видео. Так что дальше будет с ним)
😂
надо микрофон ставить правильно, как у девшахты и микрофон лучше, и установка правильная
это конечно провал, без негатива - просто сложно абстрагироваться
Спасибо за классное интервью! Видно, что нервная работа у человека)
Спасибо вам ребята за классный подкаст. Как я соскучился по техническим беседам, в последнее время слишком дофига про софт.скиллы всего выходит.
на мой взгляд себя хорошо показала связка prisma orm + graphql + кодогенерация плагином prisma-nestjs-graphql
удобно шарить типы, не нужно руками описывать dto, фильтры, пагинации и большую часть рутинных типовых запросов
мой перфрорманс вырос по скорости разработки х3
уже написал 4 бекенд приложения на ноде, опыт разработки 9 лет
Все супер кроме самой призмы )
А какой перформанс у такой связки?
@@bondiano Можно drizzle взять
Призма и графкюэль это скорее антипатерн сейчас
@@eugenekalashnikov9331 я использую плагины кодогенерации, все объекты для графкуэль, все возможные поиски, уcловия, пагинации из призмы генерятся.
1) пишу базовый класс который содержит реализацию всех методов призмы круды и не только, поиски. генерирую призмой объекты вокруг бизнес сущности и прокидываю типы при наследование
2) генерирую графкуль объекты с декораторами, подкладываю в нужные query и mutation
3) пишу код схемы, наследуюсь класс, генерю объекты gql, готово - скорость разработки х10
4) на фронте можно использовать все возможности призмы при необходимости
отличный гость и прекрасная тема ⚠
Хорошо, что наткнулся на это видео. Как человек последние года 2 пишущий на годе, а до этого писавший фронтенд, скажу, что у ноды будут проблемы с подготовкой нормальных спецов , пока не будет нормальных туториалов. Все книги, которые в основном вижу дают самые основы, а затем переходят к использованию экспресса. Многие вещи, которые позволяет сделать нода просто не освещаются. Если книги чуть посложнее, например, "node.js patterns", то там местами вообще вещи объясняются так, как будто вы пришли из другого яп.
Нормальные туториалы в основном остались в нулевых.ща мусор перечисляемый
@@MrChelovek68 да неправда. Посмотрел тут недавно кратко "Програимируем на python" Лутца - очень хороший учебник, аналога которого в node.js нет и по ходу не будет
@@igorsavelev9013 надо посмотреть. спасибо. я натыкась в осноовном на старые учебники,которые вменяемые. новые писать не умеют, в основном.
@@igorsavelev9013 в основном. и два тома многовато так то. но все же, все одно,бро. я вот си курю терь,мне оч нравится,ток литературы маловато нормальной. чтоб не "переписывание очередной спецификации языка".
@@MrChelovek68 @MrChelovek68 , по си как раз много достаточно. Читал "learn c the hard way"?
Мне кажется на старте проекта нет смысла заморачиваться с выбором языка.
Напомню, что instagram и facebook были написаны лютым говнокодом на php5.
Выросли -- сменили язык, парадигму и тд (когда уже денег было хоть сжигай в печке)
Всегда рад этому гостю. Рассказывает о шишках, которые уже набил он и егт команда, дабы уберечь нас 😅
Про нест кстати да. Дико усложнен. Express надстройка над nodejs. Nest надстройка над express. Две абстракции.
Не надо на js стараться писать как на Java. На Js нужно писать как на js :)
Спасибо, очень крутой разговор! Сильно расширяет кругозор. Хотелось бы что-то подобное про Go
Андрей - это ТОП 👍
акмаль топ
Ну ведь у classic Yarn в шапке написано, переходите на новый Yarn. Если используешь в проекте "yarn berry" - то левый разработчик даже это не заметит, так как бинарник хранится в репозитории, и автоматически подхватывается обычным `yarn`. Апгрейд на Yarn Berry - это команда "yarn set version 4.x" (кстати да, Yarn уже давно четвертой версии). Фичи, которые предоставляет Yarn 4 не снились ни pnpm, ни npm. Говорить о том, что Yarn - мертв - это по меньшей мере скоропалительные похороны.
Нет у Ноды никакой проблемы с Постгресом. npm i pg и вперёд или в Фастифай есть плагин тоже на pg построен. Скорость норм за счет асинхронности + есть пул коннектов. Темплейт литералы вообще спасают если нужно трехэтажный запрос отформатировать.
Отличный подкаст, единственное замечание, ХОТЕЛОСЬ БЫ ПОМЕНЬШЕ ЛАРАВЕЛА В ВЫПУСКЕ ПРО НОДУ!
Без негатива 😁
Последние 6 лет пишу то что тут собеседники называют "рич бэкенд" на ноде. Фронта вообще не касаюсь. Использую декораторы - ну а чо, у нас нет требований отвечать за 2 микросекунды. (В пет проектах не использую, без них функциональности хватает). Всё участники процесса - заказчики/менеджмент/техлиды/разработчики - довольны.
За Андрея - респект! 😎
Сам Андрей и всем советую! 💜
Кирилл, за рекламу InertiaJS отдельный респект 👍
effect-ts, effect-http и экосистема - вот будущее
Приятно слушать. Спасибо, было интересно!
Про обратную совместимость в nodejs. Это очень спорный вопрос . Если проект тольк на чистой годе без сторонних пакетов то возможно. А в жизни даже с 16 на 18 иногда не получается перейти
Отличный подкаст 🎉
Очень хороший диалог получился. Спасибо!
В веб3 разработке node.js прям хорошо заходит.
100%
Я уверен, что будущее именно за нодой и тайпскриптом в частности. Первое, это обратная совместимость, как в джаве, второе - единый язык фронта и бэка. Кто отрицает это очевидное преимущество уже страдает проф деформацией
Полностью поддерживаю ваше мнение. Абсолютно уверен, что язык уже покрывает почти все возможные применения. (Почти все)
Скажи, а ты кроме ноды какие-нибудь другие языки знаешь?
@@igor-grudinin всю свою сознательную жизнь писал на php. Энтерпрайз в основном. Я уже тестировал эту идею с typescript на фронте и беке. Сейчас один проект развиваем, шаблоны на vue ts в виде классов, контроллеры и формы тоже на ts в виде классов. Показывает себя прекрасно, а скорость разработки при этом иксуется в разы. Мы, конечно, движок в паблик выкладывать не будем, но с уверенностью могу заявить, что будущее за такими. Потому что если это приправить модульной архитектурой и синхронными запросами в базу (что у нас уже реализовано), даёт форму по качеству и поддержке всем известным ларавелям джангам и некстам, а собирается всё командой из докера. А с учётом развития вебвью, так это ещё и разработка кроссплатформенных приложений в одном месте. Так что вряд ли тебе меня получится убедить в обратном, потому что на практике я убедился в другом)
Чур чур чур, любой кто знает что то кроме JS/TS не согласится
@@stasyanje4225 я отвечал, Ютуб почему-то не добавил комментарий, попробую ещё раз
на счет орм - а призма, а дриззл? поддерживают динамические типы после джоинов.
Спасибо за выпуск!
Топ подкаст!
С годами я пришел точно к таким же заключениям про ноду
Спасибо большое за контент!
Никто не заставляет в express обмазываться миддлварами. Пиши как хочешь.
У тебя есть нормальные объективы request, response - делай с ними что хочешь.
А вот на nest как раз под капотом генерируется и в итоге куча всяких функций, тонны всякого г вызывается, чтобы отдать вшивый json.
Я наоборот сторонник Bun, хочу какой нибудь пет-проект на нем целиком сделать и фронт и бэк. Но в целом тоже смотрю на переход в голанг, а то как то сложно работу найти на ноде, значит подтвердились мои подозрения что нода мало кому нужна (((
Спасибо за видео! Посмотрел с интересом)
на 11:35 обсуждают совместный релиз бек и фронт эндов и как-бы соглашаются, что это неправильно. Почему так? Объясните джуну чем плохо обновлять приложение целиком?
7:40 😁👍 ну це просто геніально! 💥
Интересный выпуск. спасибо 🙏
Подводя итог можно сказать что область применения ноды свелось к бфф. Из своего опыта разработки могу сказать что когда-то очень сильно подсел на ноду но потом увидев какой там орм в сиквалайзе плюнул и ушел, это был 2021 год, может сейчас все лучше. Сейчас подсел на флаттер, кайфую от разработки на нем на бэке использую ларавел - лучше Eloquent в орм ничего не встречал. Насчет низкой производительности php - это достаточно спорный вопрос. Октана сильно выручает.
Оч много кто даже в пхп-мире не шарит, что в нем уже норм неблокируемые асинхронные подходы (swoole, octane) с корутинами, что уже за ребят из JS-мира говорить. Зато в питоне и гошечке они почему-то шарят. Это так, не в упрек ребятам, просто забавный и не очень приятный факт.
@@andreyvershkov4072 swoole это прорыв!
>Есть ли будущее у Node.js
Я первый раз слышу о том, что в будущем ноды есть сомнения. С чего бы вдруг?
Попробуйте Bun, сравните скорость (сервера, CLI, тестов) с NodeJS. Это ответит на ваш вопрос.
Не проблема, что он однопоточный?
@@astkh4381 ни разу не сталкивался с тем, что одного потока не хватает, хотя я и не занимался хайлоадом. А в чём проблема заспавнить воркеры для многопоточности?
@@astkh4381 как и в Ноде там есть кластеры и воркеры. Не самая оптимальная многопоточность, но лучше чем ничего.
теперь нужен подкаст о правильном подборе backend фреймворка!
для серьёзного бэкенда на TS по сути только Nest.js, особо альтернатив нет
@@kot-duott кроме js у Кирилла экспертности и в других языках хватает. Например хвалил rails а проекты делает на PHP...
@@kot-duott serverless?)
У ноды сейчас нету альтернативы в плане full typesafe подхода на уровне prebuild во время разработки. Даже хайповая гошка. а в ней все используют stdlib и стремаются использовать orm. Пишут запрос через sql строки. Где там проверка вообще, можно в рантайме упасть. Значит нужно писать тесты еше на стадии прототипа/проверки идеи.
TS сильно ушел вперед в плане dx по сравнению с другими платформами.
Rust статически проверят sql запросы во время компиляции.
Странные замечания конечно. По-моему ничего страшного в том чтобы писать SQL руками. Орм нужен для решения определенных задач, типа фильтрации... для решения такой задачи прийдётся писать свой квериБилдер, чтобы этого не делать используют готовый... Если все время пишешь магазины может тебе без орм и не обойтись, в остальном лучше снижать налог на незнание SQL
full typesafe в распределенных системах это миф
Андрей, возвращайся в девшахту
Монады с резалтом очень люблю в Руби.
Pipeline Operator "|>" и Realms API вроде уже есть.
А вот сслыка на "монад" доклад и на "инерцию", чего-то не видно...
Да они про новую спеку не смотрели. А на Ютубе этого уже полно
Спасибо!
Кирилл косякнул с дыханием в микрофон, но он ведет себя энергично и активно. Мелихов настроил микрофон хорошо и дает кучу полезной инфы, классный профессионал, но сколько можно засыпать на ходу, что с тоном, что с подачей, ну емое, как так то?
Как всегда контент топ,вс нравится, но емае, пошел за ссылкой на лекцию об ошибках и их обработке как ФП и других ЯП, что упоминули в ролике. Как найти?
th-cam.com/video/T6Os27MKUCQ/w-d-xo.html
Можете поискать доклад Не нужная монада Either
Те люди, что пишут здесь про drizzle, вы идиоты. Я затестил ваш drizzle, все дырявое, типы не подтягиваются. Поддержка mysql на нуле. Ну ок, может быть на postgres все норм, но нет, там те же проблемы. Сотни проигнорированных issues на гитхабе. И что по итогу мы имеем? Просто красиво оформленную доку, в которой инфы минимум. Все ваши новомодные инструменты от того и дохнут быстро, что нет никакой поддержки, нет никакого продукта, а есть только маркетинг
Видно что Кирилл на ноде вообще не пишет и не знаком с экосистемой js (без негатива) Поэтому разговор получился про обсуждение какой-то вкусовщины... вот мне это не нравится... вот тут чего-то не хватает... плюс Андрей супер спокойный чел и похоливарить тоже не получилось, а хотелось чуть движняка... Я бы с радостью похоливарил
кхм :) github.com/nodosjs/nodos Но последние годы да, я пишу код действительно мало
@@mokevninКирилл, я без негатива, но видно что ты не джаваскриптизер. Хоть и не сомневаюсь, что ты пишешь код периодически, особенно на рельсе. И да мои извинения что сказал что ты вообще не писал на js
Кирилл смотрит на код как бы со стороны, я кстати так же. Если он ощущает дискомфорт, так и говорит.
Опять таки сравнить npm и composer. На npm через год проект скачаешь и сто пудово пакеты не встанут сразу. У composer все четкнько.
Поэтому зачем выгораживать ноду и js. Как есть так и говорит
@@iBezlepkinдруг ты фиксировать версии у зависимостей пробовал? Или просто от друзей этот тезис услышал 😂 что там у тебя не встанет я не знаю, но вот у меня если крышку у зависимости убрать, то вообще никогда проблем не возникало
@@iBezlepkinдостаточно сделать npm ci
Посмотрите в сторону Elixir. Решает большинство проблем с (soft) real-time.
Отличный язык, но крайне нишевый. Работы нет и за пределами России я только двух разработчиков смог встретить за 2 года.
У BEAM и OTP есть очень много преимуществ и вместе с Elixir и Phoenix можно получить все это практически бесплатно.
А как же drizzle orm? Ну и prisma.
Очень слышно дыхание ведущего, по возможности просим пофиксить
Видимо микрофон конденсаторный, чувствительный. У Андрея динамический, shure
@@Tazis17 динамический, просто я pop фильтр не юзал. В следующих видео уже с фильтром
😂😂😂это не шум дыхания а оргазм был ведущего
Я час смотрел не замечал, пока это не прочитал
Ну звук в принципе без какого-либо тритмента и обработки, дыхание тут лишь одна из базовых проблем, которые обязательно надо фиксить)
Спасибо, очень интересно, хотя и груснова-то (не из-за участников, а из-за ноды). Тоже не хватает data access layer в ноде.
Я бы не стал за ноду грустить... О себе переживайте (без негатива). Грустным мне видео показалось потому что никто так и не раскрыл свои аргументы, больше на вкусовщину похоже
@@SergeiDorogin-il1gf просто в видео обзор ноды 2015 года.
Кирилл еще не пробовал tRPC :)
Не понял почему питон не многопоточный, там честные треды ос, просто с гил, на io баунд задачах многопоточка серьезно увеличивает производительность.
На io задачах там есть asyncio, но оно во-первых сбоку наспех прилеплено (см здесь же свежий выпуск с Юрием Селивановым), а во-вторых не для всей инфры есть асинхронные либы (н-р Кликхаус) или есть, но со странностями.
@chasubavil я вообще про треды говорил которые там всегда поддерживались, при чем тут asyncio, то что оно есть я знаю, то что там не все из коробки с ними работает тоже.
Кто-нибудь использует Nginx Unit для NodeJS?
Тема кота не раскрыта))) такой красивый кот там ходил на фоне
@mokevnin Кирилл, прикрепите, пожалуйста доклад, который гость упоминал на 1:34:31:
th-cam.com/video/T6Os27MKUCQ/w-d-xo.html
Дмитрий Махнёв Артём Кобзарь - (не|ну)жная монада Either на практике и в теории
Кирилл как Дарт Вейдер дышит :3
Крутой выпуск. Повесь картину на стену))))
Как же Кирилл дышит в микрофон, когда молчит)
А чем не устроил Apache Superset ?
Datalens значительно проще подключить и обслуживать, да и в целом порог входа для пользователя ниже. Хотя конечно Суперсет пока (пока!) богаче по возможностям
так есть ли будущее ?
Вернулся в Яндекс
Как будто бы нода хайповала в один момент, все переписывали всё на неё, а потом резко пропала из инфополя. Наверное нашла свою нишу в лёгком bff и всем показалось, что этого достаточно или может отсутствие самодостаточного фреймворка сделало своё дело (nest это все-таки ts, думаю поэтому он не так взлетел и не стал нодовским ларавелем, т.к. не всем ts заходит)
Мне кажется все еще впереди.
нодовский ларавель это AdonisJS, а не Nest
Нест это попытка копировать спринг бут
Нода это супер Фаст разработка... Никого быстрее этих ребят нет с Бека до фронта... Как по мне, то эта парадигма очень давно не менялась
@@mokevninпочему попытка? Хороший подход для организации когда и проекта, хотя временами конечно оверкилл, но очень быстро привыкаешь и потом думается и читается легко и просто
Понял. Node не собирается развивать свой backend потенциал. Пойду дальше писать на GoLang и учить TypeScript только потому что Фронт нужен в любом веб-проекте.
Правильный выбор, сам так сделал после 10 лет на Php
Странные выводы ты сделал. Я бы так с места в карьер не прыгал... Нода живее всех живых
@@PragmaticPragmatist пусть пусть идут побольше в свой Go, нам на Php эта стадная тенденция уже дала свои плоды, достаточно только дать намек что ты хочешь сменить компанию и HRы сразу заваливают предложениями с зп знатно выше чем на Go)
Nest это вещь, на экспрессе обычно такова на гавнокодят что хрен разберёшь.
Крутой подкаст, но сопящий нос на фоне😄
@@sirshabutthj9947 это матка!
Пока Андрей и остальные консерваторы воспринимают bun за "испытательную площадку", Твиттер уже юзает его в проде.
Пруф давай )
@@AndreyMelikhov вышлю в личку)
nodemon уже не актуален.
можно node/bun --watch использовать
Андрей просто представляет олдскул без негатива конечно
А я где-то сказал про nodemon? не помню ) Конечно сейчас можно watch, но в большинстве проектов вы увидите nodemon, watch только только из экспериментов вышел
@@AndreyMelikhovАндрею плюс вайб за участие в комментах!
Декораторы в несте это же не легаси а эксперементал
@@dmprkp6792 Согл. Даже если они не войдут когда нибудь в спецификацию. Ну и что, как это помешает дальше использовать nest js не понятно
Это экспериментал легаси декораторы. Из стандарта их уже выпилили
Ошибки при работе с typeorm в консоли максимально не информативные. Это как раз еще один камень в сторону декораторов
@@iBezlepkin хз я пишу рав все заебись, заебали эти орм))
@@dmprkp6792 тогда зачем nest в принципе? :) mysl2, inversify, express/fasify и все готово :) + чуток DDD
Уже последние года два как можно в проде использовать drizzle или prisma + zod все типы напрямую из базы идут + trpc/hono rpc прослойкой. Типы руками не нужно прописывать тем более шарить их между сервисами. Весь смысл единой и крепкой связки ts когда типы из схемы базы идут. Плюс сейчас есть hono который под любой рантайм идет, cloudflare workers или по классике bun/node в контейнере.
Единственное во всем этом компоте правильно монорепу настроить. Либо сразу готовый бойлерплейт найти.
Вам не нужен трейни под рукой? Я работаю с таким же стаком + реакт для фронта.
17:29 кот
Если будешь каждое видео спрашивать про зп, просмотров будет раза в 2 больше.
ахаха, надо попробовать
Дудь уже попробовал ) Больше не спрашивает
если смотреть такие видео то будущего у любой технологии нет))))
А мне дартвейдер зашел, не мешало смотреть
Одно из самых глупых, что я продолжаю слышать постоянно это то, что у нас есть фронтэндер, давай ка ты еще бэком займешься, видимо потому, что и там и там есть слово javascript) Это еще условно может работать в обратную сторону, но уж точно не так, это же просто два разных мира и области применения языка, синтаксис тут роль играет не третью и даже не пятую
Насмотрелся я тут на фулстаков как фронтендер, грустно довольно, поэтому сам принципиально пока не лезу на бэковую поляну и мне прекрасно. Уж лучше мочь в чем то одном хорошо, чем делать вид во всем)
ну так "чистый фронтенд" вымрет в обозримой перспективе, если фронт+бэк на TS, то от всех разрабов будут ожидаться фуллстек-компетенции
@@kot-duott Конечно же нет) Фронт на данном этапе это монстр и с каждым годом все страшнее становится. Минимально адекватный руководитель понимает, что искать одного человека под две области применения невыгодно, как минимум по времени разработки, как максимум по качеству, если надо делать плюс минус что то более серьезное чем форма связи
@@KDenisGнаоборот выгодно:) более того, чтобы вся команда была такая. Чем держать отдельного фронтендера, который половину времени будет простаивать
@@kot-duott Соболезную)
Не трогал nodejs 15 лет и как оказалось правильно сделал
На чём работаешь?
Тоже интересует - почему так упорно мучаются с ts, матюкаются, долбаются, и упорно грызут кактус. Все что на ts в разы медленней. Читал есть идея ввести четкую типизацию в ноду, это же сразу уберет ненужный ts, меньше гимора. Очень жду реализацию такого режима. В пыхе же сделали - включаете режим четкой типизацию - получаем как скорость так и типы.
Как он может работать медленно если он в конце и компилируется в js?
7506. If you know, you know.
зачем на тайпскрипт писать если можно на йоптаскрипт писать яндекс облака
pnpm the best
Если искали Орм то смотрите в сторону drizzle
Харош)
У меня один вопрос, почему 1С смогла прийти и за пару лет разнести все эти костыльные веб-велосипеды, выкатив Элемент, а все мировое сообщество годами занимается онанизмом скрещивая фронт и бэк отдельно, пиля новые либы и реакты? Просто когда надо сделать гигантское бизнес-приложение с 1000 справочниками и документами, 1С берет и делает, а остальные веб-программисты делают максимум CRM с парой десятков сущностей. 1С доказала что не нужно писать руками модели, DTO, классы и так далее. Почему нельзя взять и сгенерить всё это программно, проставив галочки в веб-конфигураторе?? Бизнесу не нужны эти копошения, он видит что на 1С один человек пишет раз в 10 больше чем команда фронт-бэк-UIдизайнер-тестировщик и выбирает 1С. Сколько я работал на больших проектах, вообще не представлял как бы например Ростех автоматизировал на чем-то другом. Есть Oracle Apex, но это как в анекдоте, жалкое подобие левой руки )
ты знаешь страну где знают, что такое один эс, кроме россии ?
@@Mike37373 ну во первых там есть свои аналоги типа Salesforce, MS Dynamics, SAP но они сложные и дорогие. Во-вторых все равно вопрос открыт, почему никто кроме 1С не сделал удобную веб-платформу для небольших бизнес-приложений. На западе нет спроса на это?
@@vid253 в 1С проблема с ведением товаров в базе данных, поэтому она не популярна, кроме России
😂😂😂😂 такой тупости не видел. Что то на уровне зачем какие то продукты кроме хлеба и воды, на них же можно жить 😂😂😂 1с медленное лагучее говно только для снг бедного, который выглядит устаревшим и является таким по всем аспектам
Прогрев JIT`а
Гость оперирует понятием exception. Так вот в js нет никаких exception. Есть error, который может бросить. В принципе можно бросить любой тип, а не только Error. Не надо в js тащить терминологию из других яп.
Мой комментарий, конечно, затрут, но реально ребятки, вашей экспертности только дивана не хватает
😂😂😂 🎉🎉🎉 видимо не один я заметил
Почему?
1 момент - нод.жс это рантайм для жабаскрипта. node.js это не язык программирования. жабаскрипт можно запускать в браузере, т.к там есть движок для этого. Node это такой же движок для запуска кода, только без браузера. Про какое будущее идет речь?
“Спасибо”. Мне предстоит переписывать проект с Руби на Ноду и послушав вас вообще не хочется иметь дело с Нодой. Какой-то ад. Хаос.
Пока сам не попробуешь, никого не слушай. сначала проверь а потом бойся
Нода топовая, не слушай этих горе экспертов
Расскажите почему решили выбрать нод?
Руби крутой, зачем нода?
@@KDenisG ээээ.... Я не знаю... Мне лид так сказал...
> в продакшне падает, ты открываешь то во что оно скомпилировалось, и седеешь
> хотите писать бэкэнд - возьмите язык для бэкэнда
100%
Bun & Dino сделают Node.js лучше :)
Осталось только правильно написать Deno ))) 😂😂😂
@@PragmaticPragmatist Все таки нашелся один учитель. Я так и знал :)
@@Tiberiumgodа ты слово из 4х букв пиши без ошибок и все хорошо будет
@@PragmaticPragmatist у меня и так все хорошо. Это у тебя комплекс.
@@Tiberiumgodага весь закомплексованный 😂😂😂
Пожалуйста когда гость говорит отключайте у себя звук, слышно как вы носом дышите
Я на нест и призме - лучшее что со мной было. Эти мамонты совершенно не въезжают в архитектуру. В теме не шарят, подкаст говно
Да ниче не слышно никакого дыхания че вы гоните, нормально все со звуком