というわけで、10/30に行われた第23回 長岡IT開発者勉強会で「TDDBC 長岡 0.1」と銘打ってセッションを行ってきました。
セッション資料
使用したスライドはSlideshareにアップしました。
また、セッション中デモとして、DartでTDDを行う予定でしたが、インターネット回線が細かったので、代わりに事前に用意した動画を流しました。
その動画はYoutubeにアップしてあります。
実際に作成したコードは次のページで参照できます。
http://try-dart-lang.appspot.com/s/VxIc
(Dartは簡易コード共有機能があるので、こういうとき便利ですね。)
TDDのための簡易TestRunnerは、GitHubに上げてあります。
https://github.com/masaru-b-cl/DartUnit
質疑応答は次のような感じ。
- return “1”って意味あるの?
- TDDの「クセ」をつけるには最初はやっておいた方がいい。
- 慣れてきたら、一足飛びに実装するのもあり。
- GUIのテストってどうするの?
- ViewとビジネスロジックのModelを分けて実装し、Mに対して行う。
- Viewをうすーく作ることで、Viewは手動テストで。
- GUIに対する自動テストツールもあるが、それはTDDではなく「自動化テスト」の範疇。
- SereniumとかNUnitForm(まだあるのかな?)とかVSのUIテスト
- ペアプロって実装コスト2倍になるんじゃ?
- ものすっごい集中するので、結果としてスループット(利益 / コストの比率)は上がるらしい。
- ただ、それが認められる組織でないと、導入は難しいかも。
セッションをやってみて
始める前に「TDDを聞いたことがある人」と挙手してもらったところ、大半の人が挙手してくださったので、TDDの存在自体は結構知られている印象でした。
ただ、「実際に実践している人」の質問には1人とまだまだ実践している人は少ないようです。「やったことがある人」にしたら4人くらいなので、興味自体はあるのかな?
これは逆に考えれば、長岡(新潟)でTDDを普及させる余地がかなりあるということなので、今後につなげていきたいと思います。
あとは、Perlishな方々とパイプができました。しかも、TDDBC長岡1.0に向けて、強い味方となっていただけそうでした。
@NkznさんともいろいろとTDDBC実現に向けて話ができたので、徐々に進めていきたいと思います。
KPT
Keep
- Zenスタイルのスライドはやりやすかったので今後もこの方向でいく。
- Dartでのデモを動画でも用意していたのは好評だった。
- 質疑応答がそこそこ盛り上がった。
Probrem
- 少し早口になるところがあった。
- 話が長すぎるところがあった。
- デモにインターネット回線が必要だったが、用意していなかった。
Try
- インターネット接続は自前で用意する。
- ライブコーディングを行う。
- TDDBC 長岡 0.5を、まずは少人数でやってみる。
アフターフォロー
@masaru_b_cl まさる(高野 将、TAKANO Sho)
基本はMECEでKISS(もれなくダブりなく、シンプルに)で、冗長なコードを省いたり、責務分割をやったりですね QT @jdash2000: #nds23 Refactaringの部分で目指すキレイなコードというのは参考にするなにかがないと厳しいような気もするけどどうなんだろ?
http://twitter.com/#!/masaru_b_cl/status/130652594715635712
@masaru_b_cl まさる(高野 将、TAKANO Sho)
Viewから実行するビジネスロジック、またViewに対応するModel(ViewModel)をTDDし、Viewは別で QT @hiro55bs: TDDをやる場合、MVCモデルでModelとControllerは想像できるけど、View部分はどうするのだろう。#nds23
http://twitter.com/#!/masaru_b_cl/status/130654537404002305
@masaru_b_cl まさる(高野 将、TAKANO Sho)
「ドライバ、スタブの関係」というのが何のことか不明ですが、ドライバはJUnitなどが該当し、スタブは必要なら作成します QT@hiro55bs: TDDとは構造化プログラミングでいうドライバ、スタブの関係をイテレート型開発で実装を進めるという理解で良いのかな。 #nds23
http://twitter.com/#!/masaru_b_cl/status/130655449245691904
@yu_hori タナカ ユキコ
@masaru_b_cl まさるさん、きょうはお疲れさまでした!TDDのすすめ、聴けてよかったです。仕事行程の可視化もできて、着実に進めるってほかの仕事にも生かせる話だなっと思いました^^
http://twitter.com/#!/yu_hori/status/130648570536792065
@masaru_b_cl まさる(高野 将、TAKANO Sho)
@yu_hori あざーす。この辺は実は何でも一緒なんですよね。1.大きな問題を小さく分割、2.タスクの目標を定める、3.タスクを行う、4.検証する
http://twitter.com/#!/masaru_b_cl/status/130655846685356032
@masaru_b_cl まさる(高野 将、TAKANO Sho)
@yu_hori これがプログラムだと、検証部分が自動化でき、しかも何度でも再試行が可能というだけなんです。実世界ではそうはいきませんので、事前の計画がより重要になります。
http://twitter.com/#!/masaru_b_cl/status/130656138441134080
さ~て、次回のサザエさんは?
しばらくはTDDの人で行こうかと思います。具体的にどう進めていくかという話もしたいですし。
また、TDDBC 長岡 0.5もそんなに離さずに実現させたいですね。この辺はNDS関係者と要相談ですね。