2013年8月25日日曜日

アジャイルサムライ読書会 横浜道場 「テスト駆動開発」 に参加してきました #agilesamurai #横浜道場

アジャイルサムライ読書会 横浜道場 「テスト駆動開発」
http://yokohama-dojo.doorkeeper.jp/events/4834

テスト駆動開発

今回は、テスト駆動開発ということでグリーンバンドを左手にして参加してきました。

DSC_0001.jpg

アジャイルサムライで語られているテスト駆動開発は、一部分でしか無いので、ここだけでは単にテスト書いてから始めればいいよねくらいの感覚しか無いように思ってしまいました。

テスト駆動開発を始めるためには、まず第12章のユニットテストでユニットテストを書ける様になって、第13章のリファクタリングをプロダクトコード、テストコードで出来るようになる必要があると思います。

テスト駆動開発をプロセスとして始める際に、ユニットテストとしての完了の定義を計画ミーティングで決めることが大切なのではないかと思いました。
完了の定義が明確であれば、ストーリーを満たす条件が明確であるため、それを満たすケースを一つづつテストコードに落としこむことが出来るのではないかと思います。

また、テストコードのレビューを行うことで、足りていなかったケースや他になにか気づいた点を共有できる機会が持てるので導入してみたいと思いました。

ユニットテストを書く経験を積んでいると、どういったプロダクトコードだとユニットテストを書くのにしんどい設計なのか身を持って分かる為、テスト駆動開発を行うことでユニットテストをしやすい設計と実装を身につけることが出来るのではないかと思います。

おわりに

アジャイルサムライも残すところ「継続的インテグレーション」のみとなりました。

また、10月にはTDDBC横浜も開催される予定です。

参加者の皆さん、横浜道場のスタッフの方々、会場を提供してくださった株式会社アットウェア様、ありがとうございました。
次回もまた、よろしくお願いします。

2013年8月17日土曜日

TDDeXchange in Tokyo に参加してきました #TDDeX

TDDeXchange in Tokyo で、実際のアプリでTDDどうやるんだっけ?
http://connpass.com/event/2929/

TDDeXchange in Tokyo #TDDeX
http://togetter.com/li/540368

TDD eXchange

TDD Boot Camp Tokyo 2013-07 に参加してきました #tddbcでは、ほぼコードを書くことは無いだろうと思い、参加してきました。


詳細については、「TDDの自殺」を発表しました。 #TDDeXをご覧ください。

テストコードの保守性をどうやって保っていくのかを考えるいいきっかけになったと思いました。
これまでテストの無いレガシーコードをテストしやすいコードまでなんとか引き上げてきました。
今後、自分以外の人間が携わった時に果たしてメンテナンスしやすいコードなのか分からないので、そういった視点で見直していくのは大切なのではないかと感じました。


途中までですが、APIを考えていたら時間を使いすぎてコード書く時間がほとんど取れませんでした。
DIとか全く考えずに書き始めたので、どうしようかと考えたところで時間切れになってしまいました。
このお題ならBoundaryでのテストはどうしたら良いのか、まだ出来ていないレイヤーをどう扱うのかを考える必要があるので、経験値がかなり上がると思いました。
普段意識してなかったツールもこのような視点から見てみるのも面白そうだと感じました。

おわりに


@kyon_mmさんがいらっしゃったおかげか、Groovyを使っていた方がこんなに多かったとは思いませんでした。

DSC_0040.jpg
会場は、おしゃれで居心地のいい空間でした。こういう場所でコード書いていたいなと思いました。

主催の@kyon_mmさん、スタッフの皆様、会場を提供して下さった株式会社ドリコム様ありがとうございました。

SQLアンチパターン読書会 「EAV(エンティティ・アトリビュート・バリュー)」 に参加してきました #sqlap

SQLアンチパターン読書会 「EAV(エンティティ・アトリビュート・バリュー)」
http://sqlap.doorkeeper.jp/events/4507

EAV



この回は、私が概要の説明をするお役目を承ったので、いろいろと調べてみてみました。

DSC_0334.jpg

DSC_0333.jpg

属性とその値を対象に関連付ける場合、その属性について詳しく調査出来るかがこのアンチパターンを解消する鍵なのではないかと思いました。
解決策もORMでサポートされているものも多く、カタログのように属性がバラバラであったりする場合はRDBMSでは難しいということも知りました。
また、最近ではNoSQLのような解決策も出てきており、どうしてもRDBMSでは難しい場合は選択肢として選べるようになったのは大きいと思いました。

おわりに

主催の@natsu_nananaさん、参加者の皆様、会場を提供してくださった株式会社アルティネット様ありがとうございました。
次回もまたよろしくお願いします。

2013年8月12日月曜日

TDD Boot Camp Tokyo 2013-07 に参加してきました #tddbc

TDD Boot Camp Tokyo 2013-07
http://tddbc.doorkeeper.jp/events/4663

TDD Boot Camp

開催からだいぶ経ってしまいしましたが、今回の件の感想が少ないとのご要望もあった模様なので、書いてみます。

今回は、JavaのTAとして参加してきました。
東京での開催にも関わらず、大阪や名古屋からTAの方がいらっしゃったりと、TAの方が多く大変助かりました。

一部ではC#の募集がないとのご指摘もありましたが、個人的にTAの方が受け持てる言語で行うのが妥当だと思っていますので、是非C#でTAの出来る方がいらっしゃれば、いつでも歓迎いたします。

個人的な印象としては、JavaScriptの希望者が確実に増えていると思いました。
JavaScriptでのテスティングフレームワークの移り変わりが早く、デファクトスタンダードが無いということ知りました。
特にPerlやRuby、Nodeなど別の言語のテスティングフレームワークのエッセンスを取り入れた為、フレームワークによってバラバラだという点も興味深かったです。

今回も@yattomさんと一緒にペアプロのデモをさせていただきました。
今回の反省点としては、Javaに特化した説明をしてしまった為、他の言語の参加者には分かりにくい内容になってしまっていたと思います。
今後のデモの課題として、個人的に感じたのは以下の内容です。

  • 設計とプログラミングのステージの割合や切り替えのタイミング
  • リファクタリングのタイミング
  • ドライバーとナビの交代のタイミング
  • TODOリストの使い方の説明
  • 言語やIDEに依存しない程度の説明

今回のイベントで一番印象に残ったのは、やはりGOOS本の原著者、Steve Freeman氏が参加されたことでしょう。
講演や、ペアプロでの成果の発表、等トップレベルの人のコードを見たり、解説してもらえることは、やはり刺激的で面白いと感じました。
いろいろと技術的なことも踏まえた通訳をしてくださった@yattomさん、ありがとうございました。

その他にもいろいろと勉強になることが多く、参加してよかったと思いました。
また、KPTの文字起こしをしていても参加者の方々がそれぞれ自分たちの課題を見つけられたり、何かしら得られていた様子なので、よかったと思いました。

おわりに

次のTDDBCでは、いくつかJavaScriptのテスティングフレームワークを習得してJavaScriptのTAも出来るようになりたいと思いました。

主催の藤原さん、TAの皆様、運営を手伝って下さった皆様、会場を提供して下さった楽天様、ありがとうございました。