yuralog

ひびのめもだよ!

『Goならわかるシステムプログラミング』を読んだ

最近同著者の『Real World HTTP』が楽しく読めたので『Goならわかるシステムプログラミング』も拝読した。

Goならわかるシステムプログラミング(紙書籍)www.lambdanote.com

読んだ理由

Go言語には興味があったが公式ドキュメントや文法を学ぶための本は途中で飽きてしまうため、本書のような何かしらテーマのあるものがよかった。

内容

blog.shibu.jp

こちらに記述されている通り ASCIIの連載から大きく以下が修正されている。

  • 連載の分量の関係で、同じテーマを何回かに分けていたのをまとめた
  • 並列処理の記事からチャネル関連を抜き出して、加筆を大幅に加えて独立した章に
  • タイマーやクロックについての章を追加
  • セキュリティについての章を追加
  • Go 1.9で追加されたもろもろを追加
  • 締切の一週間前に、連載で紹介したIntelliJ IDEAのCommunity版で、Goプラグインがダウンロードできなくなったというレビューの報告を受けて急遽Visual Studio Codeに差し替え
  • 高尾編集長の徹底的な修正で日本語が大幅に改善した
  • 雪だるまの絵が、妻の書いたフクロウに変わった

所感

普段はPHPを書いているため並列処理に馴染みがなかったが、並列処理のためにどういった機能が必要で、いかに実現されているか理解できた。(使いこなせるとは言っていない)

また、2~3章あたりのio.Writer, io.Reader インタフェースの解説で低レイヤーとのつなぎを意識できるようになったのも全体の理解の助けになった。 内容はGo寄りのものが多いとはいえ、他の手法の紹介もあり足がかりにもよい。システムコールを周り真面目にやるなら『詳解UNIXプログラミング』あたりも読まないとなーっと言った感じ。

あと、githubのissuesエラッタ管理するのは面白い仕組みだと感じた。 ただ、刷、版を重ねると管理するのも大変になりそうとも思った。

写経した内容は以下に残した。

github.com

内容関係ないけど、フクロウのイラスト可愛くて好き

次何しようかな

「みんなのGo言語」を読んだ後に、Kent Beckテスト駆動開発をGoで書く予定。

Goならわかるシステムプログラミング

Goならわかるシステムプログラミング