『Java言語で学ぶデザインパターン入門』の作業ログ

結城浩

2000年12月29日

『Java言語で学ぶデザインパターン入門』はものすごいスピードで執筆している。 感謝なことである。 このようなことをしてくださる神さまをほめたたえます。 結城の作業ログによると、次のようになっている。

  • 9月 (全体構想と、サンプルプログラム書き)
  • 2000-09-20 書き始め(introとFacadeを60分だけ書く)
  • 2000-09-21 Commandを40分だけ書く。
  • 2000-09-22 AbstractFactoryのメモ。このあたりで「コンパイルして本当に動作するプログラム例を示す」という方針を決定。 その方針の心意気(?)をメモにまとめる。
  • 2000-09-23 対象読者とデザインパターンの意義について考える。目次の方針を考える。
  • 2000-09-24 Prototype, State, Flyweight, Mediator, Chain Of Responsibilityについて考える。
  • 2000-09-25 動作テスト用のPerlスクリプトを考える。
  • 2000-09-26 Adapter.
  • 10月 (サンプルプログラム書きとUMLによるクラス図描き。レビューア募集も)
  • 2000-10-05 Singleton, Builder とりあえずパターンごとに試しに書いてみようとしている。
  • 2000-10-06 目次再検討。
  • 2000-10-07 Prototype
  • 2000-10-08 5個ほど絵を作る。楽しい。
  • 2000-10-09 Decorator, Composite
  • 2000-10-10 Chain of Responsibility
  • 2000-10-13 Iterator, Flyweight 文書中に本当にソースを埋め込んでいる。役割について書き始める。
  • 2000-10-13 レビューア公募をしようかな、と日記に書く。
  • 2000-10-14 Observer
  • 2000-10-16 Bridge, Adapter
  • 2000-10-17 Memento
  • 2000-10-18 Memento もっと絵を多くすべき。
  • 2000-10-20 Adapter
  • 2000-10-20 Flyweight, Composite, Adapter, Template Method, をUMLで書く。
  • 2000-10-21 FactoryMethod をUMLで書く。
  • 2000-10-22 PrototypeをUMLで書く。
  • 2000-10-23 Builderのプログラム完成。AbstractFactoryのプログラム途中。
  • 2000-10-24 ChainOfResponsibilityの文章を書く。Commandのプログラムを書こうとしている。
  • 2000-10-24 現時点での疑問と今後の課題をまとめる。
  • 2000-10-24 現状を整理し、目次などとあわせて企画文書として編集長へ送付。
  • 2000-10-25 UMLの勉強。
  • 2000-10-26 レビューア公募開始。
  • 2000-10-26 Commandプログラム済み。
  • 2000-10-27 Interpreter
  • 2000-10-29 レビューアに送付する原稿の形式を考える。
  • 2000-10-29 UMLの解説を書く。
  • 2000-10-30 はじめの言葉を書く。本書の方針について整理する。
  • 11月 (レビューアへの送付開始)
  • 2000-11-02 ChainOfResponsibility
  • 2000-11-03 レビューア公募〆切。
  • 2000-11-04 [DP/Review] No.000 ごあいさつと事務連絡送付
  • 2000-11-04 Iterator
  • 2000-11-07 [DP/Review] No.001 はじめに送付
  • 2000-11-10 [DP/Review] No.002 UMLについて送付
  • 2000-11-15 [DP/Review] No.003 付録送付
  • 2000-11-15 [DP/Review] No.004 Iterator送付
  • 2000-11-16 進捗状況を編集長へ送付。
  • 2000-11-20 [DP/Review] No.005 Adapter送付
  • 2000-11-20 [DP/Review] No.006 ソース抽出と実行を行うPerlスクリプト送付
  • 2000-11-27 [DP/Review] No.007 Template送付
  • 2000-11-27 [DP/Review] No.008 FactoryMethod送付
  • 2000-11-28 [DP/Review] No.009 Singleton送付
  • 2000-11-29 [DP/Review] No.011 Prototype送付
  • 12月 (一気に突っ走って書くことにする)
  • 2000-12-01 [DP/Review] No.012 Builder送付
  • 2000-12-05 [DP/Review] No.013 Abstract Factory送付
  • 2000-12-06 [DP/Review] No.014 Bridge送付
  • 2000-12-06 [DP/Review] No.015 付録送付
  • 2000-12-06 [DP/Review] No.016 付録送付
  • 2000-12-07 [DP/Review] No.017 Strategy送付
  • 2000-12-08 [DP/Review] No.018 Composite送付
  • 2000-12-11 [DP/Review] No.019 Decorator送付
  • 2000-12-11 進捗状況を編集長へ送付。
  • 2000-12-12 [DP/Review] No.020 Visitor送付
  • 2000-12-13 [DP/Review] No.021 Chain of Responsibility送付
  • 2000-12-14 [DP/Review] No.022 Facade送付
  • 2000-12-15 [DP/Review] No.023 Mediator送付
  • 2000-12-18 [DP/Review] No.024 Observer送付
  • 2000-12-18 [DP/Review] No.025 名前公開の許可を求めるお願い送付
  • 2000-12-19 [DP/Review] No.026 デザインパターンを学ぶ前に送付
  • 2000-12-20 [DP/Review] No.027 Memento送付
  • 2000-12-27 [DP/Review] No.028 State送付
  • 2000-12-29 [DP/Review] No.029 Flyweight送付(予定)

こうやって眺めてみると、 送付開始する前の下ごしらえ(9月〜10月)で、 全体を把握しておくのが重要な感じがするなあ。 これがあるから11月に入ってスピーディに進められているように思う。 下ごしらえで作ったものは実際の原稿になるときには、 ずいぶん形を変えてしまうのだが、 自分が内容を把握するのが大事みたい。

それから通常の連載原稿と同じく 「まずプログラムを書き、それを文章で説明する」 という順番になっていたことにいまさらながら気づく ([DP]の場合にはプログラムと文章の間にUMLによるクラス図が入るが)。

ところで、結城はどんな作業を行うときも、このような作業ログを書いている。 今回のように後で読み返すと思わぬ発見があるものだ。 ログについては、1995年に書いた次の文章も参考にどうぞ。