Типичные ошибки Node JS разработчиков

preview_player
Показать описание
Никогда не совершайте эти ошибки при написании приложений на Node JS! Не согласны? Пишите в комментариях!

⚡ Мои курсы

Разделы видео:
0:00 - Введение
2:20 - Callback
8:29 - TypeScript
10:26 - Заключение
Рекомендации по теме
Комментарии
Автор

Братан, хорош, давай-давай, вперёд! Контент вообще в кайф, красавчик! Можно вот этого и того, и почаще?

piano
Автор

Большое спасибо, очень годное видео! Антон, вы делаете очень большую и качественную работу, с нетерпением жду ваших новых видео и курсов!

dmitrykanaev
Автор

1. Спасибо за то что - когда говоришь надо писать на typescript объясняешь почему. Я уже давно слышу что надо переходить на typescript, но никто не объясняет зачем усложнять код, если обычны js работает. 2. Спасибо за адекватные цены на курсы!

zigynkd
Автор

За объяснения по _package-lock.json_ и _npm ci_ - отдельное спасибо!

victormog
Автор

Спасибо большое за видео! Правильные подскадзки, как раз то что нужно.

alex
Автор

Всегда приятно Вас послушать, спасибо!

wpvovcx
Автор

У npm как я помню есть исключение именно для 0.X.Y версий, break changes в этом случае поднимают X, а минор и патчи Y. И вроде как ^ будет именно захватывать 0.21.1-0.21.N версии того же axios, а при релизе в 1.0.0 будет уже дефолтное поведение.

alien
Автор

Все классно, но по поводу ts очень спорно. Ts код может стать очень грязным, если делаешь что-то сложное, потому что когда у тебя что-то становиться настолько обобщённым ты начинаешь программировать типы с дженериками, а не саму программу.
Посмотреть те же типы в библиотеке knex и таких примеров много, а теперь представьте если бы эти типы были вместе с кодом, код был бы тяжело читаемым, это имхо конечно. К тому же не все конструкции на js можно выразить в ts, а это ограничивает. Так же у ts нет спецификации. Типы ts существуют только в рантайме.

Конечно же типы нужны, так как на большом проекте сложно узнать что принимает и возвращает функция.
Поэтому мне нравится подход когда мы пишем модуль, а рядом кладём файл d.ts в котором описываем типы. Затем можно в тестах из d.ts генерировать json schema и проверять типы(контракты непосредственно в рентайме).
Преимущество данного подхода
- Мы описываем контракты, а внутри функции/класса можем реализовывать все конструкции js, без ограничений ts.
- не нужно ждать компиляции
- с помощью тестов с json schema мы проверяем реальные типы.

Даже на сайте ts сказано что их целью не является создать надёжные типы которые будут оказывать на возможные ошибки в компиляции, Аля rust. Их цель увеличить девелопер экспириенс, так смысл тогда использовать его, если можно делать тоже с d.ts и получать тот же экспириенс в виде подсказок в ide. Так делает команды node.js
Вот ещё интересный доклад о том что ts может быть даже экономически не выгоден

ruslanglaznyov
Автор

спасибо большое, очень интересно. если есть возможность сделайте пожалуйста вторую часть где будет информация как избежать утечек памяти. В ноде огромная проблема с этим, наверное на 95% проэктов

alexanonymous
Автор

Антон, спасибо за видео! Про package-lock уже было в видео с интервью, благодарю за отдельное рассмотрение этого момента. Как раз сейчас на проекте этот файл в гитигноре :)

Вопрос не по теме: почему используешь vim, а не neovim?

petrpechkurov
Автор

Хорошие видео!
Очень мало контента с решением проблем РЕАЛЬНОЙ разработки.

petrvictorovich
Автор

А можно про Event Loop, но прям для взрослых?) Там микротаски, макротаски, тредпулы, итд, итп. А то везде только по верхам)

notsure
Автор

Насчет примера с callback. Для этого же есть utils.promisify. Вручную не нужно оборачивать :)

nght
Автор

По поводу тайпскрипта слышал что есть такая практика, когда рядом с js файлом кладут ts файл где описуют типы, мол так эффективней 🤷🏻‍♂️
Есть в этом резон или просто писать на тайпскрипте и не заморачиваться?)

alexanders.
Автор

По-моему, отлично. И манера подачи устраивает.

gxgkurn
Автор

Было бы круто про использование socketio с nodejs. Может есть такое в планах?

vladpestsov
Автор

Typescript это конечно хорошо, но хотелось бы чтобы все ещё напоминали что обмазывать юнионами пиками и омитами весь код тоже плохо, потому что аннотации типов становяться сложнее самого кода. Это часто удручает(

bubblesort
Автор

Интересно было бы посмотреть тему с миграциями, например на Sequelize как там все эти связи многие ко многим и тп работают больно уж после фронта тяжко идет тема, хотя идея понятна)

suslikest
Автор

у меня как у новичка вопрос.. если мы использовали старую версию аксиса, а потом он обновился.. он же стал лучше.. а наше приложение устареет .. и что, оно 10 лет будет на старой версии работать?

petrplotnikov
Автор

мне кажется стоило назвать видео типичные ошибки начинающих Node.js разработчиков, потому что ошибки приведены вполне банальные и обычно jun dev через пол года коммерции, все их умеет избегать.

arsenarakelian