リファクタリング前提で、頭の中で整理もせずに実装することに抵抗があります。
行き当たりばったりな感じで、テストクラスも書かず、
結局後で見直したら駄目なので全部作り直しという行為が
リファクタリングという言葉に隠されている気がしてなりません。*1
実装してみたけど、パフォーマンスが出ないとか
1メソッド辺りの記述が長くて保守しづらいとか
そういう時に、テストクラスの結果を変えない程度に
実装クラスの記述をより良いものにしていく
これがリファクタリングだと思っています。
仕様があって、実装設計的なものをせずに、コーディングを行い
修正を繰り返すことは、リファクタリングではないと思います。
実装する前にちょっとは考えようよー
(コーディングいきなりしないでよー)
と言うことを伝えたいのですが、いまいち伝わらない。
ソースコードみりゃわかるじゃない、と思っているので
実装設計に使ったドキュメントは全て残す必要もないと思っていて。
ちょっと複雑な実装(仕様)している場合には
保守する人(時)の為に残したほうが良いと思うんですけど、
全ての実装に対する実装設計書を書くのは無駄でしょう。
マスメンの実装設計書は見ても面白くないし。
入力チェックやDBへのマッピングは基本設計の辺りで決めないと
いけまんし(基本設計のドキュメントは全部残します。仕様の拠り所になるからね)
まぁ、どこまで基本設計で詰めるかはそのプロジェクトのやり方に拠るでしょうけど。
- ドキュメント無しも駄目
- 保守する時大変。ソースコードやSCMから全ては読み取れないよ。
- 全てのドキュメントを作るのも駄目
- ドキュメントとソースコードの整合性を取ることが面倒で、いつかドキュメントのメンテナンスをしなくなる
ってことです。バランス難しいですけどね。
*1:テストクラスを書いていても、この場合、テストクラス自体書き直すことが多い気がします