「PHPでTDD&CIワークショップ」に行ってきました

先日グリーさんで行われました「PHPでTDD&CIワークショップ」の感想ブログです


自分が仕事で関わっているプロダクトは、色々な人により様々な改修が繰り返された歴史の長いもので、有用なドキュメントがなくテストもない俗にレガシーと呼ばれている様なもので、過去の仕事による不毛なストレスを(ry …よくある話ですよねw
このままでは、未来の誰か(自分でもあるw)にまでもこの不毛なスパイラルが…
少しでもそこから解放されるいい方法はないだろうか?という経緯でTDDに興味を持ち始め、今回参加させて頂きました!

参考

ATND
#php_tdd_ci

内容

  • PHPでのTDD、CIに関する発表
  • ワークショップ(TDD or Jenkins)
  • 懇親会

発表

感想

単体テスト、始めるのは簡単、極めるのは難しい
適度な粒度が見つかり始めたら上手な設計ができ始めてる兆し?続ける事が大事
TDDを初めてみて、PHPUnitの使い方は解ったけど実際のコードで応用してみようとするとなかなかシックリこないと感じていたのですが、成程、と思いました!
また、PHPでもテスティングフレームワークを使って日々レガシーコードと戦っている方が沢山いるんだと心強く感じました。
継続していきます!
@tsuyoshikawaさんの「勉強会は勉強しにきたら負け」の言葉で会場すこしリラックスw


ソフトウェア開発の三本柱、1.バージョン管理 2.テスティング 3.自動化
自分が興味のターゲットにしている所に改めて自信が持てました!
引き続きテスト駆動開発入門等を写経したり手を動かしてラクティス、プラクティス、プラクティス!


怖いなあー、怖いなあー」 (不吉な匂いを表現していると思われます)
@cactusmanさん、@yamashiroさんの発表では、@yamashiroさんの稲川淳二風味の語り口が秀逸で、為になりつつ面白い発表でしたw
PEARのPHPMDやPHPCPDをJenkinsプラグインで上手くCIすると怖くなくなるよ!
CIツールのJankinsJenkinsに関しては @yamashiroさんの最強な資料で試してみると良いと思います!
三本柱で言うところの「自動化」関連ですね!

ワークショップ

@t_wadaさんによる「PHPでのxUnitテスティングフレームワークを用いたテスト駆動開発

ペアプロで課題をPHPUnitを使ってTDDし、随所で全体でのコードレビューをするスタイルでした(課題はFizzBuzzの応用、途中で仕様変更の要望も入る)

ペアプロでは客観的な気付きによるメリットを体感できました
自分がドライバーを担当している時は「どうしましょう?」と問われて「うーん、どうしましょ…。」と全然頼りなかったと思います、すみません><
あと、今回は同じPCを交互に使ったので、普段使いのツールが違うとちょっと戸惑いますね
コードレビュー大会では、更に広い視野や考えが発見できてとても参考になります!
TDD歴が長くプラクティスも多いという事だと思いますが、@t_wadaさんによるレビューは多彩な切り口からの物で流石だなあと感心しました!


@cactusmanさんと@yamashiroさんによる「レガシー(カルマ)を浄化するJenkinsとテストの力
自分は参加できなかったのですが、こちらも大変盛り上がってました
@yamashiroさんの網羅的な資料で疑似体験できると思います!

懇親会

ワークショップの途中からピザとビールは始まってましたが、リラックスムードでの懇親会フェーズでは皆さんの現場での事例など個別にお話しを聞けました
自分の場合、現場への展開はまだ具体的に始まっていない段階なので、事例としてお話しできる事がなく残念でしたが、皆さんのお話を参考に、いづれなにかフィードバックできるようコツコツと検証と啓蒙を続けていきたいと思います!

最後に

グリーの方々、運営の方々、良い機会を提供頂きありがとうございました!
登壇者の皆さん、ペアプロでご一緒して頂いた方、お話しさせて頂いた方々、ありがとうございました!