書籍「みんなのGo言語」を著者陣よりも早く読んだ

先行販売された書籍 「みんなのGo言語」の紙の実物を著者陣よりも早く入手し読んだので、 夏休みの宿題には少し遅れましたが読書感想などまとめてみます。

来たる 9/9 に発売予定の書籍 みんなのGo言語 が、例によって書泉ブックタワーにおいて先行販売されました。この本屋の店頭には、著者に見本紙が届くよりも早く本が並ぶということで、一部にはとても有名です。そのため僕は、著者よりも早く実物の本を手にして読んで感想を記事にすることを画策し、数日前から足繁く通っては別の本を買ってたりしました。おかげで結構な出費になりました。でも技術書漁りは仕事かつ趣味みたいなところがあるからね。しょうがないね。

「みんなのGo言語」は著者陣の名前を見ると、若干一名を除けば見慣れない漢字が並んでいると言ってよいでしょう。しかし以下に上げた各人の twitter アカウント名を見れば、あっとなることでしょう。というかこの業界にいて、そうならなかったらモーグリです(クポー

各章の感想

そんな「みんなのGo言語」の先行販売、もちろん買ってきました。以下は twitter で呟いた、その読書感想文のまとめです。

第1章 golang開発のブートストラップ

この本は「はじめに」にも書かれているのですが、読者は入門的な初歩的な知識を既に持っているものとして書かれています。こんな構成の本、前にも見た記憶がありますね。その上で、実際の仕事の現場でgolangを使った開発を初めるには何が必要か、ということがこの1章には書かれています。

この「仕事の現場で実践するgolang」というスタイルは、テーマも著者陣がバラバラな全6章を通じて、一貫していると言ってよいでしょう。

第2章 マルチプラットフォーム対応

ソフトウェアの成果というのは、golangに限りませんが、それを我々のような IT技術者 だけが使っているうちは、本当の価値を生み出すには至っていません。それを本当の意味での価値として享受すためには、いかに非IT技術者に使ってもらうのかという課題があります。本章の真髄はその課題の解決です。

多くの人に使ってもらいソフトウェアの価値を最大限に引き出すためには、MacOSX や Linux だけでなく Windows がとても大事なんだという、そういう mattn さんの情熱がこの章からは伝わってきます。

第3章 アプリ作成テクニック

「アプリ作成のテクニック」とは表紙からの引用です。しかしそれだと言葉の意味する範囲が広すぎて、あまりにも取り留めがなさすぎるので、自分なりに捉え直したのが「(アプリと)外部とのインターフェース」です。

アプリはいろんな形で外部と接続されています。ファイルやネットなどのI/O、外部のアプリ、さらにはこれらを取り扱う人間。そういったアプリの外部との接続=インターフェースは、アプリ自身のパフォーマンスに大きな影響を与えます。そういう視点での実践的なテクニックを紹介しているのが本章になります。さすがは ISUCON の絶対王者と言った貫禄を感じました。

第4章 CLIツールの作成

この章は「CLIツールを作る際の実践的な即戦力なテクニック」といった様相です。いや本文自体がよくまとまっていて、コレ以上の踏み込み方ができないんです。この章を参考に、すぐにでもCLIツールを書きたくなるんじゃないでしょうか。私はなりました。

第5章 リフレクション

この章からは申し訳ないですが最後の言葉を引用させてもらいます。

reflectは最後の手段です。
(中略)
本当に必要なとき以外ではreflectを使ってはいけません。

ならなぜ書いたw

というのは冗談にしても、reflectは高級でありつつも低レベルで強力なテクニックです。しかしながらJavaやC#の同名の機能と比べるとやれることには限界があります。Javaなんて型システム壊れちゃうくらいに、無茶苦茶好き勝手できますからね。それに比べればgolangのreflectは優しいものですが、それでも普通に使っている部分に比べれば、十分難解な領域となります。その領域への水先案内として、この章は機能してくれます。

第6章 テスト

ここも簡潔かつわかりやすいテーマで、踏み込むのが難しいです。テストを一切書かないプログラマ、今時はいませんね(煽り)。「テスト書かないで許されるのは小学生までだよね」(煽りその2)。あ、僕は書かないこともありますが (´・ω・`)

全体を通して

ということで「みんなのGo言語」を著者陣が実物の本を手にする前に読んでみました。

全体を通しての感想は、各章の連携の取れていなさみたいな不備はあるものの、とても実践的な内容で、最初から 2冊めのgolang参考書 として、とても面白い、オススメしたい本でした。また読み進める順番としては 1章 → 4章 → 6章 → 3章 → 2章 → 5章 が適切だと思われます。読む際には参考にしてみてください。

golang の参考書としては プログラミング言語Go が、1冊めとして絶対に欠かせません。その他のgolangの本はそれぞれ固有の個性があるものの、同じく1冊めのポジションを担うべく書かれたものが多いように感じられます。それに対して本書は最初から2冊めの本として割りきって、他の本には書かれていない実践的な内容へ戦略的にフォーカスしているという印象を受けました。というか、ここまで実践的な内容はこの著者陣を集めなければ書けなかった、と言っても過言ではないでしょう。

本のボリュームとしては、同じ技術評論社の雑誌 Software Design の特集記事を2~3号分、といったところです。またその本の判型や内容、そして本としての仕上がり感からは、とても豪華で手間のかかった技術系同人誌、といった様相です。あ、今時の技術系同人誌には 市販本に勝るとも劣らないもの もあり、それらと比較しての感想なので、褒め言葉だと捉えてください。で、それと比べても、やっぱプロはさらにすげーなって、素人目にも思わされる組版でした。

と言ったあたりで感想を終ります。興味が湧いたら是非とも買ってみてください。なお、とある理由により、本書は電子書籍よりも紙のほうがおすすめです。 読み疲れた時に心を和ませる機能が付いており、それは紙でないと体験できないのです。あ、立ち読みでパラパラすんなよ、売り物の本が傷むから! 必ず買ってからやってくださいね。

なお私が買ったのは書泉ブックタワーですが、秋葉原ヨドバシカメラの7階の有隣堂や、池袋か渋谷のジュンク堂あたりも、先行販売が頻繁に行われることで知られています。お近くに行かれた際には覗いてみるのも良いでしょう。

広告

追記: 2016/09/03 21:30

著者陣に先駆けて入手するネタに情熱をかけていた証拠(ハングアウトのログ)を、著者の1人であるmattnさんの許可を得ましたので、公開いたします。

献本を断ってまで(笑)