渋川@東工大です。おはようございます。
シンプルなコードに関して僕の意見ですが・・・
> XP Explored(Wake本)にも以下のような説明があります。
> Chapter2 リファクタリングについての章。(p.29)
:
> XP的にはとにかくテストが通るということが重要で、その次が意図、
> さらに重複なし、最小限の要素へと続いていきます。
これに関連して、「テストがしやすいコード」というのがシンプルなコードだと
思います。テストがしやすい、というのは内部のロジックが適度な粒度でメソッ
ドごとにまとまっている、というのもあると思いますが、テストコードがシンプ
ルでわかりやすい、というのが大切だと思います。
例えばオブジェクトの責任分配がうまくいっていなければ、クラスごとのテスト
コードの長さとか量もバラバラになってしまいますし、テストすべきロジックが
独立しておらず、大きなメソッドの奥深くにある場合などはテストコードも少々
トリッキーになります。テストコードがシンプルというのはつまるところ、クラ
スのインターフェースがシンプル&意図を伝える以外の余計な部分が少ないとい
うことになると思います。
ソースコードの長さに関してですが、リファクタリングの中にはソースコードが
明らかに長くなるのもありますよね?例えば条件記述の分解(翻訳版・P238)と
か、クラスによるタイプコードの置き換え(P218)とか。僕が好きなのは条件記述
の分解だったりするわけですが、短い=シンプル、という定義からすれば改悪、
ということになってしまいます。
# 一応、「長さ≠シンプルさの基準」という議論に
# なっていますが・・・
-----
東京工業大学 電気電子工学科 3年
_/_/_/ しぶかわよしき JA6HFA/1
_/ mailto: shibu@....jp / ja6hfa@....jp