読者です 読者をやめる 読者になる 読者になる

Masteries

技術的なことや仕事に関することを書いていきます.

「みんなのGo言語」を読みました

9月9日に発売された「みんなのGo言語」を, いろいろなご縁がありまして, 筆者の1人である@lestrratさまよりご恵贈頂きました.

みんなのGo言語【現場で使える実践テクニック】

みんなのGo言語【現場で使える実践テクニック】

...私事ではありますが, 8月から9月にかけて仕事が盛り上がっており, ちまちまと時間を作って読み続けていたのですが, ようやく読了しましたので感想などを綴りたいと思います.

結論から述べると, 「LL言語からGoへ入門する人は絶対に持っておくべき!」という感想を持ちました. 少なくとも自分のようにLL言語(自分の場合, Perl)からGo言語に入門するようなエンジニアであれば, 絶対に手元に持っておくべき良書だと思います.

最初の障壁「環境構築」にしっかり文面を割いている

@songmuさんが執筆された第1章の「Goによるチーム開発のはじめ方とコードを書く上での心得」は非常に価値がある内容だと思います. というのも, Perl入学式という初心者向けのプログラミング勉強会を主催している身としては, 「プログラミングの最初の障壁は, プログラミングをするための環境を作るところである」と常々感じていて, この章の内容はその辺りの「Go言語を書き始めるにあたって必要な初期の環境設定」について, 懇切丁寧に書かれていてとても良かったです.

正直, このへんの環境構築は, 正直適当にやっていてもなんとかなるっちゃなんとかなりますが, ちゃんとやっておけば非常に楽になりますし, 何よりGo言語はフォーマッターやLintツールがオフィシャルに提供されていて, これに「乗っかる」ことで効率よくコードを書けるので, こういう形で「1つの章」としてまとめて書かれているのは, Go言語をチームで導入していく際の知見共有などを考えても非常に有り難いことだと思います. 「みんなのGo言語」を手渡して, 「第1章を読んで, こんな感じで設定してみて!」って言えますし.

CLIから入っていける

「みんなのGo言語」では, @deeeetさんが担当された第4章を中心に, 「Go言語でCLIツールを作っていく」というテーマ(?)で, Go言語の様々なテクニック, ノウハウが紹介されています. この辺りは, 「Go言語でWebアプリケーションを作りたい!」と思っている人にとっては多少の不満ポイント(?)かもしれませんが, 本書では逆にCLIツールに特化することで, 「現場で使える実践テクニック」の紹介に集中出来ていると思いました(なので, 個人的な意見ではありますが, 次は「Go言語で"Webアプリケーションを作る時に"使える実践テクニック」とか出てくると非常に嬉しいですね!).

更に言えば, 「Go言語でWebアプリケーションを作りたい!」と思っている人こそ, 本書を手に取るべきだと思っていて, なぜなら「いきなりWebアプリケーションを書くのは難しい」と思っているからです. Webアプリケーションは, 作ったものをブラウザで実際に動かすことができるので, 達成感というか, 「勉強してやりきったぜ!」という気持ちになりやすいのですが, そこに至るまではプログラミング言語そのもの(ここではGo言語)だけでなく, データベースといったミドルウェアや, WAFやORM, テンプレートエンジンといったライブラリの知識も必要になってくるので, 最初の一歩としてはやはり障壁が高いように思っています.

なので, 始めてGo言語に挑戦する人はもちろんのこと, 他言語を足がかりにGo言語にチャレンジする人も, いきなりWebアプリケーションに向かっていかずに, CLIツールから入っていくのが良さそう, と思っています. この辺り, @yusukebeさんのブログに書かれているGolangを初めて本番投入したぜ!という記事で,

と言っても、いきなり画像処理や文字列の改行計算を含んだ「ひとつの」アプリケーションを書き始めるのはニュービーにとって漠然としすぎてて、ムリゲです。なので、スタンプサーバの実装要件をピックアップし、それごとに小さなGoコードの塊=コードスニペットをたくさん書いていきました。

と書かれていて, まずは「小さなGoコードの塊」... 恐らくは小さなCLIツールを書いていって, それをまとめてボケてというWebサービス(アプリケーション)にGo言語を導入していったのと, 同じ... なのかなあ, と思っています.

特に, PerlとかRubyとかを使って, 何かしらの「便利スクリプト」を書いて使っている人は, 本書で紹介されているテクニックを参考にしながら, それらをGo言語に移植していくところから入っていくと良さそうですね!

まとめ: 理論の「Tour of Go」, 実践の「みんなのGo言語」

Tour of Go」がGo言語の理論, つまり「こう書けば, こう動く」という所を教えてくれるとすると, 「みんなのGo言語」はGo言語を実際に使う場面で役立つ, 「こういう感じでやっていけばいいよ!」というテクニックやノウハウを教えてくれる本です.

「Go言語でプログラミング言語に初チャレンジします!」という人はともかく(個人的には, そういった方はまずはRubyとかLL言語から入っていった方がいいのでは? という気もしますが...), 自分のように何かしらのプログラミング言語を既に学んでいて, そこからGo言語へ入ってくという場面であれば, 「Tour of Go」の次に, 或いは「Tour of Go」と並行して, 本書を読んでいくのは非常に有意義だと思います.

...というわけで, 「みんなのGo言語」, 非常に良い本でした!