関連サイト
本書の関連ページが用意されています。
内容紹介
Goプログラマーの実践力を上げる! Go言語はシンプルで直接的です。net/http、html/templateなど標準ライブラリが提供され、Webアプリの開発に最適となっています。
本書では、Go言語と標準ライブラリによるWebアプリの開発手法を解説。HTTPの仕組みから始め、リクエストやレスポンスのコーディング、テンプレート/DBの活用、テスト/デプロイへと進みます。Go言語の拡張性/モジュール性/保守性/実行効率を発揮させるべく、本書により開発の実践力を培ってください。
――※本書は『Go Web Programming』の翻訳書です。
※Go言語に関する基本的な知識を前提としています。
※サンプルコードは訳者のサポートページ(http://marlin-arms.com/support/goweb)からダウンロードできます。
書誌情報
- 著者: Sau Sheong Chang(著), 武舎広幸, 阿部和也, 上西昌弘(訳)
- ページ数: 392ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
プログラミング経験者。Go言語の基本的な知識を持ち、さらに学ぼうとしている技術者・学生。
著者について
Sau Sheong Chang
シンガポールパワー社のデジタルテクノロジー担当取締役。前職はPayPalのコンシューマーエンジニアリング部門のディレクター。RubyおよびGoの開発者コミュニティにおいて積極的な活動を行っており、書籍の執筆やオープンソースプロジェクトへの貢献、カンファレンスなどでの講演も行っている。
武舎広幸
マーリンアームズ株式会社代表取締役。機械翻訳など言語処理ソフトウェアの開発と人間翻訳に従事。国際基督教大学の語学科に入学するも、理学科(数学専攻)に転科。山梨大学大学院修士課程に進学し、ソフトウェア工学を専攻。修了後、東京工業大学大学院博士課程に入学。米国オハイオ州立大学大学院、カーネギーメロン大学機械翻訳センター(客員研究員)に留学後、満期退学し、マーリンアームズ株式会社を設立。
阿部和也
1973年頃よりFORTRAN、1980年頃よりBASICでプログラミングを始める。COBOL、PL/I、Cを経て、1988年頃よりMacintoshでCプログラミングを開始し、1990年にビットマップフォントエディタ「丸漢エディター」を発表。その後、C++によるMacOS 9用ビットマップフォントエディタの開発にも従事した。現在はPerl、PHP、JavaScriptにより病院情報システムの機能拡張に取り組んでいる。
上西昌弘
学生時代から講義や趣味でプログラミングに親しむ。製造業の情報部門で3D CGおよびAI技術をベースにした開発業務に長年従事した。コンピュータ関係を中心とした書籍の翻訳に参加するとともに、産業翻訳に携わっている。訳書に『日本海軍空母vs米海軍空母太平洋1942(オスプレイ"対決"シリーズ)』(大日本印刷)などがある。
目次
はじめに
本書について/ロードマップ
コードの表記とダウンロード
著者/訳者紹介
目次
第1部 Go言語とWebアプリケーションの親和性
第1章 Go言語はWebアプリ開発に最適な言語
- 1.1 Webアプリケーション開発用言語としてのGo
- 1.2 Webアプリケーションの動作
- 1.3 HTTP入門
- 1.4 Webアプリケーションの誕生
- 1.5 HTTPリクエスト
- 1.6 HTTPレスポンス
- 1.7 URI
- 1.8 HTTP/2の導入
- 1.9 Webアプリの構成
- 1.10 Hello Go
- 1.11 まとめ
第2章 Goプログラム「ChitChat」――典型的なGo Webアプリのデザイン
- 2.1 ChitChatでちょっとチャット
- 2.2 アプリケーションのデザイン
- 2.3 データモデル
- 2.4 リクエストの受信と処理
- 2.5 テンプレートを用いたHTMLレスポンスの生成
- 2.6 PostgreSQLのインストール
- 2.7 データベースとのインタフェース
- 2.8 サーバの起動
- 2.9 終わりに
- 2.10 まとめ
第2部 Webアプリ開発の基本テクニック
第3章 net/httpライブラリを使ったリクエストの受け付け
- 3.1 Go言語のnet/httpライブラリ
- 3.2 Go言語によるサーバ
- 3.3 ハンドラとハンドラ関数
- 3.4 HTTP/2の使用
- 3.5 まとめ
第4章 リクエストのデータ構造とその処理
- 4.1 リクエストとレスポンス
- 4.2 HTMLフォームとGo言語
- 4.3 ResponseWriter
- 4.4 クッキー
- 4.5 まとめ
第5章 テンプレートエンジンを使ったコンテンツの表示
- 5.1 テンプレートとテンプレートエンジン
- 5.2 Goのテンプレートエンジン
- 5.3 アクション
- 5.4 引数、変数、パイプライン
- 5.5 関数
- 5.6 コンテキスト依存処理
- 5.7 テンプレートの入れ子
- 5.8 ブロックアクションによるデフォルトテンプレートの定義
- 5.9 まとめ
第6章 データの記憶――構造体、ファイル、データベース
- 6.1 メモリ内での保持
- 6.2 ファイルによる保存
- 6.3 Go言語とSQL
- 6.4 Go言語とSQLによる関係(リレーション)
- 6.5 Go言語のリレーショナルマッパー
- 6.6 まとめ
第3部 リアルな開発への準備
第7章 GoによるWebサービスの作成――XMLおよびJSONの生成と解析
- 7.1 Webサービス入門
- 7.2 SOAPベースのWebサービスの基本
- 7.3 RESTベースのWebサービスの基本
- 7.4 Go言語によるXMLの解析と生成
- 7.5 Go言語によるJSONの解析と生成
- 7.6 Go Webサービスの作成
- 7.7 まとめ
第8章 テスト用ライブラリを使ったアプリケーションのテスト
- 8.1 Goとテスト
- 8.2 Goによるユニットテスト
- 8.3 GoによるHTTPのテスト
- 8.4 テストダブルと依存性の注入
- 8.5 サードパーティ製のテスト用Goライブラリ
- 8.6 まとめ
第9章 ゴルーチンとチャネルを使った並行処理
- 9.1 並行性(Concurrency)と並列性(Parallelism)
- 9.2 ゴルーチン
- 9.3 チャネル
- 9.4 Webアプリケーションと並行実行
- 9.5 まとめ
第10章 Go Webアプリのデプロイ――Heroku、GAE、Docker
- 10.1 サーバへのデプロイ
- 10.2 Herokuへのデプロイ
- 10.3 Google App Engineへのデプロイ
- 10.4 Dockerへのデプロイ
- 10.5 デプロイ方法の比較
- 10.6 まとめ