- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (3件) を見る
業務でGoを書くことになったのがきっかけで、「みんなのGo言語」を読んだ。
Goの経験は、1年ちょっと前に A Tour of Go やって、CLIツールとか書いたことある程度だった。
結果として、この本から
- Goらしいプラクティス
- 仕事で使えるテクニック
を知ることができたおかげで仕事が捗った。
タイトルにもある通り、「現場で使える実践的なテクニック」という趣旨が各章で意識されていた。薄い本だけどカバー範囲が広く内容が詰まっていて、とても読み応えがある。
特に「第1章 Goによるチーム開発のはじめ方とコードを書く上での心得」と「第6章 Goのテストに関するツールセット」の内容が、めちゃくちゃ勉強になったのでオススメ。
プログラミング言語GoとかA Tour of Goの次に読むべき本として最適だと思う。
読書メモ
第1章 Goによるチーム開発のはじめ方とコードを書く上での心得
- songmuさんの章
- Goでチーム開発していくにあたって、めちゃくちゃ参考になった。特にこの3箇所
- 依存管理はGoから公式なのが出たけど様子見
第2章 マルチプラットフォームで動作する社内ツールのつくり方
- mattnさんの章
- Goの特徴
- スタティックビルド(プログラムの実行に必要なライブラリがあらかじめリンクされていること)
- シングルバイナリ
- Windows対応の話がメイン
- 「2.6 シングルバイナリにこだわる」はWindowsだけじゃなくてweb開発で汎用的に役立つ内容だった
- 静的ファイルをバイナリに組み込むやり方について
go generate
をうまく使ってて参考になる
第3章 実用的なアプリケーションを作るために
- fujiwaraさんの章
3.3 効率的なI/O処理
- I/O処理のバッファリングに関して理解してなかったから勉強になった
- 合わせて読んだ
3.9 goroutineの停止
- 処理の中断やタイムアウトをやりたい時はcontextパッケージ
- contextはGo1.7から標準パッケージ
- 合わせて読んだ
第4章 コマンドラインツールを作る
- deeeetさんの章
- 慣習的にcmdディレクトリを作ってたけど、理由が書かれててスッキリした
- gotebuでは、urfave/cliを使ってる
- Exitをむやみに使わない
- deferが呼ばれないため
- 合わせて読んだ
第5章 The Dark Arts Of Reflection
- lestrratさんの章
- reflectは
MethodByName
を使ってるけど、他にも色々できて勉強になった - 合わせて読んだ
第6章 Goのテストに関するツールセット
- suzukenさんの章
- Goにおけるテストのあり方は「明示」と「シンプル」
- Build Constraintsを利用したテストの切り替え
- インターフェースを使ったモック
- coverageは複数パッケージのテストに対応してないから、ちょっと工夫が必要
- 合わせて読んだ