【プログラミングのコツ】ソースコードが動かないときどうするべきか ~ソースコードを漠然と眺めない~

2019年7月29日月曜日

プログラミング

【プログラミングのコツ】ソースコードが動かないときどうするべきか

私が新人プログラマーとして働いていた時、自分が書いたプログラムがなぜか動かず、途方に暮れてしまっていたことがあります。


そんなとき、先輩から言われた言葉があるのです。

それがこの、
「ソースコードを漠然と眺めない」
という言葉です。


当時はこの言葉の大切さをあまり理解できていなかったのですが、今になって思うと
「とても大切なことだなぁ」
と思うのです。

この記事では、この言葉の裏に隠された意味と、ソースコードが動かいないときに取るべき行動について考えていきたいと思います。


この記事を読み終わったとき、皆さんは、プログラムの問題を自由自在に解決できるプログラマーになっていることでしょう!



この言葉の意味

ソースコードを漠然と眺めない

皆さんは、プログラムを書いていて、そのプログラムがうまく動作しない時に、どんな対処をしますか?

新人の時にやってしまいがちなのは、自分が書いたソースコードを上から順番に確認していってしまうことです。

そして、ソースコードを眺めながら、あーでもないこーでもないと、原因を想像しながら、時間だけが過ぎていってしまうのです。

私が新人プログラマーとして働いている時も、こういうことが頻繁にありました。

それを見かねた先輩が、この言葉を私にかけてくれたのです。


この言葉の意味とは、
「いくら時間をかけてソースコードを上から順番に眺めていっても、解決策は見つからない」
ということです。

何の手がかりもなくソースコードを眺めていても、なかなか問題の原因は見つかりませんし、時間ばかりが過ぎていってしまいます。

個人的に開発しているような小さなプログラムであれば問題ないかもしれませんが、業務で扱うような大きいプログラムであればあるほど、ソースコードを全て確認する、なんて事は不可能に近くなってきます。


そのため、効果的に問題を解決するためには、「手がかり」が必要なのです。



では、私はどうするべきだったのでしょうか。



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

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

まず1番最初にするべき事は、エラーメッセージを確認することです。

ある程度プログラミングの経験がある方からしたら当たり前のことかもしれませんが、新人にとってエラーメッセージとは非常にわかりづらいものです。

特に、システムから返されたエラーメッセージはシステム内部の難しい言葉を含んでいることもありますし、完全にエンジニアに向けられたメッセージの場合は、
「この言葉ぐらい知ってるでしょ?」
ぐらいの感じでメッセージが返されてきます。

新人にとって、このエラーメッセージを解読するのは非常に難解なことです。

そこでとるべき行動は、
「エラーメッセージでそのままGoogle検索をする」
ということです。



システムから返されてきたエラーメッセージを、そのままコピーして、Googleで検索してしまうのです。

基本的には、私たちが遭遇するようなエラーには、多くの先人たちがあらかじめぶつかっており、すでに有効な解決策が用意されています。

そして、その有効な解決策が記載されているようなウェブサイトは、問題が発生したときのエラーメッセージを記事の中に含んでいます。

そのため、エラーメッセージでそのままGoogle検索することによって、有効な解決策にたどり着くことができるのです。

ですから、プログラミングをしていて、うまく動作しない場合は、まずエラーメッセージを確認してみてください。

そして、意味が分からなければ、そのエラーメッセージでGoogle検索をしてみてください。

きっと有効な解決策が見つかるはずです。



デバッグする

デバッグ

皆さんはプログラミングをする時、頻繁にデバッグを行っていますでしょうか。

デバッグとは、ソースコードの動きを途中で止めて、その時点で変数に格納されている値などを確認しながら、順々にソースコードを実行していくことです。

これを行うことによって、ソースコード実行中の状態をはっきりと確認しながらプログラムを動かしていくことができます。


このデバッグを行うことができれば、どの時点までソースコードが正常に動いていて、どこから問題が生じているのかということが明確に分かります。

そのため、デバッグを行う事は、問題の手がかりを得る上で非常に重要になってきます。


ソースコードが原因不明で動かないときには、ぜひ、デバッグを試してみましょう。



デバッグできないときは、デバッグコードを埋め込む

デバッグできないときは、デバッグコードを埋め込む

確かにデバッグは非常に便利です。

ほとんどの問題は、このデバッグで解決することができると言っても過言ではないでしょう。

プログラムの状態を逐一監視しながら実行できるわけですから、非常に有力な手がかりを得ることができます。

しかし、このデバッグと言う機能は、必ずしも常に使えるわけではありません。

あなたがプログラムを書いている環境によって、デバッグができない場合もあるでしょう。


そういうときにはどうすれば良いのでしょうか。



そういうときには、ぜひ、デバッグコードをソースコード内に埋め込んでみましょう。


デバッグコードとは、例えばプログラム実行中に変数の中身を外部ファイルに出力してみたりとか、メッセージとして画面上に表示してみたりするためのプログラムの記述ことです。

作成中のプログラムに直接追記をして、変数の中身を出力してみるのです。

そうすることによって、デバッグをしているのと同じような効果を得ることができます。


もちろん、開発環境でデバッグができればそれが1番良いのですが、それができない場合は、少し手間をかけてでも変数の中身を確認しながら実行していってみると良いでしょう。


上から順番に漠然とソースコードを眺めるよりは、はるかに効率が良いはずです。




まとめ: 漠然とソースコードを眺めず、手がかりを集める

漠然とソースコードを眺めず、手がかりを集める

大きなプログラムは、複雑な論理の集まりです。

ロジックが複雑にからみあって、想定された動きを実現しています。

そのため、漠然とソースコードを眺めてみても、そこから問題を発見する事は容易なことではありません。

ましてや、どこが問題なのか見当もついていない状態であれば、ソースコードを眺めたところで時間ばかりを浪費てしまい、解決には至らない場合が多いでしょう。


ですから、この記事でご紹介したような方法を用いて、とにかく情報集めてください。


推理をする上では、手がかりが不可欠です。

何の情報もない状態でソースコードを眺めるのではなく、Google検索やエラーメッセージの読み込み、デバッグ実行などを駆使して、あなたの書いたソースコードがどこまでうまく動いていて、どこから問題が生じているのかということを明確にしてください。

これができるかどうかで、あなたがプログラミングをする上での効率が大きく左右されることでしょう。


この記事が、あなたがプログラミング学習をする上での助けになれば幸いです。

この記事を読んでくださり、ありがとうございました。