Posts Tagged XPプログラミング
仮コード・テストコード・リアルコード
XPプログラミングで特にテスト駆動開発といわれ、仮コード・テストコード・リアルコードの順番でプログラムを開発していくのが良いとされてます。
Head First Javaで、簡単にXPプログラミングの説明がしてあったので、少し要約してみる。
仮コードで、クラスに必要なものを挙げる。
仮コード・テストコード・リアルコードをどの単位でやっていくかというと、Javaではクラス単位でやります。第一行程の仮コード作成は、そのクラスに必要なメソッド、変数を具体的に書いていくことです。
たとえば、足し算を行うクラスtashizanというのがあるとします。(足し算をするクラスを作ります。)
「ここでは、tashizanクラスのコンストラクタにint型引数prm1とprm2を受けて、それぞれを足したモノをインスタンス変数resultに代入し、resultをゲッターメソッドでmainメソッドのあるクラスへ返します。」
こんな感じに、どんなものが必要なのかを書いていく。複雑になるにつれて(これら文章で書くより)、より実際のコードに近い形で書いていく方が良いでしょう。(ifとかwhileを使い、極力リアルコード作成の手間を減らす。
テストコードの作成は、リアルコードを書く前に書く。
テストコードとは、すなわち、リアルコードをテストするコードのことです。驚きなのが、リアルコードを書く前にテストコードを書くということです。
テストコードを先に書けば、そのクラスで返すもの、受け取るもの、メソッドが自ずとよくわかるようになるはずです。このtashizanクラスのテストコードは
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Class tashizanTestCode { private int inNumber1; private int inNumber2; private int result; public static void main (String args[]){ inNumber1 = 10; inNumber2 = 20; tashizan addition1 = new tashizan(inNumber1,inNumber); result = addition1.getResult(); if (result == 30){ System.out.println("成功"); }else{ System.out.println("失敗"); } } } |
tashizanクラスから戻された値が30以外の場合は、失敗とするテストコードです。(あってる・・・よね。)
リアルコードを書く。
ここで、本来必要となるリアルコードを書いていきます。上のテストコードを動作させるためのコードを書けばよいのです。
1 2 3 4 5 6 7 8 9 10 11 12 13 | class tashizan { private int prm1; private int prm2; private int reslut; void tashizan (int prm1,int prm2){ result = prm1 + prm2; } int getResult(){ return result; } } |
おそらく、これをみた多くの人は
「そんなめんどくさいことやってられない。」
とお思いでしょう。こんな簡単なプログラムであれば、そもそもクラス分けをする必要もないですが、もっと大きなプログラム、役に立つのではないかと思います。
テストコードを書けばリアルコードは短い時間でかけますし、しかも必要最低限のコードしか書かないので、見た目もすっきり。いいことづくしなので、是非皆さんもチャレンジしてみてください。
