『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 さん、参加者の皆さん、及びタネマキの方、
どうも有り難うございました&次回もよろしくお願いします!