エラーと闘うときの心構え

ベイジにエンジニアとして入社して今年で4年目を迎え、未経験のエンジニアに教える機会も多くなっている。特にみんな躓きやすいのはエラーが出たときの対処法だ。エンジニアをやっていく以上、エラーとの闘いは常につきまとうもので、どう対応するか知っていることが重要だ。

今回、自分自身がいつもどのように対応しているかを振り返り、まとめたので紹介していく。こうしてみると単純なことばかりで、頭の片隅に留めておくだけでエラー対応に割く時間を短くできると思うのでぜひ取り入れてみてほしい。

英語だけど親切に何が悪いか教えてくれているのだから読む

エラーというのはほぼ100%英語で表示される。思ったとおりに動いてくれない、という状況の中で更によくわからない英語で提示されると更に焦ってしまう。自分自身も初心者のころは「何を言われているかわからない」「はやく何とかしないと」という気持ちから、がむしゃらにエラーを修正しようとしていた。

しかし、エラー内容が分からないことには直しようがないので、まずは落ち着いてエラー文を読むようにする。英語とはいえ、やさしい文章の場合が多いので翻訳すればちゃんとした日本語になる。

エラー内容をコピーしてググる

もし読んだり翻訳したりしても理解できないのなら、エラー文をコピーしてそのままググってしまうのも有効な手段だ。たいていのエラーは過去に誰かが同じように解決しようとしていて、QiitaやTeratailなどの技術系サイトでだいたい解決策が出ている。

本当に急いでいるときはエラーを読まずにいきなりググってしまうこともあるくらいだから、頭を抱えそうになったときはとりあえずググるのが一番だ。

原因が複数考えられるのなら小分けして1つずつ解決する

ここまでエラー文が出ている前提で話をしていたが、中にはそれすら出してくれない場面に遭遇することがある。そんなときに役に立つのが小分けして1つずつ解決していくことだ。

例えばタスクランナーでのコンパイルエラー。npm scriptsで組んだPug→HTMLのコンパイルなどはその最たるものだ。よく発生するのは配列の中でカンマ(,)を打ち忘れてコンパイルエラーで止まってしまうなどだ。たまに細かくコンパイルせずに一気にコードを書いてしまったときなどにこれが起こると、場所を特定するのは至難の業だ。

こういうときは直近で記述していた怪しいファイルを一旦コメントアウトする。それでコンパイルが動いたら、コメントアウトを減らしていき範囲を絞っていく。最終的に絶対特定することができる上、時間的にも節約できるので、このように順序立てて解決するよう意識している。

最後に

私自身は誰かに教わったわけではなく、対応していくうちにこれらのことを意識するようになった。新人エンジニアがエラー対応にあたる時にこれらを教えているが、最初からこう意識しておけば大抵のことは必ず解決できるようになるので、エラーに対する恐怖心もなくなるし、時間も節約できる。もしエラー対応にいつも苦労しているようなら、実践してみてほしい。