プログラミングのバグの解決方法6つ!原因は意外に単純なことかも

IT


『プログラミングむず…バグった…動かない…意味ワカラン…』

■本やネットの解説記事のとおりに書いたのに動かない
■ネットでエラーの原因を検索してみたものの、どれが自分に当てはまるのかわからない
■直したら今度は別の場所でエラー

…心が折れますよね。

プログラミングをしている時間の中の半分以上は、思うように動かなくて調べたり、バグがとれなくて悩んでいる時間だと思います。

そんなときのために!
これから紹介する6つのことを試して、バグを解消しましょう。どの言語かは関係なく読める内容になっています。

原因は意外に単純だったりするかもしれません。

目次

スポンサードリンク

その1:"そもそも"を疑う


まずは、大前提の"そもそも"を疑いましょう。

インターネットに繋がらないと思ったらLANケーブルが刺さってなかったとか、ルータの電源が入ってなかったとかよくある話です。

ローカルで開発中にアクセスができないと思ったら、『そもそもサーバが立ち上がってなかった!』とかもあります。

こんな感じで、大前提となる何かが欠けていたりするかもしれません。
書いたコードを疑うより前に、前提がしっかり出来ているのか確認してみましょう。

ここで解決すれば儲けもんですね!

その2:バグを整理する


バグが出たとしても焦らずに、現象(バグの内容)を整理しましょう。

  • 何の操作をすると、何というエラーが出るのか
  • そのエラーの内容は、何を伝えようとしているのか
  • 操作の順番は関係あるか
  • 本番環境と開発環境で違いはあるか
  • 何が正で、何が誤なのか(ゴールをハッキリさせておく)

といったところに気を付けて、現象を整理していきます。

整理しないと、何が正しく何がダメなのか、ゴールが定まりません。

もし処理が複雑なら、脳内だけでムリに整理せず、メモ帳に書き出したりするのもいいと思います。

バグが起きると焦ってしまい、普段見えている部分でさえ見落としてしまいがちですからね。

まずは落ちついて整理して、それからじっくり考えましょう。

その3:パーツを分けて考える


処理があちこちに飛んで、そのどこかでバグ起きている場合があると思います。
そういうときは、どこまでは正常に動いているのか、どこからおかしいのか、パーツを分けて考えましょう。

原因と思われる箇所を段々と絞っていって、問題を特定します。

この「どこまで正常に動いているか」判断するには、ステップ実行が有効です。

ステップ実行は開発環境によってはできない場合もあります。
もしステップ実行ができない環境なら、途中に処理番号を書いたログを出力すれば、どこまで正常に動いているのかわかりやすいです。

その4:シンプルにする(余計なものを取り除く)


これは環境構築に関するエラーによく効く手法です。
最初は動いてたのに、「コードを足したり、あれこれインストールしていったら動かなくなった」という現象ですね。

どの状態のコードなら動くのか、バージョン管理ツール(Git、SVNなど)を使って前の状態に戻してみたりしましょう。

便利なライブラリをたくさん使っていると、開発時間を短縮できますが、問題が起きたときに原因を探し辛かったりします。

その5:誰かに質問する(しようとする)


ラバーダッグ・デバッグ、またはテディベア効果というデバッグのテクニックがあります。

例えば
バグが起きて先輩に聞きに行き、バグの説明をしている途中で

「あ、あそこが悪いんじゃん」と気づいて、「先輩!やっぱりなんでもないです!解決しました!」

と、先輩からアドバイスをもらう前に解決するやつです。
人にわかるように質問しようとすると、自分の脳内で現象を整理することで解決に繋がるのだと思います。

これをラバーダッグ・デバッグ、またはテディベア効果、といいます。
【参考】Wikipedia - ラバーダック・デバッグ

その6:寝る!!


今日は寝てしまって、一晩置きましょう!
パソコンの再起動のように、一旦忘れて寝ましょう zzZ

そして朝起きたらもう一回見直してみましょう。
「え、ここ抜けてんじゃん…昨日の自分アホかよ!」ということが起こります。

追い詰められてたりバグにハマっている時は、思い込みで視野が狭くなりがちです。
寝逃げでリセットしましょう。

これは意外に効くのでやってみてください。
一番オススメの方法です。仮眠でもオッケー。

簡単で、疲れがとれて、バグもとれて、一石三鳥ですね。

まとめ

  • "そもそも"を疑う
  • バグを整理する
  • パーツを分けて考える。問題の切り分け
  • シンプルにする(余計なものを取り除く)
  • 誰かに質問する(しようとする)
  • 寝る!!一番オススメ

以上、『プログラミングのバグの解決方法6つ』を紹介しました。

私はその6に何度も助けてもらいました。でも6のやり過ぎには注意が必要ですよ!
寝ると間に合わないときもありますからね笑

少しでも、バグにハマって悩んでいる方の力になれれば幸いです。

スポンサードリンク

ITリテラシー・プログラミングのまとめ記事