AxiZ沖縄ブログ

エンジニア育成学校【AxiZ沖縄】のブログです。

デバッグ力を上げるには

デバッグとは、バグを取り除くことです。
エラーが出た場合にエラーを取り除いたり、エラーが出ていなくても、
思った通りに動かなかった場合に思い通りに動くように修正することをデバッグと言います。
今回はデバッグのコツや、デバッグ力を上げるための考え方などをまとめました。

エラーの対処方法

コンパイルエラーの場合

ソースコードをよく読んで対処しましょう。
コンパイルエラーは文法上のエラーです。
基本をしっかりと理解していれば、ソースコードをよく読むだけで解決できます。

実行時エラーの場合

エラーの内容をよく読みましょう。
実行時エラーが出た時は、まずエラーの内容をよく読んでください。
ほとんどの場合、エラーが発生したファイルと行数が書かれています。
エラーが発生している行数を確認して、何が原因か考えてみてください。
また、実行時エラーの場合はエラーメッセージも表示されます。
エラーメッセージもよく読みましょう。
ほとんどの場合英語で書かれていますが、
知らない単語をネットで調べればある程度分かります。
最初は、エラーメッセージをそのままネットで検索するのではなく、知らない単語を調べて エラーの内容を理解できないか試してください。
メッセージだけでエラーの原因が分かれば、
調べずとも解決できます。
エラーを読んでも解決できない場合はネットを活用して色々と試行錯誤してください。


作業のログを残す

ネットで調べてエラーを解決できても、
そこから自分の知識として学ばなければ、
また同じエラーで躓きます。
一度経験したエラーから学ぶのには、作業のログを残すと良いです。

  • 何をしようとしてエラーが出たのか。
  • 解決するためにどんな作業を試したのか。
  • どんなサイトを解決したのか。
  • 一連の作業の中で新しく学んだこと、気づいたことは何か。

これらのことをメモとして残しておいて、いつでも検索できる状態にしておくと、
記憶にも残りやすく、忘れた場合も検索していつでもエラーの解決ができるようになります。

問題個所を特定する

エラーが起こったり、思った通りに動かなかったとき、
どこに問題があるのか特定が難しい場合もあります。
そんな場合は、コメント、デバッグ、標準出力、
などを活用して問題個所を特定しましょう。

  • コメント

    ソースをコメントにすれば、
    一時的にソースを無効化にすることができます。
    原因がありそうな箇所に目星をつけて、コメントアウトして、
    処理結果が変わるかを検証しましょう。
    処理結果が変化すれば、
    コメントアウトした箇所に問題があることが分かりますし、
    変化がなければ、問題はそこにはないことが分かります。

  • デバッグ

    eclipseの機能として備えられている「デバッグ」を有効に活用しましょう。
    慣れるまでは面倒に感じるかもしれませんが、慣れれば非常に役に立ちます。
    そもそもデバッグ用の機能なので、デバッグしたい時に使わない手はないです。

  • 標準出力

    Javaで言えばSystem.out.printlnメソッドによる出力のことです。
    この処理を埋め込むことで、どこまで処理が通っているかや、
    その処理を通った時点での変数の値などを確認できるので、
    標準出力をデバッグに活用しましょう。

動かしながら作ることでバグを減らす

そもそも、プログラムを作成している時点でバグがないように作ることができれば、それが理想です。
プログラムを一気に作って後でまとめて確認するのではなく、
少し作るたびに動かして確かめながら作っていけば、バグは少なくなります。
作りながらこまめにプログラムを動かして、動作を確かめながら作成することで、
最終的に少ないバグでプログラムを作ることができます。

エラーが出たらチャンスだと思え

エラーが発生すると、思わずため息をついてしまう人が多いです。
しかし、私は、エラーはむしろチャンスだと思います。
何故かというと、エラーに対する知識も増え、デバッグ力も上がります。
また、身近に同じエラーが出た人がいた場合に、
対処方法を教えてあげることができます。
教えてあげることができれば、
教えてもらった人からの信頼度を上げることができます。
学習している段階で沢山のエラーを経験しておくと、
現場でエラーが出た時にも冷静に対処することができるはずです。
逆に、学習している段階でエラーをほとんど経験していない人は、
実際の現場で見たことがないエラーが出た時に戸惑ってしまいます。
エラーが出た時は、自分にとってプラスになるチャンスだと思って積極的にエラーの対処に取り組みましょう。