感想:APIを作りながら進むGo中級者への道

APIを作りながら進むGo中級者への道:さきさん文庫

こちらの書籍を一通り読んだので超簡単に読書メモ。

なぜ読んだか

  • 3年ほど前に仕事でGo言語&Ginを用いてサーバーサイド処理を記述することがあった(DB接続なし)が、それ以降Go言語に触る機会がなかった。プロジェクトの自分が担当していない箇所でGo言語でプログラムが記載されており、久々にGo言語に触れたくなったので記憶を呼び戻す意味合いで読もうと思った。

自分のGo言語レベルについて

  • Gopher道場(確かこれだったはず・・・)は一通り手を動かして実施したことあり
  • 1プロジェクトでGo言語でwebAPI実装経験あり
  • プライベートでgRPCを利用したwebAPI実装経験は1回だけあり
  • ただしレビューはGo言語未経験者同士のため誤った知識が身についているかもしれない
  • context, ゴールーチンは雰囲気で利用
  • DB接続処理はプロジェクトでは実施せず。プライベートでgormを利用してDB処理周りは実施したことはある
  • プロジェクトでは2・3年はGo言語とは距離を置いていた
  • 処理を書けなくともあまりコメントがなくても読んで内容を理解することはできる(Go言語は人によって記述があまりばらけないので読みやすいと聞いたことがありますが、一応)

感想

  • Ginとかのフレームワークに則るのではなくGo言語のデフォルト機能を駆使してWebAPIを作成していた。開発で実際にWebAPIを作る際は、何かしらのフレームワークに則ることが多いのかもしれない(Go言語で1案件しかやったことがなく一般的にどうなのかが不明)ので、この書籍の記述をそのまま使うことはできないかもしれない。しかし、ライブラリなしのデフォルト機能だけでここまでシンプルで分かりやすく実装できるものなのかと驚いた。 (普段はKotlin & SpringBootを利用しており、SpringBootなしでWebAPIをどうやって作ればいいのか検討もつきません・・・)
  • あとがきを読んで著者のさきさんに対する印象が変わった。Go言語について連載を持っていたりZenn本を複数出していたりととんでもなく雲の上の人だと思っていたが、web周りの知識が足りないと苦労した時があるというのはとても意外だった。(その後とてつもない量の勉強をしてあっという間にキャッチアップしたんだろうなと思いつつ) 自分も(?)直向きに頑張るしかないなと気持ち新たに感じた。
  • この書籍を一通り読むことで、webAPI周りやDB周り、テストやらGo言語で重要なゴールーチンとかcontextとかの範囲をざっと復習できてとてもよかった。また、自分がプロジェクトでGo言語を触っていたときは、Go言語未経験者同士でレビューをしあって試行錯誤しながら実装していくスタイルだったので、こうしてGo言語に詳しい方のソースの記述や記述意図の説明・リファクタの流れなどを知ることができたのもよかった。(なお、全て写経なり実装するのは遠慮している(プロジェクトで直近Goを触る予定もなく、またプロジェクトだとgormやらginやらを利用しておりそちらのキャッチアップもと考えるとさらっと要点を押さえていきたいと思ったため))
  • 著者のさきさんが紹介していたZennの参考サイトも目を通したいと思っている。