
@irof publicからprivateを含めて検証するのと、private単体だけで検証するのであれば、先にprivate単体で検証しておいた方が安心感があると思う
2012-08-25 16:38:24
@kyon_mm @shela_ privateは内部の共通化とか処理の固まりに名前をつけるとかのメソッド抽出で出てきて、最初からprivateにするのはあんまないと思ってる。
2012-08-25 16:41:34
@irof ある共通的な処理の固まりがprivateならテストしたくなるほどの責務を持たせる場合があるんじゃないの?
2012-08-25 16:43:51
@irof っていうことはprivateから始まるプロダクトコードはTDDでは書いてはいけないということでよい?
2012-08-25 16:46:49
@irof 設計を先に済ませていると、はじめから「あー、この処理絶対に共通的に必要じゃん。privateで定義すればいいよね。」ってなる場合。
2012-08-25 16:49:22
@irof @kyon_mm publicの処理で絶対にprivateには入らない値での検証がどうなるか。privateを将来再利用する機会が来た場合に初めてその値を検証することになるので、その時までバグが発覚しないことになりそう。
2012-08-25 16:57:52
@kyon_mm んー……責務持ち過ぎ感はありますが。それだけ核になることならそこから手をつけると思うので、多分先に書くから行けるんじゃないかなと。
2012-08-25 17:04:20
@irof いや、結果として同じコードになるなら責務持ち過ぎっておかしくないですか? 先に書くからっていうのは、先にprivateにしていても、それをつかうpublicを書くであろうそこからテスト通せる的な意味です?
2012-08-25 17:07:02
@irof 「publicとprivateの境目は<例として>共通処理である」「共通処理にはテストが必要だと思うが、それが予見できている場合に最初からprivateにする方針ではどうするのか?」っていう流れなんだけどそこで「メソッド単体でテストしたい」は別じゃない?
2012-08-25 17:15:10
@irof 「メソッド単体でテストしたい」かどうかではなくって、論点としては「初めからprivateにするということはTDDではゆるさない(アンチパターンくらいでいいかしれない)」のかどうかです。別にprivateでテストしたいとかそういう意味ではない。
2012-08-25 17:16:44
@kyon_mm その流れでいくと、たぶん共通処理をpublicに書いてからメソッド抽出しますが、「public経由でテストできてんじゃん」です。最初からprivateで書いて、「privateにテスト書く書かない?」の話をするのはなんかコレジャナイ感。
2012-08-25 17:17:15