日々常々

ふつうのプログラマがあたりまえにしたいこと。

JUnit実践入門の感想とJUnit依存具合と読書会と #junitbook

JUnit実践入門が 2012/11/21 に発売されました。献本ありがとうございます!
初めてレビューもさせて頂きまして、執筆が進むにつれ話題に上げたいなぁとウズウズする毎日が続いておりました。最初に原型っぽいものを見せて頂いたのが 2011/11/23 で、丁度一年になりますか。見た瞬間に「まさにこれが欲しかった!早く世に出て欲しい!」と思ったのは今でも覚えています。
対象は、JUnitナニソレな方から、ある程度使ったことがある方まで。私がよく話してることの多くが、この本にはもっと詳しく書かれてたりします*1。本気でおすすめ。

感想

和田さんの推薦のことばとかぶってしまいますが、やはり特筆すべきは語彙の豊富さです。SUTや4フェーズテスト、テストダブルなどが説明なく通じれば色々捗ります。具体的な話をするときは、これらを下敷きにして話をしたいですね。
ユニットテストはみんな「した方がいい」とは言うのですが、どうしても色々な言い訳がついて回ってややもすれば蔑ろにされがちです。テストの仕方がわからない、テスティングフレームワークの使い方がわからない……などと言った言い訳が駆逐されれば、より踏み込んだ先の開発ができると思っていますし、その世界を引き寄せてくれる一冊だと思います。
さらに言えばJUnit4の体系だった本は他に知りません。特集やブログで出てくるものの、表面的な書き方の差に留まる所が多かったり、ピンポイント過ぎたりしました。それも先日までの話です。
もっとも、これからJUnitJava進化していくでしょうし、別の解が提示されたりもしていくでしょう。実際、発売日直前にJUnit4.11がリリースされました。本書は4.10で書かれています。既に過去のものと言えなくもないのですが、日進月歩の中で、道具にこだわり常に磨き続けるのがプログラマです。土台を本書でくみ上げ、4.11以降を吸収していくのが、現在のおすすめです。幸いフォローもしてくれるそうですし。


この一冊を完走すれば、現状それなりに使っている人を置き去りにして「JUnitに詳しい人」と言えるのではないかと思っています。ちょっと詳しいなんて程度ではなく。480ページと多めですが、それでも「良くこの内容が480ページ程度に収まったな」と思わせるボリュームがあります。準備はこれ以上無く整いますので、読み終えた後は実践あるのみです。

JUnitへの依存度合い

本書は「JUnit実践入門」と銘打たれていますが、xUnitTestPatternsやリファクタリングなどが参考にされていることもあり、「JUnit本と言うよりはxUnit本では無いか」と思ったりしています。自信をもって非Javaプログラマにもお勧めできるのですが、言葉だけだとアレだなーと思ったので、ざっくりと章ごとの依存具合を主観で書いておきます。参考にならなくても知りませんが。

高依存

JUnitが前提になっているところ。他言語の方は参考程度に。

  • Part1 - 1章(1.2, 1.3)、3章(3.2, 3.4, 3.5)
  • Part2 - 4章、5章、9章
  • Part3 - 13章
中依存

他の言語への読み替える必要がそこそこあるところ。複数言語を使える人なら、特に問題にならないと思います。一方で、扱える言語が一つな方には少々厳しいかもしれません。

  • Part1 - 1章(1.4)、3章(3.6)
  • Part2 - 6章(6.4)、8章
  • Part3 - 12章
  • Part5 - 18-20章(演習問題)
低依存

JUnitとか気にせず読める所。コードが出てくる所もありますが、Javaを知らなくても読み替え可能なレベルかなと思いました。考え方など、言語非依存な所でもあります。

  • Part1 - 1章(1.1)、2章、3章(3.1, 3,3)
  • Part2 - 6章の残り、7章、10章
  • Part3 - 11章、14章
  • Part4 - 15章、16章、17章

まとめると、言語間のある程度の読み替えが出来る人にとっては「高依存」以外はxUnit(もしくはユニットテスト)の書籍として、7割程度は素直に読めそうです。また、まだ母国語を修得している方にとっても4-5割程度はいけるのではないかなと。あくまで個人の感想ですが。

JUnit実践入門読書会について

なんとなく 11/23 が休みだったのに予定が無かったので、独書会覚悟でやってみました。日本最速の読書会だぜ!とか思ってたのですが、何故か共鳴されて三都市同時開催となりました。これはこれで面白かったです。
読書会と言いつつ大阪では雑談成分多めで、たまに書いている内容を紹介したり、脱線してったり、たいがいカオスな感じでした。楽しかったです。いいのかこれで、と思いつつ、これでいいのだ、と思いつつ。他もなんか盛り上がってたようで、言ってみて良かったと思いました。

私も心残りです!><(いけるかっ!)


たぶんそのうち、またやります。今度はもう少しまともに。まともに?

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

*1:なので読まれるとドヤ顔で話せることが減っちゃうのですが、そんなことはどうでもいいです。