トラブルシューティング時の切り分け方法

管理人&メインプログラマーのねいこです。
フレームワークのバージョンアップでハマったので、そのことを記事にしておこうかと思います。

『言霊の狩人』はティラノスクリプトというゲーム用フレームワークで作成されています。
プログラミング言語でいうと、HTML5+JavaScriptでできていて、定期的にバージョンアップされています。
それはとてもうれしいことなのですが、困るのがバージョンをあげるたびにエラーで動かなくなること。

これはティラノスクリプトに問題があるわけではなく、
欲しい機能を実現するためにフレームワークの中身をいじっていることが原因だったりします。

「Web版を復活してほしいです」というリクエストをいただいたので、リニューアルされて仕様が変わったティラノスクリプト公式の公開サイトにあげられるよう、最新のフレームワークに載せ替えてみたのですが、案の定、デザイン崩れた&ゲームの挙動がおかしい。
まあ、これは毎度のことなので、ある程度予想できたのですが、一番ヤバかったのが、

タイピングの文字入力が受け取れないことがある・・・!

「O」の入力は受け取れるのに、「I」は受け取れないという謎挙動。

ティラノスクリプトのバージョンアップでブラウザ上からデバッグもしづらくなっており、1週間くらい手探りで調査を続けていました。

もうダメかもしれない・・・。タイピングゲーム、公開できないのかも・・・。

と弱気になっていたところ、
ちょうど会社の先輩から「トラブルシューティング時の切り分け方法」を教えてもらうことができました。

切り分け方法は以下のとおり。

1.問題を定義する
2.情報を集める
3.原因を推測する
4.アクションプランを決める
5.アクションプランを実行
6.結果確認
7.解決しない場合は4、
推測が違っていると気付いた場合は3に戻る。

自分がどこの作業をしているかを把握することによって、落ち着いて作業ができるとのこと。

やってみました。

3時間で解決しました。まじか。

ちなみに原因はkeyupの構文ミス。

$(window).on(‘keyup’, function (e) {

$(document).on(‘keyup’, function (e) {

今まで動いていたから原因とは思っていなくて、情報収集中にWebで指摘する記事を読んだときも「あとで直しておくか」くらいに思ってましたよ。

まとめ。
トラブルシューティング時は、ちゃんと作業を切り分けてやったほうがいいよ、というお話でした!

シェアする