Software Design 短期連載「Webサービスを裏で支える!! バッチ処理設計の勘所」を終えて #gihyosd

Software Design 短期連載「Webサービスを裏で支える!! バッチ処理設計の勘所」を終えて #gihyosd

縁ありまして、ソフトウェアエンジニア向け技術雑誌「Software Design」で、2019年12月号から2020年3月号までの4回にわたり、「Webサービスを裏で支える!! バッチ処理設計の勘所」を連載しました。

今月が最後の回で、連載も終わりましたので、後日談として記録を残します。「きっかけ」「執筆の状況」そして「執筆を終えて」の3部に分けて書きます。

きっかけ

当初、この話は2019年のbuildersconのプロポーザルに「安心・安全なバッチプログラムを書くコツと運用のツボ」として書いた内容でした。ただ、落選してしまって、それならどこかの同人誌即売会に向けて同人誌として書き直そうと方針を転換しようとしていました。

その矢先、TwitterのDMで、技術評論社の吉岡さんから、プロポーザルとそれのもとになった会社のブログ(「Mercari Engineering Blog – バッチ処理の採用と設計を考えてみよう」のこと)を読んでみました、よかったらSoftware Designで書いてみませんか、というお話をいただきました。これはいい話だなと思い、会社内にいる執筆に慣れた同僚からちょっと意見をもらいつつ、連載として進めることになりました。

モティベーションとして、バッチ処理を書く機会はそれなりにあるはずなのに、ミドルウェアとかアーキテクチャの話に比べてあまり語られることのない話で、かつ割とノウハウが必要なところもあるので、それをどうにかまとめてみたいというのがありました。

問題はターゲットでした。玄人向けにジョブネットワークとかクラウド環境向けの話を書くこともできたのですが、これはやめました。ガチガチの業務システムで使われている商用の基盤についても、今回は触れるのをやめました。読者層などを鑑みて、Web系IT企業に勤める、これからバッチ処理を書こうとする人、または書いているけどノウハウを得る機会にあまり恵まれずに困っている人向けとして設定しました。また、大学やプログラミング教室でプログラミングの講義をきちんと受けたけれど、バッチ処理を書く講義はさすがに受けたことがないだろう、という想定もありました。

執筆の状況

流れはこんな感じです。

  1. 原稿を書く。
  2. 吉岡さんと、同僚のレビューをもらう。
  3. レビュー結果を反映する。
  4. ここまで、発売1ヶ月以上前の〆切に間に合わせる。
  5. 吉岡さんが編集して、組版してみる。
  6. 著者校正する。
  7. 編集部でも校正が入る。
  8. 刷られる。

執筆にあたっては、Google Docsを使いました。レビュワーの人たちにすぐに展開できること、レビュー時にコメントを入れやすい、そして吉岡さんからも推奨されたという理由がありました。Google Docsは普段の業務でも使用しているので、誰も何も困らずに使うことができました。問題は図面だったのですが、これは鉛筆で書いて、スキャナーでスキャンして渡しました。

目次案は8月のお盆前に作成して、当初は3回シリーズで行こうと決めました。ただ、第2回を書いているときに、1回あたり8ページ(1万文字くらい)だったはずが、あっという間に原稿が溢れてしまい、1回分おかわりすることになりました。

執筆は8月のお盆明けから始めました。当初は余裕のペースで進められていたのですが、最終回の第4回になると割とギリギリでした。まあ、それでも第1の〆切(?)には間に合っていたので、吉岡さんには迷惑はかけなかったはずです!第4回は正月休みを挟んでいたため、正月休みに書けるだろうとタカを括っていたのですが、これが裏目に出ました。正月休みは、家庭のことなどで、執筆にほとんど手が回りませんでした。休みに原稿が仕上がるというのは虚構ですw

なお、普段の原稿の執筆は、家の近所のドトールコーヒーでやっていました。電源があったことと、向かいにあるdocomoショップからdocomo Wi-Fiの電波が出ていて、窓際席だとそれを捕まえることができて便利だったからです。家だと、息子から遊んで欲しいとか言われたりするものですから、ちょっと難しかったです。

レビュワーですが、会社の同僚にお願いしました。第1回〜第3回はバッチの設計・開発にフォーカスしたため、Data Platformチーム(データ分析基盤を構築・運用するチーム ジョブネットをめっちゃ作っている人たち)にいる @syu_cream さん、第4回は運用の話題が多めのため、SREチームの @tjun さんにお願いしました。お二人とも、社内で技術の前線で業務にあたる、僕の信頼している同僚です。彼らのおかげで、より良い原稿に仕上げることができました。

執筆を終えて

おかげさまで、多くの方から高い評価をいただけていると、吉岡さんからお話を伺いました。大変嬉しく思います。ありがとうございます。

また、個人的に聞いた話ですが、当初想定していた読者層に加え、Data Platformの開発・運用担当者の人にも評判が良くて、ありがたいなと思いました。彼らもまた、各基盤からデータを集めて処理するために、たくさんのバッチ処理を書いて、ジョブネットワークを組んで、運用をしています。そこに響いたんだなと想定しています。奇遇にも、レビュワーの一人はData Platform開発・運用担当の @syu_cream さんだったのも、よかったです。

バッチ処理については、他にも書けることがあるので、また機会を見つけて書こうかと思っています。

ご意見、ご感想がありましたら、他の方の記事も含め、読者アンケートを通じてフィードバックをいただけたら幸いです。編集部の皆様、そして執筆者の僕らの励みになります。

謝辞

今回は、このような執筆の機会をいただきました、技術評論社の吉岡さん、レビューを買って出てくれた @syu_cream さん、 @tjun さん、そして執筆の時間を作ってくれたうちの相方に感謝します。どうもありがとうございました。

LINEで送る
Pocket