「やる夫で学ぶTDD」九日目 スコア計算 #ytdd

某SIerで if(true == false) のような神コードのインスペクションで廃人化しているやらない夫こと太田先生の「やる夫で学ぶTDD」九日目です。そして感動のクライマックスへ。
2
Kenichiro Ota @oota_ken

やらない夫:今回はテストケースの作成に直交表を使うべきはちょっと迷うところではあったのだが、ボウリングの場合、どちらかというと10フレーム目の境界値が鬼門となるので、それ以外の組み合わせは多少アドホックでも問題ないと考えて、使わないことにした。 #ytdd

2011-02-16 00:37:12
Kenichiro Ota @oota_ken

やる夫:確かに、直交表とかそういうのに抜きして、エラーハンドリングはちと甘すぎるような気がするお。今のままだと21球以上以上投げると例外で落ちちゃうし、倒したピンの値を110 とか 4 7とかだと、変な値が計算されるお。 #ytdd

2011-02-16 00:39:06
Kenichiro Ota @oota_ken

やらない夫:それはこのボウリングのスコア計算のAPIとしてどこまで何を提供させたいか、逆にいうと利用側がどこまで何をやってほしいかに依存するので、まあ、今回の場合はやる夫とやらない夫がAPIのユーザーの代わりをしてそれでもいいと判断した。#ytdd

2011-02-16 00:40:22
Kenichiro Ota @oota_ken

やる夫:必ずしもガチガチに暴挙すればいいってもんじゃないってことかお。 #ytdd

2011-02-16 00:40:57
Kenichiro Ota @oota_ken

やらない夫:そうだ。エラーハンドリングが多くなると、本当にやりたかったコアのビジネスロジックがエラーハンドリングに埋もれて分かりにくくなる可能性が高いからな。金融のシステムなんて大体孫感じた。 #ytdd

2011-02-16 00:41:53
Kenichiro Ota @oota_ken

やる夫:今回のは仕様自体をシンプルにしたから、クラスBowlingとクラスScoreともボウリングのスコア計算のロジックそのものをそのドメインの言葉で分かり易く記述できているお。これなら仕様書じゃなくて、 #ytdd

2011-02-16 00:43:09
Kenichiro Ota @oota_ken

やる夫:単体テストコードや実装コードでロジックの正しさをユーザーがレビューできそうだお。 #ytdd

2011-02-16 00:43:38
Kenichiro Ota @oota_ken

やらない夫:そうだな、Rubyとか使うともっと記述がシンプルになるから、より、ドメインの知識と言葉に近くなるな。TDDでテストケースから始めると実装も本質的なビジネスロジックを分かり易く実装する可能性が高いので、そういう意味でもお勧めだな。 #ytdd

2011-02-16 00:44:54
Kenichiro Ota @oota_ken

やる夫:後、課題4のスコア表を作れっていうのが残っているけど・・・ #ytdd

2011-02-16 00:45:20
Kenichiro Ota @oota_ken

やらない夫:やらない夫は昔はひたすらJavaScriptを6年ほど書いていたのだが、今はバックエンドばかりでとんとGUIに弱くなっているので、それはデブサミの会場でそういうのが得意な技術者を見つけて本番でペアプロTDDだ。まあ、GUIはTDDし難いけどな。 #ytdd

2011-02-16 00:46:51
Kenichiro Ota @oota_ken

やる夫:じゃー、今日でやらない夫とのペアプロTDDは終わりかお? #ytdd

2011-02-16 00:47:28
Kenichiro Ota @oota_ken

やらない夫:この9日で学んだのはTDDもテスト技法もほんの入門だ。どちらとも非常に奥が深く、長時間の実践が不可欠だ。やる夫もスーパープログラマー目指して、TDDとテスト技法の腕を磨いてほしい。 #ytdd

2011-02-16 00:48:45
Kenichiro Ota @oota_ken

やる夫:鬼畜王ランス14のチームでも阿部さんが主導でみんなTDDできるところから始めるようなったお。今まではスーパープログラマーの阿部さんに頼りっきりだったけど、阿部さんとペアプロTDDすることよってモリモリスキルアップしてきたお。 #ytdd

2011-02-16 00:50:00
Kenichiro Ota @oota_ken

やらない夫:とまあ、先は長いわけだが、毎日コツコツとTDDの実践とテスト技術の実践をがんばってほしい。では、また、なんかやる夫がスーパープログラマーになるために必要だと思った技術があったら一緒に学ぼうな。 #ytdd

2011-02-16 00:53:13
Kenichiro Ota @oota_ken

やる夫:やらない夫、ほんとうにありがとうだお。この頃、阿部さんは関数型言語とか何とかよく言っているので、いい男の阿部さんが言っているのならやる夫もそのうちチャレンジしてみようとも思うお。でも、まずはTDD極めてみたいお #ytdd

2011-02-16 00:54:35
Kenichiro Ota @oota_ken

やる夫&やらない夫:9日間ありがとう(だお!)。 #ytdd

2011-02-16 00:55:01
Kenichiro Ota @oota_ken

ということで、やる夫で学ぶTDDいったん完了です。デブサミの二日間ではブースにやる夫モードとやらない夫モードの両方を使い分ける予定の太田がおりますのでよろしくです。 #ytdd

2011-02-16 00:55:53
Kenichiro Ota @oota_ken

二日目には阿部さんを拡張型TDD提案者もとい組み込み王子であるテライケメンボイスの井芹さんが演じてくれるので、楽しみにしていてください。CおよびC++、C#では井芹さんが対応してくれると思います。僕はJava及び何とかPerlとRubywww #ytdd

2011-02-16 00:57:24
Kenichiro Ota @oota_ken

では当日お会いしましょう。デブサミ会場の入口曲がったすぐにTDD研究会のブースがありますのでよろしくです!多分、ブースで居眠りしていますので、ペアプロTDDしたかったら、たたき起こしてください。#ytdd

2011-02-16 00:58:26