11行のコードがインターネットを止めた日

たった11行の小さな一つが抜けると、その上に積まれた全部が崩れる
たった11行の小さな一つが抜けると、その上に積まれた全部が崩れる

2016年、あるエンジニアが npm(JavaScript のパッケージレジストリ)から left-pad というパッケージを削除した。たった11行、文字列の左側をスペースで埋めるだけのコード。数分後、Facebook や Netflix を含む世界中のビルドが一斉に壊れた。

なぜ11行で大惨事になったのか。各プロジェクトが left-pad を直接使っていたのではなく、あるパッケージが依存するパッケージが依存するパッケージが left-pad に依存していたから。apt install が裏で依存パッケージを自動でインストールするのと同じ仕組みだ。

パッケージマネージャは強力だ。だがその力は信頼の連鎖の上に成り立っている。その連鎖を理解することが、エンジニアとしての視点を持つということだ。