詳解 Go 言語 Web アプリケーション開発
ショウカイゴーゲンゴウェブアプリケーションカイハツ
- 著者:
- 清水 陽一郎(シミズ ヨウイチロウ)
- 出版社:
- シーアンドアール研究所
- 出版日:
- 2022年07月22日頃
- ISBN:
- 9784863543720
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
Go は 2012 年 3 月にバージョン 1 がリリースされてから約 10 年が経ちました。その間 Go は多くの企業で利用され、その利用シーンもさまざまです。本書は Go で REST API Web アプリケーションを開発するときに必要な知識に特化した内容になっています。
本書は前半で Web アプリケーション開発の事前知識として Go の設計思想や知っていると便利な標準パッケージの機能について紹介し、後半で Go を用いた Web アプリケーションのコードをハンズオン形式で解説します。
また、本書ではベテラン Gopher が暗黙知的に行なっているイディオムの解説や、標準パッケージやメジャーなサードパーティ OSS を使った実践的なコーディングテクニックを紹介しています。
技書の森解説
Go で REST API を提供する Web アプリケーションを書くための知識に絞った解説書が、『詳解 Go 言語 Web アプリケーション開発』 (清水 陽一郎 著、シーアンドアール研究所、2022 年刊) です。版元の紹介文は、本書は前半で Web アプリケーション開発の事前知識として Go の設計思想や知っていると便利な標準パッケージの機能を紹介し、後半で Go を用いた Web アプリケーションのコードをハンズオン形式で解説すると説明しています。目次は全 20 章で、版元が載せる序文の抜粋によると、第 1 章から第 12 章までが事前知識、第 13 章以降がハンズオンにあたります。版元の著者紹介では、著者は精密機器メーカー子会社、クラウド会計サービスの会社を経て 2019 年より BASE 株式会社に勤務と紹介されています。
前半 12 章で固める Go の設計思想と標準パッケージ
前半は第 1 章「Go のコーディングで意識しておきたいこと」に始まり、context パッケージ (第 2 章)、database/sql パッケージ (第 3 章)、可視性 (第 4 章)、Go Modules (第 5 章)、オブジェクト指向プログラミングとの関係 (第 6 章)、インターフェース (第 7 章)、エラーハンドリング (第 8 章)、無名関数とクロージャ (第 9 章)、環境変数の扱い方 (第 10 章)、依存性の注入 (第 11 章)、ミドルウェアパターン (第 12 章) と続きます。序文の抜粋は、この前半で、他のプログラミング言語の経験がある人や、他の言語向けに書かれたオブジェクト指向の書籍を Go に適用しようとした人が疑問に持ちやすい Go の機能や、知っているだけでコードがよりシンプルに書ける技法を紹介するとしています。
Go はクラスと継承を持たず、構造体の埋め込みと、必要なメソッドをそろえれば宣言なしで満たせるインターフェースで部品を組み合わせる言語です。そのため、他の言語で身につけたクラス階層の設計をそのまま持ち込むと、抽象を増やしすぎたり、継承の関係を埋め込みで無理に再現したりする書き方になりがちです。エラーも例外として投げるのではなく関数の戻り値として返すのが Go の基本の作法で、呼び出し側が場面ごとに扱いを書く必要があります。こうした言語の流儀を先に押さえてから Web の実装へ進む順序が、本書の前半と後半の分け方です。版元の紹介文は、ベテランの Gopher が暗黙知として使っているイディオムの解説や、標準パッケージと主要なサードパーティの OSS を使った実践的なコーディングテクニックも本書の内容に挙げています。
後半 8 章のハンズオンで組む API サーバー
後半は第 13 章「ハンズオンの内容について」から第 20 章「Redis と JWT を用いた認証・認可機能の実装」までで、その間に HTTP サーバーの作成 (第 14 章)、開発環境の整備 (第 15 章)、疎結合な構成への変更 (第 16 章)、エンドポイントの追加 (第 17 章)、RDBMS を使ったデータの永続化処理 (第 18 章)、責務別の HTTP ハンドラーの分割 (第 19 章) が並びます。序文の抜粋は、テストコードを書き段階的な変更を繰り返しながら、業務の運用に耐えうる API サーバーを構築すると述べています。
REST API は、HTTP のメソッドと URL で表した資源への操作として機能を公開する設計の型で、クライアントとサーバーの取り決めを単純に保てる点が利点です。最初に動く形を作ってから部品の結び付きを緩めていく進め方は、データベースや外部のサービスをテストの中で差し替えられるようにするための土台になります。後から機能を足しても既存のテストで動作を確かめ続けられるため、小さく作って広げる開発の流れを手元で再現できます。
他の言語から Go の API 開発へ移る人に向く理由
版元の紹介文が示す本書の焦点は、Go で REST API の Web アプリケーションを開発するときに必要な知識で、Go の文法を一から学ぶ入門書としては紹介されていません。文法にまだ触れていない場合は、入門書で基本を押さえてから本書へ進むと、前半の言語の流儀の話を自分のコードと結び付けて読めます。2022 年刊の本なので、Go 本体やサードパーティのライブラリは刊行後も版が進んでいる前提で、手元の Go のバージョンと本書のコードの前提を見比べながら手を動かすのが確実です。他の言語で Web の開発経験があり、Go で API サーバーを書く仕事に移る人や、Go のコードを書いてはいるものの他の言語の設計の癖が抜けないと感じている人にとって、本書は、言語の流儀から認証の実装までを 1 冊で通して手を動かせる選択肢になります。
言及した記事 (3 件)
関連記事
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
OS / 低レイヤー本ガイド - コンピューターの仕組みを学ぶ技術書の選び方
OS、コンパイラー、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
JavaScript / TypeScript 本ガイド - 入門から型で守る実務コードまで
JavaScript と TypeScript を 1 本の学習ルートとして捉えた技術書の選び方。JavaScript の入門書、言語の背骨を通す体系書、TypeScript の型システムを設計の武器にする本、React/Next.js の実践書まで 2026 年 8 月時点の定番で案内します。
関連用語
PHP
Web 開発で広く使われるサーバーサイド言語。動的な Web ページ生成を得意とする
JSX
JavaScript 内に HTML ライクな構文を記述し、UI コンポーネントを宣言的に定義する React の拡張構文
React
コンポーネントベースの UI ライブラリで、宣言的な記法と仮想 DOM の差分計算で UI の更新を扱う
Web アプリケーション
ブラウザーを通じて利用するアプリケーション。インストール不要で幅広い端末で動く
Django
Python 製のフルスタック Web フレームワーク。必要な機能を一式備え高速開発を支える
iOS
Apple の iPhone / iPad 向けモバイル OS。ハードとソフトの統合と審査の厳格さが特徴