「やる夫で学ぶTDD」 四日目 CSVParserで学ぶ実践TDD #ytdd
某SIerで if(true == false) のような神コードのインスペクションで廃人化しているやらない夫こと太田先生の「やる夫で学ぶTDD」四日目です。
今回は、リアルペアプロを基にしたやりとり。
Kenichiro Ota
@oota_ken
今日は一人でやる夫しようと思いましたが、後輩の @ioki 君がTDDペアプロ付き合ってくれると今決まったのでw 只今、彼の所へ出発します。自転車乗らないけどまあいいか。いい漢をもったものだ。例題は通貨で行く。USTEAMとかできるかな?
2011-02-06 15:01:02
Kenichiro Ota
@oota_ken
やらない夫:今日は、やらない夫の後輩にして未踏プログラマの @ioki 君とリアル世界でペアプロTDDをしてきたのだ。 #ytdd
2011-02-06 23:41:48
Kenichiro Ota
@oota_ken
やらない夫:最初は、TDD本の複数通貨の例をやろうとしたのだが、例が簡単すぎてもっともシンプルな実装だと、一瞬で終わってしまったので、CSVParesrに切り替えた。 #ytdd
2011-02-06 23:41:56
Kenichiro Ota
@oota_ken
やらない夫:現実のCSVファイルはちょっと難しいので、現実のCVSファイルから""(ダブルクオーテーション)内での改行の仕様のみを除いたものに対してパースしたものを二次元配列で返すとした。 #ytdd
2011-02-06 23:42:07
Kenichiro Ota
@oota_ken
やらない夫:まあ、そういわずに、文字のパースでは必ず状態遷移を持つので、オブジェクト指向のメリットを出せてまさにオブジェクト指向とTDDにうってつけなんだ。 #ytdd
2011-02-06 23:42:52
Kenichiro Ota
@oota_ken
やらない夫:今回は実践編だから、実戦らしく行くけど、実はSpring.splitによる実装は結果として捨てるということが仕様上見えている。 #ytdd
2011-02-06 23:44:09
Kenichiro Ota
@oota_ken
やらない夫:これはCSVファイルのフォーマットの仕様が決まっているのと、事前にテストケースの分析をすることによって、String.splitの実装が無効であることが分かるからだ。 #ytdd
2011-02-06 23:44:22
Kenichiro Ota
@oota_ken
やらない夫:CSVファイルでは、"a,", b, cと値自体に「,」を含むものを、「”」でくくって表現する。したがって、直接「,」でsplitしてもうまくいかない。 #ytdd
2011-02-06 23:44:28