こんにちは、マネーフォワードエックスカンパニー 個人サービス開発部 バンキングアプリ開発グループの仲川です。この記事は Money Forward Engineering 1 Advent Calendar 2023 の12日目の投稿です。 突然ですが、クイズです! Q:Go言語ではどのような実装を行うとpanic(runtime error)が発生するでしょうか?また、それらの発生自体を防ぐにはどうすれば良いでしょうか? 少しだけ手を止めて考えてみてください... さて、いくつ思いつきましたか? 熟練のGoエンジニアなら、5つ以上の実装パターンと対策がすぐに思い浮かんだでしょう。しかし、実務である程度Goを触っている方でも答えが出せないことも多いと思います。実際、panicの考慮が漏れてバグを発生させてしまった事例はよく見かけます。 これらはテストカバレッジを100%確保したり、lint