こんにちは、トミセン(@tomisenblog)です。
ソースコードを修正する時に、あなたは何から始めてますか?
「とりあえず、ソースコードを確認だ!」と、いきなり作業を始めていませんか?
そのやり方をしていると、なかなかプログラマーとして成長することは難しいでしょう。
なぜなら、一番大切な手順を省いてしまっているからです。
その結果、時間をかけて調べても何もつかめなくて、もう一度やり直すなんてことになりかねません。
これは、物事の本質をとらえる考え方をしていないことが原因なんです。
そこで今回は、ソースコードを修正する際に問題箇所を発見するコツについて詳しく解説していきます。
ソースコード修正のコツ(問題点の探し方)
問題点の探し方のコツを知らないと、時間ばかりかかって要点を見つけるどころか見失ってしまう原因になります。
そのせいで「何で他の人みたいにできないんだ。」「なんでこんなに遅いんだろう。」と落ち込むこともあるかもしれません。
でもまぁ、そんなに心配する必要はありません。最初からうまくできる人はいませんから。
私も多くのエンジニアを見てきましたが、最初からできる人なんてそういませんでした。 もちろん、私自身も最初はひどいものでした…。
ですが、きちんとした方法を身につければ、誰でも短時間で効率よく問題点にたどり着くことができるようになります。
それでは、問題箇所を探す方法について詳しく解説をしています。
プログラミング初心者の探し方
プログラミングを始めたばかりの初心者は、以下のように考えてソースコード見る人が多いです。
- とりあえずソースコードを見る
- 最初から順番に見ていく
- 細かいところまで漏らさず見る
- 全体像が見えなくなって、分からなくてまた戻る
初心者プログラマーは、最初に考えずにすぐに行動を起こしがちです。
具体的な例をあげると、こんな感じです。
つまりこんな感じ・・・
- 登録されたデータがおかしい
- 解決しようとソースを見始める…
- その画面のロジックを最初から確認し始める…
- 1つ1つのボタンの動きまで確認する…
- 確認したことが多すぎて、途中で分からなくなってまた最初から見直す…
ここまでの極端な例は少ないかもしれませんが、かなり近い状態は未経験プログラマーさんに教育しているときよく見かけます。
時間を気にして早く終わらせたいと思っているからなのか「とりあえず行動することが最短だ」と考えてしまう傾向にあるようです。
ところが実際は、
関係のないところまで調べてしまったり…。
途中で分からないことがあると気になってしまってそこも調べてしまったり…。
結果的に、必要のない余計な時間と手間をかけてしまっています。
最悪の場合は、自分で調べていたところに注意が行ってしまって、全体像が見えなくなってしまうこともあります。
このやりかたでは、いつまで経っても問題点を発見できずに修正することは難しいでしょう。
プログラミング経験者の探し方
では経験者はどうしているのか?経験者のやり方を見ていきましょう。
- 問題事象から問題箇所の仮説を立てる
- 関連ロジックの大きな流れを掴む
- 仮説から関連がないと思われる箇所を除外する
- 関係がありそうな箇所の詳細を確認する
経験のあるプログラマーは、問題事象から仮説を立ててロジック追いかけていきます。
具体的な例をあげると、こんな感じです。
つまりこんな感じ・・・
- 登録されたデータがおかしい
- データを登録している箇所が怪しそうだ…(仮説)
- その画面のロジックの大きな流れを掴む
- 保存ボタン以外のロジックを除外する
- 保存ボタンのロジックを確認する
つまり、頭の中で「ここで問題が起きているはずだから、こう直せばいい」という修正のイメージができあがっています。
あとは自分の立てた仮説が正しいかどうかソースコードを見ながら確認をしていくだけの状態です。
もし仮説が違っていたとしても、新しい仮説を立ててもう一度繰り返していきます。
確認しようとしている箇所が決まっているので短時間で確認ができるし、細かい点に捉われてしまって全体が見えなくなってしまうということもありません。
問題点の探し方のコツは「仮説を立てる」こと
問題点を探すときの初心者と経験者のやり方をみてきました。
経験者と初心者にはソースを追いかけるときの手順に大きな違いがあります。
ポイントは「仮説を立てる」ということです。
初心者はこれを意識していないから、目に見える行動をである「ソースを確認する」ということを優先してしまいます。
ですが、問題の要点を捉えないで作業進めると、そのうちに重要なポイントが分からなくなって時間ばかりがかかってしまうでしょう。
ただなんとなく順番に見ていくのではなくて、きちっと目標を定めてからソースコードに目を通すことが重要です。
調査や検証のスピードが圧倒的に早くなるので、設計書を書くようになっても仮説を立てるスキルは生かすことができます。
まとめ
問題点の探には、仮説を立てることが重要です。
仮説を立ててからなら、難しいソースを見ていてもあっさり問題解決することもあります。
初心者プログラマーのうちは調べる作業にすごく時間を使ってしまうものです。
それで「自分はダメだ、才能がない。」と思い込んで悩んでしまう人もいます。
そういう人はまずはこの方法から試してみてください。
でも、この方法も練習が必要で意識するだけですぐにできるわけではありません。
先輩社員がいるのなら、「どういうふうにポイントを絞ったらいいか」聞いてみてください。
もし1人で勉強しているなら、プログラミングスクールで講師(メンター)を活用する方法もあります。
ここで挫折してしまっては、これまでの勉強が無駄になってしまいます。
それは、とてももったいないです。
ここを乗り越えて「できるプログラマー」になれば、あなたのプログラマーとしての価値はだんぜん高まります。
「ダメだ」と一歩引いてしまうのではなく、必要なら自己投資をして一歩前に進んで価値を高めましょう。
それでは、また。
いいエンジニアライフを!