THINKING MEGANE

『みんなのGo言語【現場で使える実践テクニック】』をいただきました。

著者のお一人、@songmuさんより、『みんなのGo言語【現場で使える実践テクニック】』をいただきました。ありがとうございます。

現場で使える実践テクニックのタイトル通り、Go言語界隈の有名人が様々なテクニックを紹介してくれています。自分もGo言語が好きでよく書いていますが、書き始めた当時に試行錯誤しながら身につけてきた知識、テクニックが簡潔にまとまっており、文法を一通り覚えた初学者にとって学習効率が非常に高い本ではないかと思います。

第1章 Goによるチーム開発のはじめ方とコードを書く上での心得

Go言語を快適に書くための開発環境の準備から、Goらしいコードを書くまでが簡潔にまとめられています。main.goだけのプロジェクトから卒業するときに悩むところが網羅されており、A Tour Of Goのあとに、みんなのGo言語 1章を読むまでを入門としてよさそうです。

また、この章で拙作の(dragon-imports)を紹介していただきました。ありがとうございます!

第2章 マルチプラットフォームで動作する社内ツールのつくり方

2章ではマルチプラットフォーム対応をするために気をつける点が説明されています。2.5 がんばるよりもまわりのツールに頼るや、2.8 設定ファイルの取り扱いなど、単一のプラットフォームだけでも役立つテクニックが掲載されています。

第3章 実用的なアプリケーションを作るために

実際に各所のプロダクション環境で動いているツール開発の経験が盛り込まれているまさに実践的な章です。自分自身も、独自シグナルによるメンテナンス性の向上やcontextパッケージなどまだ知らなかった知識を仕入れることができて満足度が高い章でした。

第4章 コマンドラインツールを作る

マルチプラットフォーム、シングルバイナリを実現するGo言語の華形と言えばCLIツールだと思います。CLIツールをつくるにあたり、本章を始め、筆者の方が今までブログや発表の中で一貫して述べてきた、使いやすくメンテナンスしやすいツールにするためのテクニックはとても役立つと思います。

特に4.5にある終了ステータスコードや入出力をmainとパッケージで分離する手法については自分のプロダクトでも採用させてもらっており、メンテナンスやテストによる堅牢性の向上などにつながっておりオススメです。

第5章 The Dark Arts Of Reflection

Go言語のリフレクションで何ができてどのような副作用があるかが説明されています。パフォーマンスについてもまとめられており、利用に関して自分自身で判断できるようになるためにも読んでおくとよいかと思います。

それにしても動的なSelect文の構築ができるとは思っていませんでした。Go言語初心者を脱した方にとっても新鮮な発見がある章かもしれません。

第6章 Goのテストに関するツールセット

Go言語でのテストの基礎とテクニックを紹介しています。Go言語もテスティングフレームワークが一時期乱立しましたが、最終的には言語標準の機能によるシンプルなテストに落ち着いたのではないかと思っています。この章を読むことでGo言語の提供する仕組みに沿いながらも必要十分なテストを書くための知識を得ることができると思います。

まとめ

全体を読みながら、自分もここでハマったなとか、最終的にこういう風に書いているなと納得しながら読み進めることができました。こういった知見は、普通は自分自身の試行錯誤や他のひとのコードを読んで少しづつためていくものですし、知見がたまったとしてもなかなか網羅的にひとに伝えることは難しいものだと思います。この本にある、現場で培われた実践的なテクニックを本というカタチで学習し、共有できるのは自分自身のスキルアップだけでなく、チームの拠り所として立ち上げや新規参入者を迎えるにあたって心強い一冊となるのではないでしょうか。

また、紹介されるテクニックについても様々なレベルがあり、自分のレベルややりたいことの変化に応じて、新しい発見のある本ではないかと思います。140ページほどで簡潔にまとめられているので、気軽に読み始めることができます。みんなのGo言語【現場で使える実践テクニック】 オススメです。

このエントリーをはてなブックマークに追加