エキスパートたちのGo言語―一流のコードから応用力を学ぶ(Software Design plusシリーズ) [単行本]
    • エキスパートたちのGo言語―一流のコードから応用力を学ぶ(Software Design plusシリーズ) [単行本]

    • ¥3,27899ポイント(3%還元)
    • 在庫あり2022年5月18日水曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003505433

エキスパートたちのGo言語―一流のコードから応用力を学ぶ(Software Design plusシリーズ) [単行本]

価格:¥3,278(税込)
ポイント:99ポイント(3%還元)(¥99相当)
フォーマット:
専用電子書籍リーダアプリ「Doly」が必要です。無料ダウンロード
お届け日:在庫あり今すぐのご注文で、2022年5月18日水曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:技術評論社
販売開始日: 2022/01/06
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可
店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

エキスパートたちのGo言語―一流のコードから応用力を学ぶ(Software Design plusシリーズ) の 商品概要

  • 要旨(「BOOK」データベースより)

    入門書で得られないノウハウはコードにある!定石のコードの書き方。ライブラリを使いこなす術。有効な開発手法。
  • 目次

    序章 プロダクト開発の前に習得しておきたい6機能
     0.1 基本の型とインタフェース
      0.1.1 Goにおける型
      0.1.2 スライスの操作
      0.1.3 マップの操作
      0.1.4 構造体の設計
      0.1.5 メソッドの呼び出し
      0.1.6 インタフェースの基礎
      0.1.7 インタフェースの設計
      0.1.8 型情報を利用した処理
     0.2 入出力
      0.2.1 入出力とioパッケージ
      0.2.2 io/fsパッケージ
     0.3 ゴルーチンとチャネル
      0.3.1 Goの並行処理における哲学
      0.3.2 ゴルーチン
      0.3.3 チャネル
      0.3.4 チャネルパターン
      0.3.5 シンプルに並行処理を記述する
      0.3.6 並行性の問題を検出する
     0.4 コンテキスト
      0.4.1 コンテキストとは
      0.4.2 なぜcontextパッケージが必要なのか
      0.4.3 contextパッケージの基本
      0.4.4 contextパッケージの使い方
     0.5 ポインタ
      0.5.1 Goにポインタはなぜ必要なのか
      0.5.2 ポインタと実体の使い分け
      0.5.3 unsafe.Pointerの世界
     0.6 エラーハンドリング
      0.6.1 エラーの基礎
      0.6.2 エラーのラッピング
      0.6.3 実践的なエラーハンドリング
      0.6.4 まとめ

    第1章 Goエキスパートたちの実装例1 CLIツール、ライブラリ
     1.1 コードの複雑さを計測するコードチェックツール
      1.1.1 Goのコードを静的解析する
      1.1.2 コードの複雑さを計測する方法
      1.1.3 GoでGoのソースコードを扱う
      1.1.4 循環複雑度を調べる機能を作る
      1.1.5 静的解析ツールを作成し実行する
      1.1.6 まとめ
     1.2 依存関係のある処理を並行して実行できるタスクランナー
      1.2.1 タスクランナーを作成する
      1.2.2 Goでコマンドラインツールを作る理由
      1.2.3 タスクランナー「ran」
      1.2.4 ranの実装
      1.2.5 まとめ
     1.3 インターネット回線のスピードテスト
      1.3.1 スピードテストサービスを作る
      1.3.2 スピードテストサービスのしくみ
      1.3.3 アプリケーションの実装
      1.3.4 CLIの実装
      1.3.5 まとめ
     1.4 インタラクティブなgRPCクライアント
      1.4.1 gRPCクライアント「Evans」
      1.4.2 gRPCとProtocol Buffers
      1.4.3 CLIツール作成に役立つOSS
      1.4.4 アプリケーションの実装
      1.4.5 E2Eテスト
      1.4.6 アプリケーションの配布
      1.4.7 まとめ
     1.5 複数のアルゴリズムに対応したチェックディジットライブラリ
      1.5.1 身近なしくみを発見する
      1.5.2 チェックディジットとは
      1.5.3 利用する側に寄り添う
      1.5.4 さまざまなチェックディジットの生成方法
      1.5.5 Exampleテストを用いたドキュメンテーション
      1.5.6 CLIを実装し利用するハードルを下げる
      1.5.7 まとめ
     1.6 Kubernetesなどの設定ファイルのテストツール
      1.6.1 インフラの設定ファイルのテストツールを作る
      1.6.2 HashiCorp SentinelとPolicy as Code
      1.6.3 steinの紹介
      1.6.4 steinの実装
      1.6.5 まとめ
     1.7 Cloud Spanner用データベーススキーマ管理ツール
      1.7.1 Cloud Spannerの利点と難点
      1.7.2 DBスキーマ管理ツール「Wrench」
      1.7.3 Bazelを用いたビルド
      1.7.4 まとめ
     1.8 ビットコインメッセージの変換関数の生成
      1.8.1 コードの自動生成
      1.8.2 ビットコイン(Bitcoin)とは
      1.8.3 Bitcoinのプロトコルの特徴
      1.8.4 実装
      1.8.5 まとめ
     1.9 条件を柔軟に変えられるリトライライブラリ
      1.9.1 リトライの意義
      1.9.2 リトライとは
      1.9.3 うまくリトライするためのポイントと実装
      1.9.4 まとめ

    第2章 Goエキスパートたちの実装例2 API連携、他機能連携
     2.1 Nature Remoによる家電の操作
      2.1.1 Nature Remoを使って家電を操作する
      2.1.2 コマンドラインツールから家電を操作する
      2.1.3 LINEでエアコンを予約する
      2.1.4 まとめ
     2.2 Raspberry PiによるCO2、温湿度、気圧のモニタリング
      2.2.1 センサーを使ったIoTデバイスを作成する
      2.2.2 センサーからデータを読み取る
      2.2.3 サーバとWorkerの作成
      2.2.4 まとめ
     2.3 KubernetesのJob実行ツール
      2.3.1 Kubernetesを用いた開発の現状と課題
      2.3.2 GoアプリケーションのJob実行ツール「jctl」
      2.3.3 Kubernetesのクライアント
      2.3.4 GitHub Actionsとkindを利用したE2Eテスト
      2.3.5 まとめ

    第3章 Goエキスパートたちの実装例3 ソフトウェアやWebサービスの拡張機能
     3.1 Goによるプラグイン機能の実装
      3.1.1 プラグインとは
      3.1.2 Goでプラグイン機能を実装する方法
      3.1.3 動的ライブラリとしてプラグインを作成する
      3.1.4 別のバイナリとしてプラグインを作成してRPC経由で利用する
      3.1.5 pluginパッケージを利用したscenarigoの実装
      3.1.6 まとめ
     3.2 GitHub Actionsによる自動化
      3.2.1 GitHub Actionsとは
      3.2.2 GitHub Actionsの使い方
      3.2.3 GitHub Actionsの作り方
      3.2.4 Actionの実装
      3.2.5 ユニットテスト
      3.2.6 Dockerfileの作成
      3.2.7 インテグレーションテスト
      3.2.8 Actionの公開
      3.2.9 まとめ
     3.3 Kubernetes Custom Controllerで作るCloud Spannerオートスケーラ
      3.3.1 Cloud Spannerオートスケーラ開発の経緯
      3.3.2 Kubernetes Custom Controller
      3.3.3 spanner-autoscaler
      3.3.4 まとめ
     3.4 Envoy Control Plane Kubernetes Controller
      3.4.1 クラスタ上のEnvoyを管理するためのxDS APIサーバ
      3.4.2 Goを用いたControl Planeの実装
      3.4.3 Kubernetes Custom Controllerのための開発環境
      3.4.4 まとめ
     3.5 Custom Terraform Providerによるプロビジョニングの自動化
      3.5.1 Terraformで公式対応されていないリソースを管理するには
      3.5.2 Terraform Providerとは
      3.5.3 Custom Terraform Providerの作り方
      3.5.4 Terraform Registryに公開
      3.5.5 まとめ

    第4章 Goエキスパートたちの実装例4 Goの活用の幅を広げる技術
     4.1 高度なテキスト変換
      4.1.1 簡単なテキスト変換
      4.1.2 文字コードや半角・全角の変換
      4.1.3 Unicodeとコードポイントごとの変換
      4.1.4 transform.Transformerインタフェースの実装
      4.1.5 まとめ
     4.2 WebAssemblyを使ってブラウザ上でGoを動かす
      4.2.1 Goの世界を大きく広げるWebAssembly
      4.2.2 WebAssemblyとは
      4.2.3 Goのコードをブラウザ上で動かす
      4.2.4 syscall/jsを使う
      4.2.5 GoのパッケージをJavaScriptから使えるようにする
      4.2.6 まとめ
     4.3 cgoでGoからC言語のライブラリを使う
      4.3.1 Goの可能性を広げるcgo
      4.3.2 FFIとcgo
      4.3.3 cgoの使い方
      4.3.4 GoからCの関数を呼び出す方法
      4.3.5 CからGoの関数を呼び出す方法
      4.3.6 構造体のバインディング
      4.3.7 cgoを使って開発したライブラリ例
      4.3.8 まとめ

    第5章 Goエキスパートたちの実装例5 実験・検証
     5.1 Mutual-TLS Certificate-Bound Access Tokens
      5.1.1 アクセストークンとは
      5.1.2 JWT、Mutual TLS、OAuth
      5.1.3 Mutual TLS Certificate-Bound Access Tokens
      5.1.4 Goにおける実装
      5.1.5 まとめ
     5.2 簡易な空間検索
      5.2.1 はじめに
      5.2.2 ナイーブなアプローチ
      5.2.3 4分木
      5.2.4 木の特徴
      5.2.5 点に経路を割り当てる
      5.2.6 検索に用いる
      5.2.7 より多次元への拡張
      5.2.8 まとめ
  • 内容紹介

    本書は、中級以上のGoプログラマーがツール開発・プロダクト開発で必要とされるプログラミングテクニックおよび周辺知識を学ぶための実践集です。
    Goはコマンドラインツール、Webサービス開発、ソフトウェアやクラウドサービスの拡張機能開発、IoTなど利用範囲の広いプログラミング言語です。これらの用途でGoを使うには、基本的な文法だけでなく、Goの特徴を活かした定石のコードの書き方、ライブラリの知識、テストなどの開発手法、Go以外の周辺知識などの理解も必要です。文法解説が主の入門書では、これらを学ぶことは難しいです。そこで本書では、現役のGoプログラマーが実務や趣味で開発したオープンソースソフトウェア(OSS)を紹介します。その開発の過程で書かれたコード、参照された資料、使われた開発手法を解説しつつ、より詳しく学ぶための参考資料を提示します。入門レベルを脱して、自ら応用力を身につけるための取っ掛かりとなる情報を提供します。

エキスパートたちのGo言語―一流のコードから応用力を学ぶ(Software Design plusシリーズ) の商品スペック

商品仕様
出版社名:技術評論社
著者名:上田 拓也(著)/青木 太郎(著)/石山 将来(著)/伊藤 雄貴(著)/生沼 一公(著)/鎌田 健史(著)/上川 慶(著)/狩野 達也(著)/五嶋 壮晃(著)/杉田 寿憲(著)/田村 弘(著)/十枝内 直樹(著)/主森 理(著)/福岡 秀一郎(著)/三木 英斗(著)/森 健太(著)/森國 泰平(著)/森本 望(著)/山下 慶将(著)/渡辺 雄也(著)
発行年月日:2022/01/12
ISBN-10:4297125196
ISBN-13:9784297125196
判型:B5
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:389ページ
縦:23cm
横:18cm
他の技術評論社の書籍を探す

    技術評論社 エキスパートたちのGo言語―一流のコードから応用力を学ぶ(Software Design plusシリーズ) [単行本] に関するレビューとQ&A

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