来たる 9/9 に発売予定の書籍 みんなのGo言語 が、例によって書泉ブックタワーにおいて先行販売されました。この本屋の店頭には、著者に見本紙が届くよりも早く本が並ぶということで、一部にはとても有名です。そのため僕は、著者よりも早く実物の本を手にして読んで感想を記事にすることを画策し、数日前から足繁く通っては別の本を買ってたりしました。おかげで結構な出費になりました。でも技術書漁りは仕事かつ趣味みたいなところがあるからね。しょうがないね。
9/2先行販売『みんなのGo言語 [現場で使える実践テクニック] 』技術評論社(978-4-7741-8392-3)松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太著 入荷● Go言語を適材適所で利用するための勘所! pic.twitter.com/wIqiuu76Go
— 書泉ブックタワーコンピュータ書売り場 (@shosen_bt_pc) 2016年9月2日
「みんなのGo言語」は著者陣の名前を見ると、若干一名を除けば見慣れない漢字が並んでいると言ってよいでしょう。しかし以下に上げた各人の twitter アカウント名を見れば、あっとなることでしょう。というかこの業界にいて、そうならなかったらモーグリです(クポー
各章の感想
そんな「みんなのGo言語」の先行販売、もちろん買ってきました。以下は twitter で呟いた、その読書感想文のまとめです。
買う。 pic.twitter.com/FLCHmUCl3O
— MURAOKA Taro (@kaoriya) 2016年9月2日
第1章 golang開発のブートストラップ
#みんなのGo言語 1章読了。なんていうかgolangのブートストラップ的な章だった。仕事で使ってる人には当たり前の、決して外せない内容。最後の方のバージョンとリビジョンの埋め込みは、ちょうどそれを遣りたい案件があったので早速使う。
— MURAOKA Taro (@kaoriya) 2016年9月2日
この本は「はじめに」にも書かれているのですが、読者は入門的な初歩的な知識を既に持っているものとして書かれています。こんな構成の本、前にも見た記憶がありますね。その上で、実際の仕事の現場でgolangを使った開発を初めるには何が必要か、ということがこの1章には書かれています。
この「仕事の現場で実践するgolang」というスタイルは、テーマも著者陣がバラバラな全6章を通じて、一貫していると言ってよいでしょう。
第2章 マルチプラットフォーム対応
#みんなのGo言語 2章w タイトルで安定のmattnさんだわw
— MURAOKA Taro (@kaoriya) 2016年9月2日
#みんなのGo言語 2章読了。主にWindowsにとってえらく実践的な内容だったw
— MURAOKA Taro (@kaoriya) 2016年9月2日
ソフトウェアの成果というのは、golangに限りませんが、それを我々のような IT技術者 だけが使っているうちは、本当の価値を生み出すには至っていません。それを本当の意味での価値として享受すためには、いかに非IT技術者に使ってもらうのかという課題があります。本章の真髄はその課題の解決です。
多くの人に使ってもらいソフトウェアの価値を最大限に引き出すためには、MacOSX や Linux だけでなく Windows がとても大事なんだという、そういう mattn さんの情熱がこの章からは伝わってきます。
第3章 アプリ作成テクニック
#みんなのGo言語 3章読了。うーんこの章は位置づけが難しいなぁ。かなりバラエティに富んでる。が、敢えてテーマを見出すなら外部とのインターフェースかな。I/Oだったり外部プログラムだったり人間だったり。
— MURAOKA Taro (@kaoriya) 2016年9月2日
「アプリ作成のテクニック」とは表紙からの引用です。しかしそれだと言葉の意味する範囲が広すぎて、あまりにも取り留めがなさすぎるので、自分なりに捉え直したのが「(アプリと)外部とのインターフェース」です。
アプリはいろんな形で外部と接続されています。ファイルやネットなどのI/O、外部のアプリ、さらにはこれらを取り扱う人間。そういったアプリの外部との接続=インターフェースは、アプリ自身のパフォーマンスに大きな影響を与えます。そういう視点での実践的なテクニックを紹介しているのが本章になります。さすがは ISUCON の絶対王者と言った貫禄を感じました。
第4章 CLIツールの作成
#みんなのGo言語 4章読了。CLIで一貫しててとても良かった。内容的にはコレが2章にあるほうが良かったんじゃないか?w
— MURAOKA Taro (@kaoriya) 2016年9月2日
この章は「CLIツールを作る際の実践的な即戦力なテクニック」といった様相です。いや本文自体がよくまとまっていて、コレ以上の踏み込み方ができないんです。この章を参考に、すぐにでもCLIツールを書きたくなるんじゃないでしょうか。私はなりました。
第5章 リフレクション
#みんなのGo言語 5章読了(斜め読み)。で、これは一気に突き放しにかかったなw これ別言語でも良いから reflect を使ったことない人が読んでメリットを理解できるんか?w
— MURAOKA Taro (@kaoriya) 2016年9月2日
この章からは申し訳ないですが最後の言葉を引用させてもらいます。
reflectは最後の手段です。
(中略)
本当に必要なとき以外ではreflectを使ってはいけません。
ならなぜ書いたw
というのは冗談にしても、reflectは高級でありつつも低レベルで強力なテクニックです。しかしながらJavaやC#の同名の機能と比べるとやれることには限界があります。Javaなんて型システム壊れちゃうくらいに、無茶苦茶好き勝手できますからね。それに比べればgolangのreflectは優しいものですが、それでも普通に使っている部分に比べれば、十分難解な領域となります。その領域への水先案内として、この章は機能してくれます。
第6章 テスト
#みんなのGo言語 6章読了。testing下の使い方を示してテストのやり方を解説、というところか。個人的には1.7からのサブテストへの言及も読んでみたかったけど、執筆と1.7リリースの時間を考えれば割愛もやむなしだね。
— MURAOKA Taro (@kaoriya) 2016年9月2日
ここも簡潔かつわかりやすいテーマで、踏み込むのが難しいです。テストを一切書かないプログラマ、今時はいませんね(煽り)。「テスト書かないで許されるのは小学生までだよね」(煽りその2)。あ、僕は書かないこともありますが (´・ω・`)
全体を通して
ということで「みんなのGo言語」を著者陣が実物の本を手にする前に読んでみました。
#みんなのGo言語 を読み手として日本で一番早く読んだの kaoriya さんじゃねw
— ミスター 松茸ご飯 (@mattn_jp) 2016年9月2日
全体を通しての感想は、各章の連携の取れていなさみたいな不備はあるものの、とても実践的な内容で、最初から 2冊めのgolang参考書 として、とても面白い、オススメしたい本でした。また読み進める順番としては 1章 → 4章 → 6章 → 3章 → 2章 → 5章 が適切だと思われます。読む際には参考にしてみてください。
golang の参考書としては プログラミング言語Go が、1冊めとして絶対に欠かせません。その他のgolangの本はそれぞれ固有の個性があるものの、同じく1冊めのポジションを担うべく書かれたものが多いように感じられます。それに対して本書は最初から2冊めの本として割りきって、他の本には書かれていない実践的な内容へ戦略的にフォーカスしているという印象を受けました。というか、ここまで実践的な内容はこの著者陣を集めなければ書けなかった、と言っても過言ではないでしょう。
本のボリュームとしては、同じ技術評論社の雑誌 Software Design の特集記事を2~3号分、といったところです。またその本の判型や内容、そして本としての仕上がり感からは、とても豪華で手間のかかった技術系同人誌、といった様相です。あ、今時の技術系同人誌には 市販本に勝るとも劣らないもの もあり、それらと比較しての感想なので、褒め言葉だと捉えてください。で、それと比べても、やっぱプロはさらにすげーなって、素人目にも思わされる組版でした。
と言ったあたりで感想を終ります。興味が湧いたら是非とも買ってみてください。なお、とある理由により、本書は電子書籍よりも紙のほうがおすすめです。 読み疲れた時に心を和ませる機能が付いており、それは紙でないと体験できないのです。あ、立ち読みでパラパラすんなよ、売り物の本が傷むから! 必ず買ってからやってくださいね。
パラパラです #みんGo pic.twitter.com/bK9l0fyL5Q
— fujiwara (@fujiwara) 2016年9月3日
なお私が買ったのは書泉ブックタワーですが、秋葉原ヨドバシカメラの7階の有隣堂や、池袋か渋谷のジュンク堂あたりも、先行販売が頻繁に行われることで知られています。お近くに行かれた際には覗いてみるのも良いでしょう。
広告
追記: 2016/09/03 21:30
著者陣に先駆けて入手するネタに情熱をかけていた証拠(ハングアウトのログ)を、著者の1人であるmattnさんの許可を得ましたので、公開いたします。