現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト(インプレス) [電子書籍]
    • 現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト(インプレス) [電子書籍]

    • ¥4,510902 ゴールドポイント(20%還元)
    • ただいま予約受付中!2026年09月09日00:00:00からお読みいただけます

現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト(インプレス) [電子書籍]

Inanc Gumus(著)柴田芳樹(著者)
価格:¥4,510(税込)
ゴールドポイント:902 ゴールドポイント(20%還元)(¥902相当)
フォーマット:
専用電子書籍リーダーアプリ「Doly」が必要です。無料ダウンロード
お届け日:ただいま予約受付中!
出版社:インプレス
公開日時:2026年09月09日00:00:00からお読みいただけます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト(インプレス) の 商品概要

  • 保守やテストを容易にする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章 Goの特徴と本書の目標/1.1 本書を読むべき理由
    1.2 なぜGoなのか
    1.3 Hello,gophers!
    1.4 並行処理
    1.5 型システム
    1.6 標準ライブラリ
    1.7 ツール群
    1.8 次章に向けて
    1.9 ソースコードとGoモジュール
    第2章 イディオムとテスト
    2.1 基礎
    2.2 イディオム
    2.3 テスト
    2.4 テーブル駆動テスト
    2.5 サブテスト
    2.6 Exampleテスト
    2.7 他のテスト用ツール
    第3章 テストカバレッジと最適化/3.1 テストカバレッジ
    3.2 ベンチマークと最適化
    3.3 コンパイラ最適化
    3.4 並列テスト
    3.5 練習問題
    第4章 コマンドラインインタフェース
    4.1 基盤作り
    4.2 フラグの解析
    4.3 flagパッケージ
    4.4 値パーサー
    4.5 位置引数
    4.6 検証
    4.7 練習問題
    第5章 依存性注入
    5.1 テスト容易性に対する課題
    5.2 テストしやすいプログラム
    5.3 分離
    5.4 CLIのテスト
    5.5 単体テスト
    第6章 並行処理のための同期API
    6.1 概要
    6.2 基盤
    6.3 イテレータ
    6.4 Options
    6.5 統合
    6.6 並行パイプラインパターン
    6.7 プロデューサステージ
    6.8 スロットラステージ
    6.9 ディスパッチャステージ
    6.10 練習問題
    第7章 応答性と効率の高いプログラム/7.1 並行パイプラインの再訪
    7.2 キャンセルの伝播
    7.3 HTTPと効率的なI/O操作
    7.4 最適化
    7.5 テスト
    7.6 HTTPテスト
    7.7 練習問題
    第8章 パッケージとサービスの構成
    8.1 パッケージの構成
    8.2 中核のロジック
    8.3 HTTP
    8.4 HTTPハンドラ
    8.5 ルーティング
    8.6 タイムアウト
    8.7 テスト
    8.8 シンプルさ
    8.9 練習問題
    第9章 コンポジションパターン
    9.1 ミドルウェアパターン
    9.2 レスポンスのログ記録
    9.3 インターセプタパターン
    9.4 オプショナル・インタフェース・パターン
    9.5 コンテキスト値の伝播パターン
    9.6 ハンドラ連鎖パターン
    9.7 エンコードとデコード
    9.8 包み込みと取り出し
    9.9 振り返り
    9.10 練習問題
    第10章 ポリモーフィックなストレージ
    10.1 SQLデータベースとのやり取り
    10.2 データベースを基盤とするサービス
    10.3 driver.Valuerインタフェースとsql.Scannerインタフェース
    10.4 暗黙的なインタフェース
    10.5 練習問題
    付録A モジュールとパッケージ/A.1 パッケージ
    A.1.1 例
    A.2 mainパッケージ/A.3 モジュール
    A.4 ビルドと実行/A.5 練習問題
    付録B 変数とポインタ/B.1 変数
    B.2 ポインタ
    B.2.1 ポインタとは何か/B.2.2 nilポインタと型安全性
    B.2.3 アドレス演算子
    B.2.4 値渡しの仕組み
    B.2.5 スタックとヒープメモリ/B.3 練習問題
    付録C 配列、スライス、マップ/C.1 配列
    C.1.1 配列操作
    C.1.2 配列の受け渡し
    C.1.3 ポインタの受け渡し
    C.1.4 練習問題/C.2 スライス/C.2.1 使い方
    C.2.2 基底配列
    C.2.3 スライスの受け渡し
    C.2.4 スライス式と容量
    C.2.5 要素の追加
    C.2.6 make()関数でスライスを作成
    C.2.7 文字列とバイトスライス/C.2.8 エイリアスの影響
    C.2.9 スライスのコピー
    C.2.10 練習問題/C.3 マップ
    C.3.1 練習問題
    付録D オブジェクト指向プログラミング/D.1 構造体
    D.1.1 新たな型の宣言
    D.1.2 新たな値の作成/D.1.3 無名型
    D.1.4 名前付き型
    D.2 メソッドとレシーバ
    D.2.1 レシーバの型
    D.2.2 値レシーバ
    D.2.3 ポインタレシーバ
    D.2.4 レシーバ型混在の回避
    D.2.5 レシーバ型の選択/D.2.6 練習問題
    D.3 暗黙的なインタフェース/D.3.1 具象型からの開始
    D.3.2 インタフェースの発見
    D.3.3 つなぎ合わせ
    D.3.4 インタフェースの活用
    D.3.5 インタフェース値とメソッドの集まり
    D.3.6 練習問題/D.4 ジェネリクス
    付録E 並行処理プログラミング/E.1 ゴルーチン
    E.1.1 逐次実行
    E.1.2 並行実行
    E.2 WaitGroupの活用
    E.2.1 syncx.SafeGroupの活用
    E.2.2 練習問題/E.3 バッファなしチャネル
    E.3.1 使い方/E.3.2 同期
    E.3.3 パターン:送信と受信
    E.4 チャネルのクローズ
    E.4.1 パターン:for-range
    E.4.2 パターン:クローズ通知による同期
    E.5 select文の活用/E.5.1 複数チャネルの待機
    E.5.2 パターン:待機しない操作
    E.6 バッファありチャネル
    E.6.1 パターン:タイムアウト
    E.6.2 方向付きチャネル
    E.6.3 パターン:並行実行数の制限
    E.7 練習問題
    付録F 自己参照オプション/F.1 構造体オプション/F.1.1 ゼロ値のあいまいさ
    F.1.2 ゼロ値オプション/F.2 オプション関数/F.2.1 SendNWith()関数
    F.2.2 関数としてのオプション
    F.2.3 オプションの適用
    F.2.4 まとめ
    付録G Goプログラムのクロスコンパイル
    訳者あとがき
    索引
    訳者紹介・レビュアー・STAFF LIST
    奥付

現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト(インプレス) の商品スペック

発行年月日 2026/09/09
Cコード 3055
出版社名 インプレス
本文検索
他のインプレスの電子書籍を探す
紙の本のISBN-13 9784295025733
ファイルサイズ 424.2MB
著者名 Inanc Gumus
柴田芳樹
著述名
著者

    インプレス 現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト(インプレス) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!