今回はちょっと嬉しいお知らせです。
biliotechメンバーの「藤堂カイ」が、Go言語の書籍を書きました!
タイトルは『Go言語アンチパターン42問』です。
Goを書いていると、こんな経験はありませんか?
- 「テストも通っているし、ちゃんと動いている。でも、なんとなく不安」
- 「他の言語のクセのまま書いたら、レビューで指摘された」
- 「どこがマズいのか、うまく言葉で説明できない」
この本は、まさにそんなモヤモヤを解消してくれる一冊になっています。
どんな本?
サブタイトルは「悪い例→なぜ→直し方で、実務の落とし穴を見抜く」。
Goの文法を一から順番に覚える入門書ではありません。
構文は正しく、テストも通り、一見問題なく動いているプログラムの中に潜む「壊れやすさ」や「読みにくさ」を見抜くための本です。
各問はこんな流れで進みます。
- まず問題を抱えたコード(悪い例)を見る
- 職場でこのコードを受け取ったつもりで、違和感を考える
- 何が起きるのか、なぜ危険なのかを仕組みから理解する
- 望ましい形(直し方)を確認する
- コードレビューで使える点検基準を押さえる
推奨ペースは1日1問。
全42問なので、少しずつ進めれば無理なく読み切れます。
こんな人におすすめ
- Java、Python、PHP、C#、JavaScriptなどの開発経験があって、Goも書くようになった人
- 構文は書けるけど、運用やコードレビューで迷いが出る人
- 「なんとなくダメ」ではなく、改善点を言葉で説明できるようになりたい人
逆に、文法だけの入門書や、特定のフレームワークの使い方を探している方向けではないので、そこだけご注意ください。
中身をちょっとだけ紹介
全体は7部・14章・42問の構成です。
- Part 1 Go思考法編:変数・スコープ・ゼロ値、Line of Sightと制御構文
- Part 2 エラー設計編:errorを消さずに文脈をつなぐ、panic・recover・defer
- Part 3 メモリ・ランタイム編:スライスの容量とメモリ確保、ポインタ・Escape Analysis
- Part 4 設計・抽象化編:小さなinterfaceとGenerics、構造体・Package
- Part 5 並行処理編:Race Conditionと同期、Channelとゴルーチンリーク
- Part 6 本番運用編:context.Context、HTTPやJSONなど本番の境界
- Part 7 品質・コードレビュー編:壊れにくいテスト、静的解析
さらに巻末には、総合課題(Final Challenge)、42問分のコードレビューチェックリスト、Modern Goのコマンド集も付いています。
コード例は87個、図は25枚。
文章だけだとイメージしにくいメモリ配置や処理の時間順も、図と表で確認できるようになっています。
コードはGo 1.27.2で動作確認済みとのことです。
書籍はこちら
Kindle本で、1,480円(税込)で発売中です。
KDPセレクトにも登録予定なので、Kindle Unlimitedを契約されている方は読み放題で読めます。
Go言語アンチパターン42問:悪い例→なぜ→直し方で、実務の落とし穴を見抜く(藤堂カイ 著)
おわりに
「動いているからOK」から一歩進んで、「変更に強く、安全なコードを見分けられる」状態を目指せる一冊です。
Goを仕事で使い始めた方や、コードレビューでもう一段レベルアップしたい方は、ぜひ1日1問から試してみてください。