こんにちは、しょごです。
エンジニアにとって開発中に何かにハマるということはよくあります。たとえば、仕様を実現するために構築したロジックがうまく動かないことでしょうか。原因はさまざまですが、そういったトラブルはつきものです。
ただ、それらを解消する時間は開発工数には基本的に含まれていません。仮にバッファを含んだ契約をしていたとしても、ハマりから逃れるまでの時間は短いほうがよいでしょう。
そこで、今回は、開発中のトラブルをいち早く解決へ導くための4つの考え方をご紹介します。
▼エンジニアを爆速化 エンジニアがいい感じにフロントエンド開発を爆速化できる環境構築の手順 新人エンジニアにすすめたい、Google検索でいち早く物事を調べる方法 フロントエンドエンジニアであり続けるために効率的に情報収集を行う方法
1. 「何でできない?」ではなく「何をミスった?」と考える
ロジックがうまく動かないとき、解決までに時間がかかる人は「合っているはずなのに」という意識でいる場合が多いです。
ただ、これはウチの経験則ではありますが、開発時に不具合が生じた場合、9割以上は自分の書いたロジックが悪いことが原因であると断言できます。残り1割未満が、ブラウザの仕様や、ロジックがミドルウェアのバージョンに対応していないなどによるものでしょうか。
だからこそ、不具合が発生したら、まずは「書いたロジックのどこかで間違ったかな?」という意識になりましょう。そうすることで視野が全体に広がり、バグを探しやすくなります。
2. エラーを出力する / エラーログを確認する
不具合が発生した場合、当然ながら何かしらの原因があります。
ただ、何も分からないままでは、どこを修正すればいいのかわかりません。そこで、解決するためのヒントを得るために、エラーを出力させてみたり、エラーログを確認したりします。
例えば、構文エラーなどで不具合が起こった場合は、どのファイルのどの行でどんなエラーがでているかなどの詳細がエラーログに出力されます。これをまず確認することで、調べるポイントをいち早く絞ることができます。
3. 原因のパターンを分析する
実行結果が得られないことには必ず原因があり、そこにはパターンがあります。どれに当てはまるかを冷静に分析しましょう。
簡単な例として、画像が表示されない不具合が発生した場合に考えられる原因のパターンは、
- 画像のパスが間違っている
- 画像のパスは合っているが、その階層に画像がアップロードされていない
- 画像がRGBカラーで出力されたものではない
などです。他にも考えられますが、たいてい最初の二つのどちらかになるでしょう。仮に、エラーログで読み込もうとするファイルが404エラーと表示された場合は、間違いなく最初の二つのどちらかです。
4. 変数やテストコードを出力して確認する
それでもエラーが解消されない場合は、ロジックを洗っていきます。
想定される値が変数に正しく格納されているか。想定している条件分岐に正しく遷移しているかを確認しましょう。foreach文直前の変数をprint_rで出力する。もしくは、条件分岐内に遷移しているかは、適当な文字列をechoさせることで判別できます。
この手法では、いきなり細かくおこなわず、ロジック内のポイントごとに大きく出力させるのがオススメです。慣れていればロジックにあたりを付けて細かくおこなうのもいいでしょう。ただ、他人が作ったシステムやプラグインなどを解析する場合は、システムソースをまず把握し、ロジックごとにおこない、スタートからゴールまでを細かく洗うことで的を絞っていきます。
地道ではありますが、確実に原因をつきとめられる手法です。
まとめ
いかがでしたか。特にエンジニアになりたての人や、不具合の解決に時間がかかりすぎてしまう人にはおすすめの手法です。
ものすごく基本的なことではありますが、ついつい「あってるはず!」という思考で止まってしまいがち。だからこそ、「不具合が発生したら9割以上は自分が悪い」と考えるようにしましょう。
この意識を持ちながら開発を行えば、ハマりから抜けだす速さは確実に高まります。ぜひお試しください。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。