- トップページ
- プログラミング
- プログラミング入門書
- Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
3,740円(本体 3,400円+税10%)
- 品種名
- 書籍
- 発売日
- 2017/3/17
- ページ数
- 392
- サイズ
- B5変形判
- 著者
- Sau Sheong Chang 著/武舎 広幸 訳/阿部 和也 訳/上西 昌弘 訳
Goプログラマーの実践力を上げる!
Go言語と標準ライブラリによるWebアプリの開発手法を解説。HTTPの仕組みから始め、リクエストやレスポンスのコーディング、テンプレート/DBの活用、テスト/デプロイへと進みます。Go言語の拡張性/モジュール性/保守性/実行効率を発揮させるための実践力を培ってください。
- 紙の本を買う
-
「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。
書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。
学校・法人一括購入に関するお問い合わせはこちらへ。
詳細
著者プロフィール
RubyおよびGoの開発者コミュニティにおいて積極的な活動を行っており、書籍の執筆やオープンソースプロジェクトへの貢献、カンファレンスなどでの講演も行っている。
訳者プロフィール
国際基督教大学の語学科に入学するも、理学科(数学専攻)に転科。山梨大学大学院修士課程に進学し、ソフトウェア工学を専攻。修了後、東京工業大学大学院博士課程に入学。米国オハイオ州立大学大学院、カーネギーメロン大学機械翻訳センター(客員研究員)に留学後、満期退学し、マーリンアームズ株式会社を設立。
目次
【第1部 Go言語とWebアプリケーションの親和性】
第1章 Go言語はWebアプリ開発に最適な言語
第2章 Goプログラム「ChitChat」――典型的なGo Webアプリのデザイン
【第2部 Webアプリ開発の基本テクニック】
第3章 net/httpライブラリを使ったリクエストの受け付け
第4章 リクエストのデータ構造とその処理
第5章 テンプレートエンジンを使ったコンテンツの表示
第6章 データの記憶――構造体、ファイル、データベース
【第3部 リアルな開発への準備】
第7章 GoによるWebサービスの作成――XMLおよびJSONの生成と解析
第8章 テスト用ライブラリを使ったアプリケーションのテスト
第9章 ゴルーチンとチャネルを使った並行処理
第10章 Go Webアプリのデプロイ――Heroku、GAE、Docker
関連書籍
ダウンロード
-
サンプルコードは、下記URLの訳者サイトからダウンロード可能です。
お詫びと訂正
誤記のためにご迷惑をおかけし、誠に申し訳ございません。
- 0ページ buildやテストの箇所
- [誤]
― - [正]
この本の出版後(2021年以降)、Goのバージョンアップに伴い「モジュール」が使われるようになりました。このため、例題のbuildやテストができない場合があります。
基本的には、プロジェクトのディレクトリ内で、次の2つのコマンドを実行することでモジュールに対応でき、buildできるようになるはずです(go mod tidyを実行することで、必要なサードパーティのパッケージもダウンロードされます)。
$ go mod init 【モジュールパス】
$ go mod tidy
【モジュールパス】には、当面ディレクトリ名を指定しておけばほとんどの例で動作すると思いますが、モジュールをインポートしている場合は、そのモジュールを公開するレポジトリへのパスを指定してください。具体的には、たとえば下記の53ページや251ページの内容のように変更してください。
- [誤]
- 14ページ 表1.1の1列目、下から2行目
- [誤]
Referrer - [正]
Referer - 【 第2刷にて修正 】
- [誤]
- 22ページ 下から4行目以降。リスト1.3の下の5行目にあるコマンドと、その直前の説明。
- [誤]
...次のコマンドを実行してください。
$ go install first_webapp
- [正]
...次の2つのコマンドを実行してください。
$ go mod init first_webapp
$ go build first_webapp
-
備考:
Goのバージョンアップにより「モジュール」が使われるようになったためです。
- 【 第4刷にて修正 】
- [誤]
- 38ページ リスト2.6の12行目以降。「private_tmpl_files」と「public_tmpl_files」を入れ替え。
- [誤]
……
templates = template.Must(template.ParseFiles(private_tmpl_files...))
……
templates = template.Must(template.ParseFiles(public_tmpl_files...))
……
- [正]
……
templates = template.Must(template.ParseFiles(public_tmpl_files...))
……
templates = template.Must(template.ParseFiles(private_tmpl_files...))
……
- 【 第2刷にて修正 】
- [誤]
- 53ページ go buildの前
- [誤]
― - [正]
go buildの前に次の2つのコマンドを実行してください。
$ go mod init github.com/mushahiroyuki/gowebprog/ch02/chitchat
$ go mod tidy
$ go build
- [誤]
- 141ページ 「5.5 関数」直後の本文の2番目の文
- [誤]
Goのテンプレートエンジンには、fmt.Sprintファミリーの別名など、かなり基本的な組み込み関数一式が用意されています(一覧については、パッケージfmtのドキュメントを参照)。 - [正]
Goのテンプレートエンジンには、かなり基本的な組み込み関数一式が用意されていますが、上で見たprintfのようなfmt.Sprintファミリーの別名も含まれています(一覧はパッケージfmtのドキュメントを参照)。 - 【 第4刷にて修正 】
- [誤]
- 143ページ リスト5.15の下から3行目
- [誤]
<div>日付は{{ . | fdate . }}です</div> - [正]
<div>日付は{{ . | fdate }}です</div> - 【 第2刷にて修正 】
- [誤]
- 176ページ リスト6.6の下から5行目(176ページのコード1行目)
- [誤]
posts, _ := Posts() - [正]
posts, _ := Posts(10) - 【 第2刷にて修正 】
- [誤]
- 186ページ リスト6.14のGetPost関数の約6行目
- [誤]
rows, err := Db.Query("select id, content, author from comments") - [正]
rows, err := Db.Query("select id, content, author from comments where post_id = $1", id) - 【 第2刷にて修正 】
- [誤]
- 229ページ 図7.8のキャプション
- [誤]
GoによるXMLの解析 - [正]
GoによるJSONの解析 - 【 第2刷にて修正 】
- [誤]
- 232ページ 図7.10右端の矩形内部のテキスト
- [誤]
エンコーダを使い構造体をXMLファイルにエンコード - [正]
エンコーダを使い構造体をJSONファイルにエンコード - 【 第2刷にて修正 】
- [誤]
- 241ページ リスト7.17の①の説明
- [誤]
①リクエストを正しい関数に振り分けるためのハンドラ関数 - [正]
①データベースから構造体Post内にデータを取得 - 【 第4刷にて修正 】
- [誤]
- 251ページ 下から2行目。脚注を追加
- [誤]
― - [正]
「実行してください。」を「実行してください※。」に変更し、次の脚注を追加
※ テストをする際に、同じディレクトリにgo.modファイルがない場合は、「go mod init 【モジュールパス】」で、go.modファイルを作成してから実行してください。【モジュールパス】には、当面はディレクトリ名を指定すれば動作します。
- [誤]
お問い合わせ
書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。