今年のゴールデンウィークはありがたいことにまとまった休みがとれたので、積読や読み止しになっていた技術書を片づけることにしました。本書もそんなうちの1冊。自分のTwitterのタイムラインで少し話題になっていたこともあり、自分でも読んでみましたが、なかなか良書でした。
自分はとあるSIer勤務のSEで、ふだんはJava6やPL/SQLのコードを読み解いてExcelにスクショをぺたぺた張り付けるロートルな仕事をしています。そういう環境のため、仕事でGo言語を利用した経験はありません。ただGo言語自体は3~4年前から触れていて、競技プログラミングの問題を解いたり、ちょっとしたスクリプトやホビープログラムを作ったりと、サンデーGoプログラマーという感じの関わり方をしています。Go言語とそういう付き合いをしている人がどれだけいるのかわかりませんが、本書は自分のようなバックグラウンドの人間にとても刺さる1冊でした。
本書の内容を端的に述べるとすると「Go言語による開発のテクニックが体系的にまとまっている」というところでしょうか。プログラミング言語を学習するにあたって、基本的な文法を覚えて、簡単なプログラムを作るぐらいまでは比較的簡単。そこから一歩進んでものづくりになると、外部ライブラリや開発環境やイディオムなど、周辺的な知識が必要になります。本書はこういう"お作法"的な部分がまとまっていて、非常に実用的な1冊になっています。
本書のよいところは網羅的な記載にならず、重要な部分だけをピックアップしているところです。言語マニアにとっては不満だと思いますが、がんがんものづくりを進めたい人には役立つはず。またさまざまなテクニックを紹介するにあたっては、ユースケースや利用シーンにとどまらず、歴史的経緯や多言語との比較についても触れている部分が多く、学習効率が高いと感じました。Tipsだけ紹介されても頭には残りずらいですが、その背景や詳細まで触れられていると知識が定着しやすいですし、なにより筆者のGo言語に対する造詣や経験の深さを感じられ、内容への信頼度が増すということもあります。
Go言語開発の勘所がまとまっている本書は無勝手流にGo言語を勉強してきた自分のような人間にはひびくものでした。Go言語に関する本はさまざまありますが、初学者向けもしくは超専門的のどちらかに偏っている印象で、本書のように開発の実務的なところにスポットを置いた本は珍しいと思います。仕事でGo言語のアプリを作っていますというような人にはもってこいではないでしょうか。自分はその予定はありませんが…。
全体的に記述は簡潔で、サンプルコードも多いため、全328ページという分量のわりに内容はぐっとつまっています。一読して知識を吸収したあとは、手元に置いておいて、困ったときに適宜開く--そんな使い方ができる1冊であると思います。なおレベル的には脱初心者・中級者向けになります。Go言語の基本的な文法を学んだあとに読むとよさそう。プログラミング自体初めてとか、プログラミングの経験はあるがGo言語はさっぱりという人向きではありません。そこだけはご注意ください。