『JUnit実践入門』写経・実践会 in 横浜 #3 に参加しました。

 っても、書いてるのがもう数日後だったりして(汗)
 
 内容については、、、まぁ、下記の皆さんのブログを参照して頂くとして
 (これをInternet規模のDRY化と呼ぶらしい)
 今回も非常に楽しく参加させて頂きました。
 
 『JUnit実践入門』写経・実践会 in 横浜 #3 を開催してきた
 Shinya’s Daily Report 「http://bit.ly/VBjkiK
 
 ⇒ ページ下部に参加者のブログがまとめられてるので、
   他の皆さんのブログはそこから辿って頂く、と(^^;;
 
 毎回恒例(?)になってしまった、まだ写経が終わってない
状態での参加でしたが(とうとう開き直ったな、ッテオイ)
Mr.TDD の @t_wada 先生が突如参加表明!
(途中でconnpassのページ(http://bit.ly/VGw8cV)見たら
 律儀に参加登録して頂いてました(^^))
 
 たまたま自分はタネマキにやってくる途中で
SQLアンチパターン」を仕入れて来てたんですが、
これ幸いとばかりにサインをお願いしてしまいました(タダノミーハーヤ!)
(先日川崎に行った時にラゾーナ丸善で購入できなかったのが
 いい方向に転びましたな)

 ⇒ 他の皆さんも近くのダイエーの本屋に
   本があるだけ買いに行くという買占め部隊を
   結成してました(ワラ (残念ながら5冊しか置いてなかったけど)
 
 内容的には1回目、2回目と同様、軽く5分ほど黙読して、
本の内容について議論するというスタイルで進みました。
 
 で、t_wada さんが登場されるまでに以下の質問を会場に
投げかけていたのですが、参加者の皆さんとの議論と
t_wada さんからの回答のお陰で個人的にはスッキリとしました。

 1.private メソッドはテストすべき?
   ⇒ 個人的には「すべきではないんじゃ無い?ただ、
     したくなる時があるのも事実なんで、そういう場合は
     package private に格上げしたりしてやってます」
     という感じでしたが、こちら t_wada さん登場であっさり解決。
     結論は「すべきではない」。
     何故なら、「テストがしたくなるようなメソッドなら
     他のクラスのpublicメソッドとかに切り出した方が
     設計的には正しいと考えられるから」という非常に
     明快な回答が頂けました。OO的にも(個人的な今までの経験的にも)
     確かにという感じでした。
     ただ、許されるとしたらレガシーコードに対してのテストかも、
     という事も至極納得です。そんでもって、そういう時に
     「魔改造」してやっつけてやる、ってのも(^^;;
 
 2.「リファクタリング」の価値は分かるし、個人的にした方が良いのは
   感覚的に分かるけど、その工数は誰が支払うの?
   ⇒ 以前別のセミナーの時に平鍋さんに「価値創造契約」の話を踏まえて
     質問した事があったんですが、その時は確かその為にチケットを消費する
     (=お客さんに納得してもらって支払ってもらう)ということだったと
     思います。
     補足しておくと、基本的に日々リファクタリングはしているから、
     (チケットを消費するほど大きな)リファクタリング工数はかかっていない、
     と仰っていた気がするんですが。
     さて、t_wada さんの回答は「リファクタリング工数」という言葉が
     出てきた時点で、かなり負けがこんでいる状態、とのこと。
     確かに仰る通りですね(汗)
     じゃ、どうすればいいか、というと、普段のプログラミング(の一部)
     としてやるのが良い、という事でした。

 3.「生産性」という言葉について
   ⇒ こちら、個人的に凄く「?」なんですよね。で、
     参加者の皆さんとかはどういう「モノサシ」で測っているのか?という
     素朴な疑問が前々からありまして、思わず質問しました。
     こちら、やっぱり結論は出ませんでした。COBOLの時代ならいざ知らず
     今時ステップ数で測るってのはナンセンスですし。。。
     ただ、t_wada さんが一つヒント、というかキーワードを仰ってました。
     「時間」です。それと、他者(・他社)と比較してもあまり
     意味が無いけど、自分自身で比較(=時系列で比較)するのは
     良いのではないか(アジャイルのベロシティの話にも通じるし)、という事でした。
     
 あと、Mockist vs Classicist の話も面白かったですね。
実は「実践テスト駆動開発」の著者はバリバリのMockistで、その本の前書きに Classicistの
Kent Beck が寄稿しているという話ですが。

 勉強会の後も懇親会で 色々と t_wada さんにお話を伺う事もできて、非常に
1日楽しく過ごす事が出来ました。
 ⇒ t_wada さんが、実はRDBに原点があった、という話を聞いて少々驚きました。
   TDDとオブジェクト指向の人だとばっかり思ってたんで。良く聞いたら
   今回のSQLアンチパターンの本の監訳にも関わられた親父さんが実はデータベース技術者で、
   その手伝いをしていたから、という事で、ナルホドーと一人納得してしまいました。
   
 主催者の @shinyaa31 さん、ゲストの @t_wada さん、参加者の皆さん、及びタネマキの方、
どうも有り難うございました&次回もよろしくお願いします!