詳解 Go 言語 Web アプリケーション開発

ショウカイゴーゲンゴウェブアプリケーションカイハツ

詳解 Go 言語 Web アプリケーション開発の表紙
インターネット / WEB デザイン
著者:
清水 陽一郎(シミズ ヨウイチロウ)
出版社:
シーアンドアール研究所
出版日:
2022年07月22日頃
ISBN:
9784863543720
在庫:
在庫あり
5(1 件 / 楽天ブックス)

なぜ注目されているか

言及数
723位
総合858位 ↓ 2 ランクダウン 言及 4 件・うち記事 3 件を掲載

書籍紹介

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 件)

関連記事

関連用語

共有: