SSブログ

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

前回の記事「スキル向上の場としての練習問題」では、単体テストを作成することが可能な練習問題では、JUnitなどを使用して、単体テストを作成することでリファクタリングまでのスキル向上のための練習をするのがよいと述べました。特に、テストファーストということで、「Red-Green-Refactor」を実践するのがよいです。

ただ、練習問題の中には、「単純にログを出力して(目視で)確認するだけでよい」と述べられているものもあります。その場合でも、普段から単体テストを作成してリファクタリングをしている人の解答は、それなりの品質になっていたりします。

マーチンファウラーの書籍『リファクタリング』では、「リファクタリング」は、リファクタリング対象のコードをテストするテストコードを書いてから行うのがリファクタリングです。その定義に従えば、テストコードなしでは、単なる「書き直し」となります。

リファクタリングを開始するとき、最初にすることは常に同じです。対象となるコードについてきちんとしたテスト群を作りあげることです。リファクタリングは非常に順序だっていて、新たなバグを生み出しにくくなっていますが、人間が作業する以上、間違いを犯す可能性があります。このためテストは大切で、きちっとした一連のテストを用意するべきなのです。
書籍『リファクタリング』より

普段からきちんとリファクタリングしている人は、テストコードがないコードでも、動作確認が終わった後に、「習慣的に無意識にコードの見直し」を行うことになります。したがって、ログによる確認でよいとされる練習問題でも見直して修正することになります。

たとえ小さな練習問題であっても、その解答のコードを見ると、作成者の思考パターンとエンジニアとしてのスキルが、ある程度分かってしまうものなのです。


新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

  • 作者: Martin Fowler
  • 出版社/メーカー: オーム社
  • 発売日: 2014/07/26
  • メディア: 単行本(ソフトカバー)

書籍『リファクタリング』については、拙著でも紹介しています。

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

  • 作者: 柴田 芳樹
  • 出版社/メーカー: 技術評論社
  • 発売日: 2009/10/21
  • メディア: 単行本(ソフトカバー)

コメント(1)