現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト
発売日: 2026/9/9
想定ページ数: 464ページ
ISBN: 9784295025733
全文検索: 非対応
★★★★★
★★★★★
0件
-
-
-
-
※本書はEPUB(固定レイアウト型)で作成されております。検索機能や文字列のコピーがご利用できません。
保守やテストを容易にするGoの手法を学ぶ!
複雑な抽象化を捨て去り、
単純で堅牢なGoプログラムを構築できる!
なじみのある他言語のクセから脱却
本書では、過度な抽象化を避け、保守やテストが容易になる慣用的(イディオム的)なGoコードの書き方を実践的に学ぶことができます。CLIツールやHTTPクライアント・サーバーの構築など、現実的なプロジェクトをサンプルとして取り上げます。
主な対象読者は、他言語を習得済みのプログラマーやGo言語への深い理解を求めるプログラマーですが、巻末の付録ではGo言語の基礎から並行処理までを解説しており、基本事項の速習&復習コースとして利用できます。
本書ではまず、Goの基本原則とイディオムを押さえつつ、実践的なテスト技法や最適化、CLIツールの構築方法を解説。続いて、依存性注入によるテスト容易性の向上、並行パイプラインを用いた同期APIの設計、HTTP処理の効率化へとステップアップします。終盤にかけては、パッケージとサービスの構成、ミドルウェアなどのコンポジションパターン、多態的なストレージ実装を明らかにしていきます。
本書は、基礎の確認から、段階的に高度な実践へと進むことで、単なる構文の習得にとどまらず、現場で真に役立つ「Goらしい」思考法と確かな設計力が自然と身につく一冊となっています。
※本書は、『Go by Example: Programmer's guide to idiomatic and testable code』(Manning Publications)の翻訳書です。
■本書の構成
第1章 Goの特徴と本書の目標
第2章 イディオムとテスト
第3章 テストカバレッジと最適化
第4章 コマンドラインインタフェース
第5章 依存性注入
第6章 並行処理のための同期API
第7章 応答性と効率の高いプログラム
第8章 パッケージとサービスの構成
第9章 コンポジションパターン
第10章 ポリモーフィックなストレージ
付録A モジュールとパッケージ
付録B 変数とポインタ
付録C 配列、スライス、マップ
付録D オブジェクト指向プログラミング
付録E 並行処理プログラミング
付録F 自己参照オプション
付録G Goプログラムのクロスコンパイル
目次プレビュー
- サンプルコード・正誤表・免責など
- 2つの道:複雑さと単純さ
- 献辞
-
1.2 なぜGoなのか
-
1.3 Hello,gophers!
-
1.4 並行処理
-
1.5 型システム
-
1.6 標準ライブラリ
-
1.7 ツール群
-
1.8 次章に向けて
-
1.9 ソースコードとGoモジュール
-
2.1 基礎
-
2.2 イディオム
-
2.3 テスト
-
2.4 テーブル駆動テスト
-
2.5 サブテスト
-
2.6 Exampleテスト
-
2.7 他のテスト用ツール
-
3.2 ベンチマークと最適化
-
3.3 コンパイラ最適化
-
3.4 並列テスト
-
3.5 練習問題
-
4.1 基盤作り
-
4.2 フラグの解析
-
4.3 flagパッケージ
-
4.4 値パーサー
-
4.5 位置引数
-
4.6 検証
-
4.7 練習問題
-
5.1 テスト容易性に対する課題
-
5.2 テストしやすいプログラム
-
5.3 分離
-
5.4 CLIのテスト
-
5.5 単体テスト
-
6.1 概要
-
6.2 基盤
-
6.3 イテレータ
-
6.4 Options
-
6.5 統合
-
6.6 並行パイプラインパターン
-
6.7 プロデューサステージ
-
6.8 スロットラステージ
-
6.9 ディスパッチャステージ
-
6.10 練習問題
-
7.2 キャンセルの伝播
-
7.3 HTTPと効率的なI/O操作
-
7.4 最適化
-
7.5 テスト
-
7.6 HTTPテスト
-
7.7 練習問題
-
8.1 パッケージの構成
-
8.2 中核のロジック
-
8.3 HTTP
-
8.4 HTTPハンドラ
-
8.5 ルーティング
-
8.6 タイムアウト
-
8.7 テスト
-
8.8 シンプルさ
-
8.9 練習問題
-
9.1 ミドルウェアパターン
-
9.2 レスポンスのログ記録
-
9.3 インターセプタパターン
-
9.4 オプショナル・インタフェース・パターン
-
9.5 コンテキスト値の伝播パターン
-
9.6 ハンドラ連鎖パターン
-
9.7 エンコードとデコード
-
9.8 包み込みと取り出し
-
9.9 振り返り
-
9.10 練習問題
-
A.1.1 例
-
A.2 mainパッケージ/A.3 モジュール
-
A.4 ビルドと実行/A.5 練習問題