Real World HTTPに引き続き今年2冊目の書籍が出版されます。ASCII.jpの連載をまとめて、加筆修正したものになります。最初は、連載をつなげて、はじめに、と次回予告を書き換えてつなげればOKという感じからスタートしましたが、章構成を書き換えたり、書き始めのときに「そのうち連載で触れる予定です」を「◯◯章で説明します」に書き換えたり、せっかくだから内容を追記しようとか考え始めたり、レビューアのメンバーが「これは並列・並行の結果であって原則とは違う」みたいな細かい定義のところまで指摘してくれて説明を大幅に書き換えたり、蓋を開けたら前から最後までかなり時間をかけて修正することになりました。せっかく転職で有給消化が一ヶ月あったのですが、この原稿の修正で一ヶ月がするっと溶けました。
11/16追記 Amazonでも販売がはじまっています!
大きな修正ポイントは次の通りです:
- 連載の分量の関係で、同じテーマを何回かに分けていたのをまとめた
- 並列処理の記事からチャネル関連を抜き出して、加筆を大幅に加えて独立した章に
- タイマーやクロックについての章を追加
- セキュリティについての章を追加
- Go 1.9で追加されたもろもろを追加
- 締切の一週間前に、連載で紹介したIntelliJ IDEAのCommunity版で、Goプラグインがダウンロードできなくなったというレビューの報告を受けて急遽Visual Studio Codeに差し替え
- 高尾編集長の徹底的な修正で日本語が大幅に改善した
- 雪だるまの絵が、妻の書いたフクロウに変わった
これ以外にも数多くの修正を加えています。紙の書籍にするにあたって、数多くの知人に協力してもらって、レビューしていただいたのですが、1ページにつき1件というペースに近い300件近い意見をいただきました。これは連載をしていたので、一度細かい所まで見て修正したので些細なミスはあまりないはず、というところからの出発でしたが、遠慮なく徹底的にみてくださったレビューアのお陰で、かなり改善されています。ASCII.jpの連載終了から440コミットありました。
元は、LLでウェブアプリケーションフレームワークを普段作っているけど、低レイヤーを学ぶチャンスがなかなかない人に向けて本を書くといいのではないか、とラムダノートの鹿野さんと雑談したところから始まった連載でした。Real World HTTPも通信の低レイヤーではありましたが、こちらはOSの方面の低レイヤーになります。C言語を使った、読む側にもそれなりの知識が必要とされる本はいくつもありましたが(とても良い本です!)、本書はそういう既存の本よりも読みやすい本が提供できたのではないか、と思っています。アプリケーションレイヤーの応用例もイメージでき、古い本では紹介されているけど、現実的にあまり使われていないものは省き、逆に最近のトピックに触れるといったことで違いを出しました。