2011年2月9日

「やる夫で学ぶTDD」五日目 プログラマにやさしいNEET判定 プログラマより愛をこめて #ytdd

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

遅くなりましたが、やる夫で学ぶTDD 第5日目 プログラマにやさしいNEET判定 プログラマより愛をこめて 始まりです。 #ytdd

2011-02-09 00:40:14
Kenichiro Ota @oota_ken

今日のお題はすでに光たん環境こと、弊社の開発&テスト・クラウド・サービス環境でリファクタリング済みなので、これをダイジェストにおおクリします。では始まり!今晩は新メンバーも登場するお! #ytdd

2011-02-09 00:44:08
Kenichiro Ota @oota_ken

やらない夫:あれは、ニートかどうか判定するプログラムをTDDで作るというものだったのだが、ちょっと不評なところがあった。まず内閣府のニートの定義から行くかな。 #ytdd

2011-02-09 00:46:28
Kenichiro Ota @oota_ken

やらない夫:内閣府のニートの定義は「高校や大学などの学校及び予備校・専修学校などに通学しておらず、配偶者のいない独身者であり、ふだん収入を伴う仕事をしていない15歳以上 34歳以下の個人である」だ。 #ytdd

2011-02-09 00:47:56
Kenichiro Ota @oota_ken

やる夫:やる夫もアリスソフトでテスターとして雇われるまではニートだったお!ズバリこれに該当していたお。でも、今はアリスソフトのスーパープログラマーだお! #ytdd

2011-02-09 00:48:38
Kenichiro Ota @oota_ken

やらない夫:そうだな。やる夫が本気を出してくれて、親友として本当にうれしい。ところで、これは余談だが、まあ、覚えておいてだけなのだが、厚生労働省のニートの定義は若干異なる。 #ytdd

2011-02-09 00:49:51
Kenichiro Ota @oota_ken

やらない夫:「年齢15-34歳、卒業者、未婚であって、家事・通学をしていない者」+「学籍はあるが、実際は学校に行っていない人」+「既婚者で家事をしていない人」つまり育児放棄の女性とかはニートなんだ。豆知識だぞ。 #ytdd

2011-02-09 00:51:11
Kenichiro Ota @oota_ken

やらない夫:JaSST'11では内閣府の定義を使った。でだ、テストケースを見てみると。 #ytdd

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

やらない夫:assertTrue(Neet.isNeet(18, false, false, false, false)); #ytdd

2011-02-09 00:52:32
Kenichiro Ota @oota_ken

やらない夫:やるお、パッと見て、これ何やっているか分かるか? #ytdd

2011-02-09 00:52:59
Kenichiro Ota @oota_ken

やる夫:最初の引数は年齢っぽいけど、その後はbooleanが並んでいるだけなので、正直呼び出し先のメソッドを見ないと分からないお。 #ytdd

2011-02-09 00:54:06
Kenichiro Ota @oota_ken

やらない夫:む、だれだ? #ytdd

2011-02-09 00:55:35
Kenichiro Ota @oota_ken

やる夫:この声は鬼畜王ランス14のチーフプログラマーの阿部さんの声だお。阿部さんはいい男だとペアプロしてくれるんだお #ytdd

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

やらない夫:こ、この男は、葛西臨海公園のベンチで、つなぎを着て座っていた男。冬なのにつなぎ一枚だった。 #ytdd

2011-02-09 00:57:27
Kenichiro Ota @oota_ken

阿部さん:ふ、君の自転車姿、なかなか決まっていたよ。俺はのんけで食ってしまうんだぜ。まあ、それは置いておいて、プログラマへの愛といえば、今日は俺に語らせてくれないか。やる夫も急激に成長してきてそろそろ俺のペアプロ相手にもいいかな。 #ytdd

2011-02-09 00:58:46
Kenichiro Ota @oota_ken

やらない夫:よく分からんが、やらない夫はちょっと眠いので、君に任せることにする。 #ytdd

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

阿部さん:ありがとう。所でやる夫、さっきのクラス、どう思う? #ytdd

2011-02-09 00:59:49
Kenichiro Ota @oota_ken

やる夫:すごくC言語です・・・ #ytdd

2011-02-09 01:00:01
Kenichiro Ota @oota_ken

阿部さん:C言語っぽいが、それ以上に問題なのが、さっき、やらない夫も言っていたように分かりにくいことだな。これをまずリファクタリングしてみよう。 #ytdd

2011-02-09 01:01:09
Kenichiro Ota @oota_ken

やる夫:オブジェクト指向っぽくするのかお? #ytdd

2011-02-09 01:01:28
Kenichiro Ota @oota_ken

阿部さん:いくつか、やり方はある。今回はあえていくつかのアンチパターンを導入することになるが、プログラマへの優しさと愛という観点から、テストと対象のクラスを分かり易くしてみようと思う。 #ytdd

2011-02-09 01:02:25
Kenichiro Ota @oota_ken

阿部さん:まずやるのは、クラス名Neetの変更だな。ニートの定義を決めたのは内閣府だから、内閣府がルールを知っていると考えるのが俺にとっては自然なメンタルモデルだ。だが、メンタルモデルは各自違うので、合意を取るのを忘れずにな。 #ytdd

2011-02-09 01:03:32
Kenichiro Ota @oota_ken

やる夫:やる夫もニートって勝手に内閣府とかが定義したもので、ニート自身がニートって知っているとか、その情報を持っているからって知っているわけじゃないと思うので、内閣府に聞くのは自然だと思うお。#ytdd

2011-02-09 01:04:26
Kenichiro Ota @oota_ken

阿部さん:じゃあ、まず、クラス名を Neet -> CabinetOfficeに変更しよう。 リファクタリング機能を使えば一発だ。 #ytdd

2011-02-09 01:05:41
Kenichiro Ota @oota_ken

やる夫:で、テストを流すんだお。 #ytdd

2011-02-09 01:05:56

コメント

山本康彦@BluewaterSoft @biac 2011年2月9日
やる夫がますますスーパープログラマーに! (w / ところで、CabinetOffice.isNeetって名前(内閣府はニートですか?)は、ちょっと居心地悪いかなぁ。引数にPersonを取ってるんで分かるけど。 / CabinetOffice.judgeNeet(Person) ?
0
山本康彦@BluewaterSoft @biac 2011年2月9日
私は、Person.isNeet()が居心地悪いクチです。 Employee.calculateSalary() (ぉぃぉぃ、従業員が自分の給料を決めるんかい!?) と同じ居心地の悪さがある。 / で、そのへんは悩むのはやめた。 「呼び出す側(利用者)が気持ち良いのが正義。パターンなんぞ知ったことか~っ!」
0