技術評論社様、執筆者の皆様、献本ありがとうございました。
本誌のサブタイトルは
入門書では得られないノウハウはコードにある
です。
ちなみに筆者も似た様な書籍「みんなの Go 言語」を共著で執筆しましたが、本書はこちらの拡充版とも言えるでしょう。
「エキスパートたちのGo言語」は20名もの共著で色々なノウハウが沢山掲載されています。「みんなの Go 言語」は7名の共著で個々の特色を色濃く出せたと思いますので、どちらも良い作品だと思います。
昨今の Go 言語は、日々ライブラリが更新され、新しいライブラリが生まれ、トレンドが更新され、古いライブラリが使われなくなるという、細胞が角質となり剥がれ落ちまた新しい細胞が生まれる様な循環を繰り返しています。
その様な中でこういった作品を出すという事は、言ってみればリスキーな事になり得ますし、「みんなの Go 言語」を書いた際にも感じていました。しかしこういった情報をきちんと纏まった形で公開する事は非常に大切で、体系立てて読める事はとても素晴らしい事だと再認識しました。
本書の読者レベルで言うと、Go の基本的なコードが読み書き出来て、ライブラリの選定もある程度はできる、中級者くらいかなと思います。前述の様に最近の Go はツールやライブラリの入れ替わりが速い状況ですので、開発者にキャッチアップの能力が必要になります。
- ツールやライブラリのトレンド
- CI/CD 周りの扱い方
- セキュリティfixのキャッチアップ
- AWS/GCP などクラウドのトレンド
これら何れも Go 言語に限った話ではないのですが、Go 言語の場合はクラウドで使われる事が多く、自動化もしやすい為、特にツール類や CI/CD 周りに気を使わないといけない事が多いです。本書ではそういった内容を「2021 年の Go 言語」としてうまく書かれているなと思いました。
例えば通常の言語ではあまり気にされないかもしれない「リトライ処理」、クラウドで使われる事を意識してずいぶん慎重に扱われます。バックオフを意識したライブラリだけでも沢山公開されています。本書の中でもリトライ処理だけで10ページも割かれています。context の使い方やリトライ処理といった、基本的な使い方だけでなく、cgo を扱う際のノウハウ、GitHub Actions を扱う上でのノウハウ、ウェブアプリを作る際に必要な JWT/OAuth といった認証周り、WebAssembly など、色々なカテゴリで書かれています。
興味のある方は、ぜひ一度、目次とその章で割かれているページ数を参照されるのが良いと思います。1点、牽引が少ない気はしました。もしかしたら改訂版などで改良されるかもしれないですね。
本書の内容に関して、全て知ってはいなくても良いと思いますが、読んで「あー、あれね」くらいで理解が出来れば Go 言語のエキスパートと呼ばれても良いのではないでしょうか。Go 言語を使ってお仕事をされておられる方であれば、買って間違いなしの書籍だと思います。