「やる夫で学ぶTDD」九日目 スコア計算 #ytdd
やらない夫:今回はテストケースの作成に直交表を使うべきはちょっと迷うところではあったのだが、ボウリングの場合、どちらかというと10フレーム目の境界値が鬼門となるので、それ以外の組み合わせは多少アドホックでも問題ないと考えて、使わないことにした。 #ytdd
2011-02-16 00:37:12やる夫:確かに、直交表とかそういうのに抜きして、エラーハンドリングはちと甘すぎるような気がするお。今のままだと21球以上以上投げると例外で落ちちゃうし、倒したピンの値を110 とか 4 7とかだと、変な値が計算されるお。 #ytdd
2011-02-16 00:39:06やらない夫:それはこのボウリングのスコア計算のAPIとしてどこまで何を提供させたいか、逆にいうと利用側がどこまで何をやってほしいかに依存するので、まあ、今回の場合はやる夫とやらない夫がAPIのユーザーの代わりをしてそれでもいいと判断した。#ytdd
2011-02-16 00:40:22やらない夫:そうだ。エラーハンドリングが多くなると、本当にやりたかったコアのビジネスロジックがエラーハンドリングに埋もれて分かりにくくなる可能性が高いからな。金融のシステムなんて大体孫感じた。 #ytdd
2011-02-16 00:41:53やる夫:今回のは仕様自体をシンプルにしたから、クラスBowlingとクラスScoreともボウリングのスコア計算のロジックそのものをそのドメインの言葉で分かり易く記述できているお。これなら仕様書じゃなくて、 #ytdd
2011-02-16 00:43:09やらない夫:そうだな、Rubyとか使うともっと記述がシンプルになるから、より、ドメインの知識と言葉に近くなるな。TDDでテストケースから始めると実装も本質的なビジネスロジックを分かり易く実装する可能性が高いので、そういう意味でもお勧めだな。 #ytdd
2011-02-16 00:44:54やらない夫:やらない夫は昔はひたすらJavaScriptを6年ほど書いていたのだが、今はバックエンドばかりでとんとGUIに弱くなっているので、それはデブサミの会場でそういうのが得意な技術者を見つけて本番でペアプロTDDだ。まあ、GUIはTDDし難いけどな。 #ytdd
2011-02-16 00:46:51やらない夫:この9日で学んだのはTDDもテスト技法もほんの入門だ。どちらとも非常に奥が深く、長時間の実践が不可欠だ。やる夫もスーパープログラマー目指して、TDDとテスト技法の腕を磨いてほしい。 #ytdd
2011-02-16 00:48:45やる夫:鬼畜王ランス14のチームでも阿部さんが主導でみんなTDDできるところから始めるようなったお。今まではスーパープログラマーの阿部さんに頼りっきりだったけど、阿部さんとペアプロTDDすることよってモリモリスキルアップしてきたお。 #ytdd
2011-02-16 00:50:00やらない夫:とまあ、先は長いわけだが、毎日コツコツとTDDの実践とテスト技術の実践をがんばってほしい。では、また、なんかやる夫がスーパープログラマーになるために必要だと思った技術があったら一緒に学ぼうな。 #ytdd
2011-02-16 00:53:13やる夫:やらない夫、ほんとうにありがとうだお。この頃、阿部さんは関数型言語とか何とかよく言っているので、いい男の阿部さんが言っているのならやる夫もそのうちチャレンジしてみようとも思うお。でも、まずはTDD極めてみたいお #ytdd
2011-02-16 00:54:35ということで、やる夫で学ぶTDDいったん完了です。デブサミの二日間ではブースにやる夫モードとやらない夫モードの両方を使い分ける予定の太田がおりますのでよろしくです。 #ytdd
2011-02-16 00:55:53二日目には阿部さんを拡張型TDD提案者もとい組み込み王子であるテライケメンボイスの井芹さんが演じてくれるので、楽しみにしていてください。CおよびC++、C#では井芹さんが対応してくれると思います。僕はJava及び何とかPerlとRubywww #ytdd
2011-02-16 00:57:24では当日お会いしましょう。デブサミ会場の入口曲がったすぐにTDD研究会のブースがありますのでよろしくです!多分、ブースで居眠りしていますので、ペアプロTDDしたかったら、たたき起こしてください。#ytdd
2011-02-16 00:58:26