急激に涼しくなりましたね。気づいたらもう10月です。
本社ERP事業部の新人はそれぞれのチームに配属され、研修内容も製品の勉強へとシフトしています。
7月からの研修を振り返ると、エラーとの戦いの日々だったな…と思います。
プログラミングにエラーはつきものです。今回は私が実践しているエラーの解決方法をご紹介します。
💡エラー文を読み解く
赤い文字の羅列にうっ…🤨となりますが、ひとまずエラーメッセージを注意深く読み解いてみましょう。
ぱっと見は英語が並んでいるだけですが、エラーメッセージにはヒントが沢山あります。
まずは、翻訳をしてエラーの内容を確認します。
エラーのタイプや発生場所(ファイル名・行番号)などが書いてあるため、読み方を覚えて原因となる場所で何が起きているのかを探します。
💡コードの確認
場所がわかったら、該当箇所のコードの確認です。
意外と誤字・脱字などのタイプミスが原因のことも。
私はとても重要なif文を1行、知らない間に消してしまい、半日無駄にしたこともありました…😶
プログラムが長くて原因がわからないときは、不具合がありそうな個所をコメントアウトしてみます。
コメントアウトして実行出来たら、そこにバグが潜んでいる可能性が高いです。
コードを作成するときは、小さいかつ動作するコードから始めるようにします。その後、段階的にコードを変更・追加していくとエラーのテストも行いやすいです。
💡デバッグで中身をのぞく
「コードは正しく書いているのに…」そんな時は、デバッグを行います。
下の画像の赤い🔴(ブレークポイント)で、処理を一時停止することができ、1行ずつプログラムを動かしていくことができます。変数に手動で値を設定したり、処理をもう一度行わせることも可能なため、様々な実験が可能です。
超初心者のためのコードのデバッグ – Visual Studio (Windows) | Microsoft Learn
このように、デバッグでは処理の流れやエラー発生直前の変数の値などが確認できます。
また、データベースに関係するエラーは「SQLServer Profiler」というツールで、流れたSQL文を確認できます。そのSQL文を実際に実行し、取得しているデータを覗くことができます。
💡Webで検索
ERP事業部で使用しているC#は、世界第5位の人気を誇るプログラミング言語です。(The top programming languages | The State of the Octoverse (github.com))
エラーメッセージなどを検索すれば、同じようなエラーに出会った先人が解決法を掲載している場合があります。私は「Qiita」「teratail」「stackoverflow」というサイトを参考にすることが多いです。
ただ、環境が異なったりバージョンが異なると対処法が変わることがあるため、参考にする際は注意が必要です。
「なぜかわからないけど動いた…」ということが起こりますが、思わぬバグを秘めている可能性があります。そこで、システムの公式ドキュメントを用いて仕様を確認し、正しく修正することが重要です。正直、公式ドキュメントは読みにくく、苦手意識がありますが「正しい修正」をできるように、取組中です。
💡ChatGPTに相談
ChatGPTにエラー文や状況を伝えると、解決策をいくつか提案してくれます。
一回で正確な情報を返してくれることは難しいため、段階的に適宜情報を与えていきます。
ここでの注意点は、コードをそのままコピー&ペーストをしないことです。ソースコードは会社の財産のため、これをそのまま入力すると情報漏洩となってしまいます。
セキュリティ意識を持つことが大切です。
💡Knowledgeで検索
弊社にはナレッジマネジメントの一環で、「Knowledge」というツールが導入されています。
業務を進める中で得た知見や知識、技能、ノウハウを組織全体に共有する投稿型のツールです。
先輩方の勉強資料や参考するべき資料がまとめられています。お客様からの質問の調査報告なども掲載されているため、より実践的な情報を確認できます。
💡製品特有の言語仕様かも…
Webをいくら探しても解決策が見当たらない…そのような時はGRANDIT特有の言語かもしれません。
そのような時は、GRANDIT社が提供している公式のドキュメントを参考にします。
研修では課題ごとに参考するべき資料と該当箇所がまとめられていましたが、実務では自力で探さなければなりません。丸暗記はせずとも、どこに何の情報が書いてあるのか、把握しておく必要があります。
💡周りに質問
自分で悩んでも調べてもわからない場合は同期に聞いてみます。
同じエラーに出会ったことがある同期がいて、あっさり解決することも…!
💡チューターの方に質問
今回のGRANDIT研修では、チューターの方にいつでも質問できるように、「質問・回答チャネル」というコミュニケーションスペースが設置されました。
エラーの状況や自分で調べたこと・試したことを記載します。チューターの方が回答してくれたり、直接駆けつけてくださいます。質問内容を分かりやすく簡潔にまとめておくことが重要です。
💡エラーの原因や対処法は記録して次に活かそう!
エラーの原因・解決法を記録しておけば、再度エラーが発生した時や他の人に伝える際に必ず役に立ちます。地道な作業ですが、継続して質の高いアウトプットを出すエンジニアになりたいです。
失敗は学びの一環であり、成長の機会でもあります。エラー文が急に出てきても、安心して前進していきたいと思います。
研修お疲れ様会、たのしみ🍺🍖