'sqr'atch-note

ちりはつもれど ちりぬるを

『Go言語Webアプリケーション開発』読んだ

  • 本書の構成は2部構成で、1部の1章~12章ではGolangを使ったWebアプリケーション開発に関する知識やTIPSについて解説を行い、13章からの2部ではWebアプリケーション開発をハンズオン形式で行っていく。
  • 作るWebアプリケーションは、表紙にも書いてあるとおり、REST APIのWebアプリケーション。Webアプリケーションの題材は、ユーザ登録、認証、タスク登録、タスク一覧取得ができるToDoアプリ。

良かったところ

  • 今どきな構成で開発を体験できるところ
    • バックエンドとして使われることが多いGolangを使って、RDBMSへのデータ永続化処理、Redisを使ったキャッシュと認証・認可の実装という構成でREST API Webアプリケーション開発を体験できる
  • 15章「開発環境を整える」
    • 最近のどの本にも言えるけど、本書でも開発環境はDockerで用意する。その中で、Makefileを作ってタスクランナーの用意、Github ActionでのCI/CD環境の用意などの説明があって良かった。
    • こういう細かい部分の準備は、本の中に書かれてあることがなくて、初心者だと思い付きもしなかったりするから検索して知ることもないし、こういう部分はサラッと書いてあるものの結構学びは大きかった。
  • テストコードを作りながら、インクリメンタルにコーディングを進める構成
    • 小さく始めてテストコードを書きながら開発を進めるスタイルで書かれているので良かった

イマイチだったところ

  • 本文中の誤植、ミスがちょっと多い気がした。
    • 特にハンズオンの13章以降は結構目立った。
    • でも、VS CodeでGoの言語サーバgoplsを入れており、これが結構賢いため、怒られが発生したらコードを見直したり、本書の正誤表を確認したり出来たので、そこまで困ったわけではない。
    • go_todo_app/errata.md at main · budougumi0617/go_todo_app · GitHub
  • ハンズオンパートのガイドが、難しかったように思った。
    • 特に19章でHTTPハンドラーの実装を分離する部分では、どこに何を修正していくのか?が迷子になりがちだった。コードのキャプションにファイルパスが書いてあったり、無かったりするので、それが分かりづらかったように思う。これから作るアプリの全体構成図が1枚置いてあるだけでも全然違ったかなと思った
    • 19章をやり終えてから、全体を振り返って自分なりに何がどう繋がっているのか理解して納得できたので、初心者故に「こういう構造にするべき」みたいな設計が頭の中で整理がついてないせいで混乱してしまっただけだと思う。