読者です 読者をやめる 読者になる 読者になる

Minecraftとタートルと僕

PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。

ニトリのコードを見てニヨニヨする会

はじめに

ニトリのECサイトであるニトリネットがリニューアルに失敗して6日も経ってから復旧したということで、 (一部の)プログラマクラスタで騒ぎになっています。

僕の率直な感想は次のようなもの。

閉鎖状態の「ニトリネット」が6/23にサイト運営を再開、不具合の主因はCPU不足 | ネットショップ担当者フォーラム

ともあれ関係者の皆さまお疲れ様でした。個人の責任問題などと短絡化することなく、粛々と原因解明と、できればぜひ知見の共有公開をお願いしたい。

2015/06/23 13:40

プレスリリースでは、原因としてCPU不足を挙げています。

珍しい原因ですよね。あまり聞いたこと無いのでぜひその知見を知りたいものです。

しかし雲行き怪しく

こんなツイートをみたら興味がわくじゃないですか!

さっそく、#ニトリコード見てニヨニヨする会というツイッタータグをつぶやいて流し読みを始めました。

ニヨニヨする会

流し読みなので適当なこともつぶやいていますが、当初はこんな感じ。

コメント行にニヨニヨ

あるあるですよね。

authentication という単語は長すぎるんじゃよ。デスマ中にそんな長い単語書けるか!

/*PANKUZU(¥取る)*/

/*NINSHO*/

別のCSSファイルからのコピペで、そのファイルの該当行番号をコメントで書いているのかな? 元ファイルを編集したら地獄を見ますね。でも仕方ないコピペならそう書くしかない。

f:id:hevohevo:20150624002255p:plain

ネーミングセンスにニヨニヨ

だんだんニヨニヨできなくなってきた

ところが見ているうちに気になる箇所が増えてきます。

  • なぜか数百行の空改行が何箇所もある。全部削れば1000行くらい圧縮できそう
  • 謎の空<li>が大量に(下図参照)

f:id:hevohevo:20150624003043p:plain:w400

コードを少し読み込んでみると、どうやらトップページにあるプルダウンメニュー(下図参照)のコードらしい。

本来は、このメニュー項目のサブ項目が設定してあったようです。

たとえば、下の図のプルダウンメニュー「ベッド」にマウスポインタを合わせると、その下位カテゴリのメニューが右にポップアップしてという動きでしょうか。たぶん。

でも、なぜかその項目文字列だけ削除されており、タグだけが残ったままです。

f:id:hevohevo:20150624003246p:plain:w400

もしかして各項目のサブ項目の要件定義が間に合わずに空欄にしてあるのかなと思ったのですが、このプルダウンメニューをクリックして飛んだページにはそれらサブ項目らしきものが見つかるわけで。

使っているJavascriptライブラリの挙動を知らないので想像ですが、

大量の空<li>要素でもJavascriptはメニューとして処理しようとしているのでは?

そうだとすると、どのみち結構な負荷がユーザーのブラウザ側でかかっているのでは? という疑問もあります。

まさかCPUの処理性能不足って

もう一つ気になる点

つまり、HTMLのBODYのど真ん中にCSSインクルードしているのです。しかも、h1やpなどの基本的なタグのスタイルを全てリセットするreset.cssなるものを。

そうすると、次のようなコメントがいただけました。

また、次のようなコメントも。

そのようなやり方があるのですね。これってグリグリ動くサイトではあることなのです?

大規模サイトを作成したこと無いのでよくわかりませんが。

最後はしみじみ

おそらく、CPU不足(?)でコードを突貫工事で全面的に書き直したために、このような中途半端なコードが出てきてしまったのだろうなと予想しています。

しばらくしたら、綺麗に整理されてこのような荒い部分はなくなるだろうなとも。

中の人、本当にお疲れ様です。

補足

#ニトリコードを見てニヨニヨする会と言いつつ、結局はほとんど一人でコード読んでいるということに気づいたあなた。鋭い子は嫌いだよ。

突っ込み大歓迎。あなたもどうぞ、つぶやいてくださいな。