ソフトウェア開発の仕事を長いことやっているが、いまだに設計というのがうまくできないので、例えばライブラリ設計の場合、だいたい次のような方法で、結果的に設計としてのアウトプットを出している。
- まず動くものを作る。この段階ではほとんどを一箇所に押し込む
- 階層別に切り分ける
- 下の層から汎用的に書き換える
- ここより下は汎用部分(ライブラリ)、ここより上は固有な部分(サンプルコード)という線引をする
- 汎用部分をドキュメント化してライブラリの設計とする
世の中にはいきなり 5 から始められる人がいるらしい。その大半は絵に書いた餅なんじゃないかと疑っている。