はじめに
まず、はじめてQiitaに記事を投稿するため、拙い技術で伝えることに関して許してほしい.
この度、Google主催のハッカソンに参加させていただくことになったのだが、そのうえでバックエンドに興味があるならGoを扱ってみるといい、という指南を受けた.
ということで、Goをハンズオンにより勉強していくうえで、気になったことや戸惑っているポイントを、備忘録としてここに残す.
error処理について
result, err := someFunction()
if err != nil {
// エラー処理
return err
}
Goを触り始めて共通点を感じるのは、関数の戻り値(err)で毎回エラーをチェックするスタイルだ.
これまでC言語やRustなどの概念を少し触れたことがあったので、それらと比較.
C言語とのつながり: C言語では関数の戻り値(0や-1など)で成功・失敗を判断する.
Rustとのつながり: Rustは Result 型でラップするが、Goはもっとシンプルに「複数の値を返す」という仕組みで解決している.
error型とは予期せぬ停止(クラッシュ)を防ぎ、エラーを「普通の値」として扱うことで、処理の流れが追いやすくなるように想定されているらしい.
ハッカソンへの意気込み
今回のハッカソンでは、チームのフロントエンド(Flutter)との連携がカギになる.
Goの「シンプルで明確なエラー処理」を理解しておくことで、APIがエラーを返したときも、フロント側が迷わないような設計思想をできる気がしてきた.
まずはハンズオンを完走し、チームの力になれるよう努力していこうと思う