moyashidaisuke's diary

平日はエンジニア、土日はミュージシャン(自称)のダイスケです。プログラム関連とかギター関連とかなんでも。

コードを書くのが速い人/遅い人 その1:ログの読み方

ペアプロっぽい感じで一緒にデバッグする機会で得た知見の話。
完全に個人的見解だし、まとまってないポエム的なものなのでQiitaじゃなくてこっちに書いておく。


ある程度の実力と経験値があるエンジニアなら、問題解決の型をもっていて、新しい言語なりFWなりに触る時に早くキャッチアップできる力になっていると思う。
そういった型に対する考察。

何か開発しててうまく動かないときの追い方

自分の場合、大体以下の通り。

  1. エラーが発生する
  2. ログを確認する
  3. 複数箇所、複数行にまたがっているログから本質的なものを探し出す
  4. ログを元に、コードを確認するなり、エラーコード、エラーメッセージを調べるなりして対応する(ケースバイケース)

この3が苦手な人が多い印象。

StackTraceとかだと長々としたログが出ているが、大体一番下か一番上にエラーの内容が書いてある。(複数行のパターン)
この勘所がないと、長いログを上から下まで読んで、よくわからない、という結論になってしまいがち。

また、ブラウザからAjaxを叩く系の処理だと、本当はサーバ側でエラーが出ているのに、ブラウザのエラーを永遠と解析しようしていたりする。(複数箇所のパターン)


で、普段からログを読んで問題解決していく癖が無い人が書いたコードは、エラー時の情報が少ない事がよくある。

try (
// 何か処理
} catch (Exception $e) {
   error_log("失敗しました");
}

みたいなコード。黙ってExceptionをそのまま投げてくれればいいのに、、、、