Как сломать интернет с помощью 11 строчек кода.

Конечно, не весь интернет, а всего лишь кучу проектов на Node.js, но и так неплохо получилось.


Это произошло год назад. JS-разработчик Азер Кочулу (Azer Koçulu) отозвал из NPM (популярный менеджер пакетов, используемый при разработке проектов на Node.js) более 250 своих модулей. Причиной этого стали разногласия по поводу названия одного из модулей, совпавшего с названием мессенджера Kik.


Представители разработчиков Kik сначала обратились к Кочулу с требованием переименовать модуль, тот отказался, после чего они пошли напрямую к администраторам NPM. Те не стали спорить и тихо сменили владельца модуля.


Это привело Кочулу в ярость, он снес из NPM все свои разработки и перенес их на GitHub. По несчастливому стечению обстоятельств среди них оказалась 11-строчная функция leftpad, занимающаяся дополнением строки пробелами до нужной длины. И функция эта использовалась каким-то безумным количеством JS-проектов (за последний месяц модуль leftpad скачивался почти два с половиной миллиона раз), которые сразу после этого сломались.


Администрации NPM пришлось пойти на беспрецедентный шаг и откатить отзыв злосчастного модуля. Обычно такое невозможно, что удалилось, то удалилось, но простая заливка нового одноименного модуля не исправила бы все зависимые проекты.


Это примерно все, что нужно знать о разработке на JavaScript в 2016 году.


Источник

IT-юмор

5.7K поста52.6K подписчиков

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
66
Автор поста оценил этот комментарий
По несчастливому стечению обстоятельств среди них оказалась 11-строчная функция leftpad, занимающаяся дополнением строки пробелами до нужной длины

А никого не смутило, что в огромном количестве проектов для того, чтобы сделать элементарную функцию тащат зависимость из внешних компонентов? Что же с нами стало(

раскрыть ветку (18)
52
Автор поста оценил этот комментарий

конечно никого, это же node.js

7
Автор поста оценил этот комментарий
Для этого не надо кучи проектов. Достаточно, чтобы какая-нибудь популярная либа его использовала. Насколько я помню детали той истории, его leftpad использовался, например, в ангуляре
19
Автор поста оценил этот комментарий

Это ЖС, детка. ТАм на каждый чих NPM модуль

8
Автор поста оценил этот комментарий

Если вся работоспособность твоего проекта зависит от сотни модулей, которые контролируются их разработчиками, это чет нихера не хорошо. Где безопасность, где связность, где наглядность?
Господиблять, сначала меня удивляло, как приверженцы джс дрочат на фреймворки и ворох постоянных обновлений, а теперь еще и вот

раскрыть ветку (5)
5
Автор поста оценил этот комментарий

А меж тем вот он, коммунизм, только виртуальный.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий
Не путайте коммунизм и господство лени
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Ну вообще в обсуждении на хабре (год назад, да) было как раз о том, что сейчас ты используешь у себя функционал простой, а через полгода там вполне может добавиться ещё какое условие (гугл: Array.isArray), ты просто делаешь `npm update` и радуешься жизни, а не выискиваешь везде в коде где надо поменять.

Автор поста оценил этот комментарий

эм, в линухе так уже хер знает сколько и никто не воняет.

раскрыть ветку (1)
Автор поста оценил этот комментарий

В линухе мейнтейнеры с мозгами и всё зазеркалено по сто раз.

12
Автор поста оценил этот комментарий
Неа Вместо того чтоб пилить свою функцию скопипащенную с stackoverflow проще установить модуль одной строчкой в консоле На производительности никак не скажется но разрабатывать удобнее
раскрыть ветку (3)
28
Автор поста оценил этот комментарий

кон-соль

Существительное, неодушевлённое, женский род, 3-е склонение (тип склонения 8a по классификации А. А. Зализняка).


В консолИ.

раскрыть ветку (2)
Автор поста оценил этот комментарий
В консолькЕ
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

И что? Разные ситуации

1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
6
Автор поста оценил этот комментарий

С нами стала оптимизация скорости и удобства разработки. Не вижу в этом ничего плохого. Ели эта функция используется хотя бы в десятке проектов разработчика, нет смысла копипастить её из прокта в проект. Подключаем зависимость в шаблон для подобных проектов и пользуемся.

раскрыть ветку (3)
7
Автор поста оценил этот комментарий
Но ведь статья именно о том, что в этом плохого. И ты всё ещё не видишь в этом ничего плохого?
раскрыть ветку (2)
5
Автор поста оценил этот комментарий
Статья на самом деле о том что правообладатели (в данном случае Kik) - чуточку, чуть менее чм полностью, охуели, и полезли куда им вообще не следовало нос совать.
Сраный мессенджер не имеет НИКАКОГО отношения ни к NPM, ни к жаваскрипту.
Ты знаешь, был такой сервис, SkyDrive. Майкрософтовское облако. ТАк вот, он теперь зовется OneDrive, потому что некий транслятор телеканалов British Sky Broadcasting (BSkyB)в великобритании подал в суд на них и как ни странно выиграл. Ну, типа, есть же Sky в названии, все, нарушаете. КЭти же пидоры атаковали в свое время игру No mans sky. не удивлюсь, что игра потому и провалилась, выйдя недоделанной. потому что сраный говнотелеканал отсудил у них все бабки и разрабатывать им было уже тупо не на что.

.

3
Автор поста оценил этот комментарий

Ситуация из поста - скорей исключение. Это всё равно что кричать: "глупо лететь на самолёте, ведь совсем недавно один упал". Любой проект так или иначе тянет гору зависимостей и всегда есть риск сбоев по вине одной из них, но удобство такого подхода покрывает этот риск.

Да, я всё ещё не вижу в этом ничего плохого.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку