`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Ошибка в двух строках кода обернулась авралом для миллионов проектов JavaScript

+22
голоса

Ошибка в двух строках кода обернулась авралом для миллионов проектов JavaScript

«Кривое» обновление крошечной библиотеки в эту субботу погрузило значительную часть экосистемы JavaScript в состояние хаоса, нарушив работу миллионов программных проектов.

Ставшая причиной этого библиотека is-promise состоит из всего лишь двух строк исходного кода, выполняющих базовую проверку с булевым результатом (да-нет). Несмотря на крайнюю простоту, is-promise является одним из самых популярных на сегодняшний день npm-пакетов (библиотек) JavaScript. Согласно GitHub, эта библиотека входит в более чем 3,4 млн проектов и используется в качестве зависимости 766 другими библиотеками JavaScript.

На выходных is-promise была обновлена, чтобы получить поддержку для работы в качестве модуля ES (стандартизированная модульная система в языке JavaScript). Однако, как только это обновление (v2.2.0) вышло, проекты, которые использовали is-promise в своей цепочке сборки, начали давать сбои из-за неправильной поддержки модуля ES.

Эффект от этой ошибки почувствовался мгновенно не только для разработок с закрытой кодовой основой, но и для ряда величайших проектов экосистемы JavaScript, включая Create React App компании Facevpbook (стандартный шаблон для создания приложений React), Angular.js и инструментарий Firebasse от Google, Amazon AWS Serverless CLI, Nuxt.js, AVA и многие другие.

Как таковых, перебоев в работе этих проектов не было, однако из-за неполадки разработчики не могли компилировать новые версии своих продуктов.

Команда is-promise сразу же подготовила обновление, но не смогла устранить проблему, поэтому в итоге, спустя несколько часов, пришлось сделать откат, отказавшись от поддержки модуля ES в версии v2.2.2.

Нечто похожее произошло в марте 2016 г. Тогда автор другой мини-библиотеки JavaScript, состоявшей из 17 строк кода, внезапно отменил её публикацию, дезорганизовав работу тысяч проектов.

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


Вы можете подписаться на наш Telegram-канал для получения наиболее интересной информации

+22
голоса

Напечатать Отправить другу

Читайте также

 

Slack подает жалобу на Microsoft и требует антимонопольного расследования от ЕС

 
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT