後輩「先輩、このシステム僕が引き継ぐ事になりました。よろしくお願いします」
先輩「そうかそうか、やっと肩の荷がおりるな」
後輩「これ2016年に作ったシステムなんですよね。僕その頃まだ入社してないんで、最初の方から教えてもらっていいですか」
〜
先輩「まずはじめにnode.jsを入れる」
後輩「あ〜昔流行ったサーバーサイドでJavascript使えるやつですよね。このシステムnodeで動いてたんですね」
先輩「いや、nodeは使ってない」
後輩「え?」
先輩「nodeに付属しているnpmというパッケージマネージャーを使ってる」
後輩「なんでまたそんな回りくどいことを・・・」
先輩「当時はnpmが一番メジャーだったんだよ。今主流のN3(N3 is Not Npm)はまだ無かったしな」
〜
先輩「よしnode入れたな。じゃあnpm installだ」
先輩「printFizzBuzzというパッケージが404みたいだな」
後輩「何に使うんですかそのライブラリ」
先輩「知らん。依存してるライブラリが依存してるライブラリが依存してるライブラリかなんかだろう」
後輩「バタフライエフェクトってやつですね」
先輩「思い出した。これは昔話題になったやつだ。printFizzBuzzは何かの特許に抵触していて非公開になったらしい。
npm installで落とすのは諦めて、ローカルに残ってるやつで何とかするしかないな」
後輩「それ使って大丈夫ですかね。法的に」
先輩「仕方ないだろ」
〜
先輩「ようやく諸々揃ってBabelやReactやWebpackを使えるようになった」
後輩「それ何ですか?」
先輩「まずBabelだが、これはES2015をES5にコンパイルするツールだ」
後輩「え、なんでダウングレードするんですか?」
先輩「古いブラウザで当時の最新機能を使うにはこうする必要があったんだ」
後輩「なるほど。ではReactは?」
先輩「これは今で言うWeb Componentsみたいなものだな。あと仮想DOM」
後輩「Babelじゃダメだったんですか?」
先輩「ダメだったんだよ」
先輩「当時はモジュールが標準対応してなかったり、http/2もあまり普及してなくてサーバーが馬鹿だったんだよ」
後輩「へ〜大変ですね」
〜
後輩「いつの間にかこんな時間ですね。今日まだ1行もコード書いてないですよ」
後輩「今となっては余計な苦労が増えてるような気がしますけどね〜」
先輩「当時はこれが最善の選択だったんだよ」
後輩「そうなんですね」