SSブログ

スキル向上の場としての練習問題 [プログラミング言語Java教育]

業務としてのソフトウェア開発で、テストファーストやリファクタリングを必ずしも経験できるとは限りません。業務で扱っているソフトウェアが、いわゆる(テストコードがない)「レガシーコード」だったりすると難しかったりします。私自身の経験からしても、2000年に書いた雑誌記事「リファクタリングの勧め」(「Java PRESS, Vol.12」2000年5月)でも、業務以外のコードで練習することを勧めています。

そのような練習の場の1つとして、私が行っているJava研修の課題の練習問題があります。実際の製品開発ではないので、プログラミングの質は問われないのですが、それでも、かなり個人差が現れます。

テストコードが書けるような練習問題であっても、単純に結果を出力して目視で確認するだけの人もいれば、JUnitを使用してテストコードを書いてくる人もいます。mainメソッド内にテストコードを書いて、目視で確認するという解答も多いです。実装を見ると間違っているのに、テストは通りましたという場合には、そのほとんどがテスト項目不足となっています。

練習問題などは、テストファーストを経験する格好の材料ですし、テストに合格したあとにリファクタリングをすることで、「Red-Green-Refactor」を練習することもできるわけです。しかし、提出された練習問題の解答やテストコードを見るとがっかりすることが多いです。

一年間のJava研修を修了した人だけが受講資格がある「Java 8基本技術習得」コースは、一ヶ月遅れて10月から開講します。練習問題も多いのですが、GitHubへ提出されている練習問題の解答を見るとがっかりすることが多いです。新人ではないので、自分のスキルを向上させる練習の場だと認識して、もう少しテストファーストやリファクタリングを実践してもらいたいものです。
コメント(1)