TECH PLAY

Go言語プログラミングエッセンス

3,520円 (税込)

楽天

Go言語プログラミングエッセンス

書籍情報

発売日:

著者/編集:mattn

出版社:技術評論社

発行形態:単行本

書籍説明

内容紹介

あなたのGoのコードを「一段階」レベルアップするテクニック集。

目次

第1章 プログラミング言語Goとは 1.1 Goの簡単な歴史 1.2 Goの立ち位置 1.3 Goが利用される場面  標準でUTF-8をサポート  マルチプラットフォーム  並行処理の扱いやすさ  ストリーム指向  シングルバイナリ 1.4 教育用途としてのGo 1.5 なぜGoが使われるのか  コンパイルの速さ  レビューのしやすさ  周辺ツールの充実  パッケージ公開の簡単さ  libc非依存  共同開発でのスキル差 1.6 まとめ 第2章 開発環境の準備3 2.1 Goコンパイラのインストール  [COLUMN]GOROOT? GOPATH? 2.2 開発環境のセットアップ  Visual Studio Code  Vim  Goland 2.3 まとめ 第3章 基本的な文法 3.1 プロジェクトフォルダ 3.2 Go言語の特徴 3.3 静的な型 3.4 基本的な構文  変数宣言  const(定数宣言)  iota(列挙)  命名規則  関数呼び出し  条件分岐  ループ  配列とスライス  文字列  map  type(型宣言)  struct(構造体)  メソッド  ポインタ  interface{}またはany  コンストラクタ  インターフェース  defer 3.5 goroutine(ゴルーチン)  channel(チャネル)  制御構文(select) 3.6 Goモジュールとは  go.modの配置  replace  go install 3.7 プロジェクトレイアウト 3.8 lint文化  go vet  revive  golangci-lint 3.9 go fmt 3.10 まとめ  [COLUMN]おまじない 第4章 基本テクニックとベストプラクティス 4.1 ビルトイン関数  printとprintln  panicとrecover  [COLUMN]Explicit is better than implicit, Simple is better than complex  init関数 4.2 パッケージ  fmtパッケージ  logパッケージ  encoding/jsonパッケージ  netパッケージ  timeパッケージ  pathパッケージとpath/filepathパッケージ  osパッケージ  ioパッケージ  contextパッケージ 4.3 build constraints  ファイル名による指定  +build(またはgo:build)コメントによる指定  [COLUMN]マルチプラットフォーム向けアプリケーションの開発テクニック 4.4 cgo  pkg-configを使って複雑なコンパイルオプションに対処 4.5 go:embed 4.6 Functional Options Pattern 4.7 Builder Pattern 4.8 internalパッケージ 4.9 Embedded struct 4.10 go run 4.11 まとめ 第5章 Webアプリケーションの開発に必要な要素 5.1 net/http  基本の使い方  ルーティング  [COLUMN]Method Value  ファイルのサーブ 5.2 html/template  struct  range/end  if/else/end  with/else/end  template.HTML  FuncMap  template.Parse  define/template 5.3 net/smtp 5.4 まとめ 第6章 速いプログラムのためのテクニック 6.1 並行と並列 6.2 goroutine 6.3 channel 6.4 非同期パターン  ジェネレータ  合流処理  先着処理  タイムアウト処理  停止処理  スロットリング(throttling) 6.5 まとめ 第7章 テストにおけるテクニック 7.1 テストの考え方 7.2 Goのテストの基本  Table Driven Tests  t.Skip/t.Skipf  setup/teardown  t.Short  t.Parallel  テストデータ  カバレッジ 7.3 便利なテクニック  テンポラリディレクトリ  環境変数 7.4 Fuzzingテスト 7.5 まとめ 第8章 ベンチマークにおけるテクニック 8.1 「推測するな、計測せよ」 8.2 ベンチマークの基本 8.3 ベンチマークの比較  改善の前と後の比較  異なる実装の比較 8.4 プロファイリング 8.5 まとめ 第9章 GoによるCLIアプリケーション開発 9.1 システムのコンセプト 9.2 データベース登録プログラム  [COLUMN]プログラムを作る手順  ZIPファイルのURL一覧を得る  ZIPファイルを展開する  データベースに登録する 9.3 データベース照会プログラム 9.4 テストの実装 9.5 CLI開発に役立つライブラリ 9.6 フラグライブラリ  flagパッケージ  urfave/cli  alecthomas/kingpin  spf13/cobra 9.7 端末制御ライブラリ  olekukonko/tablewriter  mattn/go-runewidth  jroimartin/gocui 9.8 まとめ 第10章 GoによるWebアプリケーション開発 10.1 システムのコンセプト 10.2 TODOアプリケーション  Webサーバ  リクエストハンドラ  テンプレート処理  静的ファイルのサーブ 10.3 リマインダメール送信 10.4 Goにおけるフレームワーク  Gin  Echo  Micro  Beego  フレームワークの選定について 10.5 まとめ 第11章 GitHubでの開発における勘所 11.1 ライブラリの仕様 11.2 プロジェクトの作成 11.3 パッケージ名 11.4 実装 11.5 バージョニング  [COLUMN]GitHubのワンポイントTips 11.6 テスト 11.7 ドキュメント  go docの使い方  godocの使い方  https://pkg.go.dev/で閲覧する 11.8 ディレクトリ構造 11.9 自動テスト 11.10 自動リリース 11.11 まとめ 第12章 データベースの扱い方 12.1 database/sql  サードパーティドライバ  Query/QueryRow  Exec  Prepare  Begin/Commit/Rollback 12.2 ent/ent  OpenAPI連携  entgen 12.3 ORMベンチマーク 12.4 まとめ 第13章 Goとクラウドサービス 13.1 Goがなぜ使われるのか 13.2 Google Cloud 13.3 AWS Lambda 13.4 Oracle Cloud  [COLUMN]バイナリサイズを小さくする 13.5 まとめ

著者情報

mattn

類似書籍