Posts Tagged Java

仮コード・テストコード・リアルコード

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;
	}
}

おそらく、これをみた多くの人は

「そんなめんどくさいことやってられない。」

とお思いでしょう。こんな簡単なプログラムであれば、そもそもクラス分けをする必要もないですが、もっと大きなプログラム、役に立つのではないかと思います。

テストコードを書けばリアルコードは短い時間でかけますし、しかも必要最低限のコードしか書かないので、見た目もすっきり。いいことづくしなので、是非皆さんもチャレンジしてみてください。

,

No Comments

Java本大量購入

今日は、友達に頼まれて無線LANの設置をすることに・・・。その後、名古屋栄で、つい先日開店したジュンク堂 ロフト名古屋店にいってみました。売り場面積は600坪とのこと。

名古屋で比較的大きな書店というと名駅高島屋の三省堂か、名駅のジュンク堂ぐらいしか知りませんでした・・・。それでも、売り場面積は300坪とか6~700坪。先日東京に行ったときいってみたジュンク堂池袋本店(売り場面積2000坪)と比べるとなんだか・・・。ちゃちい・・・。

名古屋は名古屋らしく・・・ね。まあしかし、600坪といっても、相当な広さです。。

さてロフト名古屋店、真っ先にコンピュータ書籍コーナーに行って、本を物色。いろいろ気になった本をピックアップしてみました。

  1. OpenCV プログラミングブック 第2版 OpenCV 1.1対応
  2. Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容
  3. 初めてのPython 第3版

1.OpenCVというのは、画像処理をするためのライブラリで言語はCとC++だったかな。この本の隣にOpenCVで動画解析っていうのもあったけど、この本の方が読みやすかったかな。でも、Javaの本が欲しかったから今回は購入せず。

2.密かに、Javaでiアプリを作ってみたいと、参考書を買っていたりしたのですが、「これからの時代、Androidがいいよ」と友人が言っていたのを思い出して、本を見てみるとやはりおもしろい。ただ、日本でAndroidがどのようになっていくかもう少し様子を見てからでも遅くないだろうから、これもパス。(お金があれば欲しかった・・・。)

3.出ました、python。部活の先輩がなぜかpython大好きと言っていたり、先日譲ってもらった本にpythonの本があったりして、ちょっと興味があったのでまずはオライリーの本を手に取ってみた。この本よりもっと初級者レベルだと、みんなのPython 改訂版とかも良いとの話。ただ、pythonの本買ってたら、肝心なモノ(Java関連)の本が買えなくなるということで購入せず。

 

さて、で本題の今日買った本はなにか。

実は、ジュンク堂では買いませんでしたごめんなさい。

ジュンク堂でなにか手応えを感じなかった僕は、ケンジントンのトラックボールを買うため大須に行きました。すると、その存在を知りつつ一度も入ったことのなかった、三洋堂書店 上前津店が目の前に・・・。入ってみると、どうでしょう。そこには、ジュンク堂以上に非常に大量のコンピュータ書籍が置いてあって、まさに宝箱を見つけたようでした。ビックリどころの話ではありません。

三洋堂書店の中では終始ニヤニヤして、本を物色。でるわでるわ買いたい本ばかりでした。本当に穴場でした。人も少なかった・・・。(この本屋さんに貢献したいので、以後ここで本を買うことに決めた。)

落ち着きを取り戻すため、一度店を出て、近くのミスドで買いたい本をAmazonでチェック。結局、もう一度書店に戻り、3冊10,500円を購入しちゃいました。

  1. やさしいJava 活用編 第3版
  2. パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)
  3. 創るJava NetBeansでつくって学ぶJava GUI & Webアプリケーション[改訂第3版]

1.いい!やさしいJavaの無印のやつはかなり簡単なのですが、これはいい!Swingのことも、いろんなことも書かれていていい(テキトー・・・)!同じシリーズでC言語版の、やさしいCなどがあるけども、それも是非購入してみたい。

2.すばらしい。発売したばかりの本(9月23日発売)で、Amazonのレビューにも何も書いてなかったのですが、これはいい!本当に良い!紙質も良いし、書き方も何か読みやすさを感じました。

3.1のやさしいJava 活用編と少しにてるけど、アナザーって感じで、いい。パーフェクトJavaとやさしいJava活用編を足して2で割ったような内容。

 

とまあ、Javaの本を買って同時に、ストレス発散&学習意欲の向上&良い本屋さんという一粒で三つおいしい体験ができた充実した休日でした。

 

ちなみに、名古屋栄の大型本屋をGoogleマップのマイマップでリストアップしたみたので、良かったらご覧ください。名古屋栄の大きな本屋

, ,

No Comments