Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る

Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る

3,740円(本体 3,400円+税10%)

品種名
書籍
発売日
2017/3/17
ページ数
392
サイズ
B5変形判
著者
Sau Sheong Chang 著/武舎 広幸 訳/阿部 和也 訳/上西 昌弘 訳

Goプログラマーの実践力を上げる!

Go言語と標準ライブラリによるWebアプリの開発手法を解説。HTTPの仕組みから始め、リクエストやレスポンスのコーディング、テンプレート/DBの活用、テスト/デプロイへと進みます。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アプリ開発に最適な言語
第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

関連書籍

好評発売中

1週間でブロックチェーンの基礎が学べる本

1週間でブロックチェーン技術が説明できるようになる!

好評発売中

1週間でGoogle Apps Scriptの基礎が学べる本

1週間でGoogle Apps Scriptが使えるようになる!

好評発売中

生成AIと一緒に学ぶ Pythonふりがなプログラミング

AIが生成したコードをわかって使おう!

ダウンロード

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 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ファイルを作成してから実行してください。【モジュールパス】には、当面はディレクトリ名を指定すれば動作します。

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム