Comments 18
Ну, 427k загрузок в неделю для is-odd выглядит как довольно популярный пакет...
И автор еще не видел, наверное, замечательный Docker-service для is-odd.
Что касается автора, то вот он на Reddit объясняет что, на его взгляд, никакой разницы нет если вы сами напишете такой же код локально, по сравнению с загрузкой из npm.
У него довольно много похожих модулей. Например, замечательный ansi-yellow.
Заслуживают ли эти пакеты ненависти?
Все верно, нет. Заслуживают ненависти кто бездумно делает `npm install everything`
Я не думаю, что когда я начал писать код, мне пришло бы в голову опубликовать что-то в международный централизованный менеджер пакетов, но, вероятно, это больше говорит о моей самоуверенности, чем об авторе пакета.
Я как-то смотрел обучающее видео, там в ходе обучения предлагалось создать пакет в npm. Видео было для очень начинающих, люди могли не понимать, куда они это отправляют и какие там правила. В npm на тот момент было уже много таких пакетов, что говорило о популярности видео. Речь тут вообще не о самоуверености. Ведь для тех, кто просто учится, не сделали тестового репозитория.
Сами по себе эти пакеты злом не являются, т.к. они выполняют свою работу.
Однако популярность этих пакетов является хорошим индикатором настоящего зла, а именно, бездумного использования зависимостей, к сожалению, принятого в JavaScript экосистеме. К сожалению, вся современная культура разработки на JavaScript подталкивает начинающего разработчика всегда сначала искать решение в NPM, не глядя ни на производительность, а зачастую, и на безопасность. И эта привычка остаётся с ним на всю жизнь.
Я не знаю, чем это объяснить, но когда я пишу на Go, я почему-то всегда сперва пытаюсь написать всё сам, и только если горят сроки либо сильно возрастает сложность, я иду за сторонними библиотеками. Возможно, это связано с тем, что у Go просто великолепная стандартная библиотека. Но как только я переключаюсь на JavaScript, сразу начинаю "npm install everything". Мистика...
Разбирался с oauth2 (как раз на го), также сначала хотел попробовать реализовать это сам. В процессе поиска информации по ошибке, наткнулся на пост на реддите, где просили помощи по поиску ошибки в своей реализации oauth2 в js. И в комментариях прямо говорили "Не пытайся сделать это сам, это слишком сложно, бери готовые библиотеки".
Я всё же склоняюсь к тому, что подход го - заслуга его стандартной библиотеки. Там и тот же oauth2 есть)
Делать самому oauth2 - не очень хорошая идея. Всё, что связано с безопасностью - это исключение из этого подхода, всё это надо брать готовое. Настоящих специалистов по безопасности всегда очень мало, потому что надо только ей заниматься, чтобы угнаться за всеми новыми уязвимостями.
Если программист не занимается безопасностью постоянно, то его самописный велосипед с большой вероятностью будет иметь кучу дыр.
И когда подобное находится в стандартной библиотеке, это большой плюс, ведь этот пакет не принесёт с собой полмира уже в своих зависимостях, и не надо будет сидеть изучать уже эти зависимости на предмет дыр.
А ведь есть ещё is-odd-number, assert-is-odd, isodd. Также есть, к примеру is-array и isarray, при том, что сейчас нет ни малейшей необходимости ни в одном из них. А если полазить в своих проектах по node_modules, то там найдётся ещё куча is-много-чего. И в большинстве случаев, там кода от 1 до 10 строк. Но к этому ещё может прилагаться 1000 строк документации, юнит-тесты и скрипт для CI. И конечно же, никто это не ставит в свои проекты - оно всегда тянется, как зависимости. Не то чтобы меня это сильно беспокоило, но иногда заставляет задуматься.
до чего динамическая типизация людей довела!
а typescript половину проверок бы сам сделал
а может и все
Поясните, а зачем делить большое число на 2, если можно проверить, число написано или не число и последнюю цифру на чётность? Или это дольше деления?
Кто на самом деле использует asp.net чтобы запустить поверх swagger, чтоб был REST API, а потом пишет клиент на React, чтоб показать примитивную страничку? Притом что сборка клиентского кода (мне было нечего делать, взял yml из проекта) потребовала больше 2Гб "зависимостей", результат был 300К однострочного js "кода"
И притом что ASP может то же самое из коробки уже добрых 20 лет безо всех этих хлопот?
Я спросил шефа зачем, он ответил "сейчас все так делают" Привыкайте ;)
Потому что нужно проверять не четность числа, путем проверки результата остатка от деления, а проверки последнего бита числа.
Грустно это всё.
Кто на самом деле пользуется is-odd и is-even?