デバッグにはやり方やコツがあります。プログラミング初心者の方必見

プログラミング初心者です。
プログラミングをしている時に、 デバッグ(エラー対応)にかなり時間を取られてしまって心が折れそうです。

デバッグの効率的なやり方やコツがあったら教えてください。 あと、コーディングやデバッグのレベルアップにつながる本を知っていたら 紹介してください。

今回はこのような疑問に答えていきます。

プログラミングをする時に、デバッグというのは面倒な作業の1つです。 たった1つのバグを潰すのに何時間もかかったりするのはよくあることです。

経験を積むうちに自分なりのやり方やコツがわかってくるのですが、 初心者のうちはどうすればいいのか途方に暮れてしまうかもしれません。

そこでこのページでは、プログラミング初心者にもわかるように デバッグの効率的なやり方やコツについて説明します。
そして最後にプログラミングのレベルアップにつながる本を紹介します。

デバッグのやり方

エラーメッセージを確認する

エラーメッセージ

まずエラーが出ている場合は、エラーメッセージを確認します。 とても大事なことなので強調しておきます。

プログラミング初心者はエラーメッセージを軽視しがちですが、 熟練者はエラーメッセージをしっかりと確認します。

なぜなら、多くの場合はエラーメッセージを見ることで 原因がわかって解決するからです。
例えば「変数の型が違う」「変数名が定義されていない」「ファイルが存在しない」など、 親切に教えてくれています。 エラーメッセージが表示されている場合は十分確認してください。

エラーメッセージでGoogle検索

エラーメッセージを見ても分からない場合は、 エラーメッセージをコピペしてGoogleで検索します。

ありがたいことに、ネット上には先人達がエラーを解決したノウハウがたくさんあります。 エラーメッセージで検索すると、ピンポイントで欲しい情報がヒットする可能性が高くなります。 エラー番号やエラーメッセージでググってください。

処理が正常に実行されていることを確認する

自分が記述したコード部分が本当に実行されているのかを確認します。

例えば、関数を作成してその関数を実行したにもかかわらず、 思うような結果が得られない場合、まずその関数が正常に実行されているのかを 調べる必要があります。 もしかしたら呼び出し元で関数名を間違っているかもしれません。

そのために私がよくやるのは、適当な文字列を出力させることです。 JavaScriptなら 「console.log(“hoge”);」と入力して 文字列が出力されるかを確認します。

まずは処理が実行されていないことには始まりませんから、 処理が正常に実行されているかどうかを確認してください。

変数や配列の値を確認する

変数や配列の中に格納されている値を確認します。

例えば、JavaScriptなら「consolo.log()」、 PHPなら「echo()」、Pythonなら「print()」というような アウトプットする文を使って変数や配列の値を調べます。

そこで自分の意図する値が入っていればOKですし、 入っていなければどこかに間違いがあるはずです。

配列の値を調べる場合は配列内容を一括で出力できる命令文を使うと 便利です。JavaScriptなら「console.table()」を使うと テーブル形式で配列が表示されます。

デバッグモードでステップ実行する

ステップ

Visual StudioなどのIDE(統合開発環境)を使っていて、 デバッグモードがある場合は、プログラムをステップ実行することで 変数の値を随時確認できます。

デバッグモードのあるIDEを使っている方はデバッグモードを積極的に使ってください。 デバッグが楽になります。

分割統治法であたりを付ける

分割統治法とは問題解決の手法の1つです。 大きな問題を「解決できる程度の大きさ」まで分割していく手法です。 「困難は分割せよ」という有名な言葉がありますが、それを実践します。

デバッグでの分割統治法とはバグがある箇所を絞り込むために使える手法です。 プログラム中にprint文のような出力文を入れ込み、 この処理部分までは問題なし、 この処理部分以降は問題ありというように分けます。
問題のある部分をさらに問題なしと問題ありの部分に分けます。 こうやって問題のある個所をどんどん絞り込んでいくことで、 最終的にバグの場所を発見していく手法です。

デバッグのコツ

こまめに確認

確認する

プログラミングをしている途中途中でこまめに実行して、 問題がないかどうか確認することをおすすめします。

ある意味料理と似ていて、 料理の上手な人は、作っている最中にこまめに味見をしています。 ポイントポイントで味見をして問題がないことを確認してから次の工程へ進んでいます。

逆に料理の下手な人はろくに味見もせずに一気に作りきってから、 最後になって「失敗した」といいます。

同じように、プログラミングの上手な人はこまめに確認(テスト)しながら進めます。 こまめに確認することでエラー箇所を絞り込むことができ、早期解決につながります。 プログラミングをする際は、この点を心がけておくといいでしょう。

視点を変えるために時間を置いてみる

時間を置く

なかなか解決できないバグの場合は、 いったん問題を置いて、休憩したり他の仕事したりして、 その問題から一度離れてみます。 そして時間が経ってから再度問題に取り組んでみてください。

問題が解決できない時は、思考(視野)が狭くなっていて、 他の視点があることに気づきいていません。
いったん離れることで頭の中がリセットされて、 別の視点での解決方法を思いつくことがよくあります。

自分が行き詰っていると感じたら、 いったん離れて時間を置いてみることをおすすめします。

プログラミングのレベルを上げたい方におすすめの書籍

書籍

プログラミングの原則を知ることで、 自分にも他人にも読みやすいコードが書けるようになります。 プログラミングの原則はどんなプログラミング言語を使う場合でも共通しています。

そこでここではプログラミングの原則を教えてくれる書籍を紹介します。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

プログラミング初心者だけでなく、 プログラミングに携わるすべての人におすすめできる本です。

この本を一言でいうとタイトル通り、 良いコード(理解しやすいコード)を書くための手法が紹介されています。

変数や関数の名前の付け方、コメントの効果的な書き方、 テストのやり方など、プログラミングを行う上での基本的な原則が書かれています。

自分のコードの書き方にいまいち自信が持てない方は、 この本でプログラミングの原則を確認してみてください。

新装版 達人プログラマー 職人から名匠への道

全くの初心者には難しいかもしれませんが、 プログラミングを少しでも経験した方にはためになる情報が詰まっている書籍です。

良いエンジニアを目指すにはどうすべきか、 コーディングの指針などの基本的で大事なことが書かれています。

項目がたくさんあるので全てを読む必要はなく、 自分が気になる部分だけでも目次や索引を見ながら読むといいでしょう。 特に最後のクリックリファレンスガイドにはこの本のエッセンスが詰まっているため、 大いに活用してください。

私が好きなのは第3章なのですが、第3章の内容は次のようになっています。

第3章 基本的なツール
14 プレインテキストの威力
15 貝殻(シェル)遊び
16 パワーエディット
17 ソースコード管理
18 デバッグ
19 テキスト操作
20 コードジェネレータ
タイトルとURLをコピーしました