phpでTDD&CI ワークショップに参加してきた。

TDDやCIを php で実施する方法をワークショップ形式で学ぶ勉強会に参加してきました。
場所は六本木のグリー本社。主催は [twitter:@tsuyoshikawa] さん。
前半は座学で、後半はTDD組とCI組に分かれてのワークショップという形式でした。
その感想記事です。

印象に残ったこと

どのような内容だったかは「phpでTDD&CI ワークショップ」でググるとたくさん記事が出てくるので、それらを参照した方が良いと思うです。

内容を事細かに記録するのは苦手なので、印象に残ったことを列挙します。

レガシーコード改善ガイド

passionate programmer である [twitter:@tsuyoshikawa] さんが絶賛していた本。
タイトルは聞いたことあるけど読んだ事ないので、読もうと思っています。

「レガシーコードとは、自然に風化してしていった(エントロピーが増大していった)ソースコードのこと。」
という言葉にはっとしました。

現代的ソフトウェア開発の三本柱

id:t-wada さんの発表で出てきた言葉

現代的ソフトウェア開発の三本柱は

  1. バージョン管理
  2. テスティング
  3. 自動化


これは、三本足の椅子のように、一本でも欠くと崩れてしまう。

バージョン管理は、言わずもがなですよね。修正する度にコメントで元の部分を残すとか、ファイル名を変えてバックアップとるとか、そんな煩わしいこと誰もしたくないですし。
でも、テスティングも自動化も、した方が良いとは思っていても、なかなかできてないところも多いはず。だからこそ、この勉強会にたくさんの人が参加したわけですから。

CI のやり方は人それぞれ。

さぼてんまんid:cactusmanさん。
言語/最終成果物/コンテキスト/目的 によってやることが違う。
だから、言うことも人それぞれなのだと。
簡単なことから始めると良いとのこと。

どの分野においても、銀の弾丸はないということですよね。

怖いよ―怖いよ―

[twitter:@yamashiro] さん
php のあるある話をされていました。 まぁ、 php に限らないですよね。たぶん。

"不吉な匂い" ってのは「リファクタリング―プログラムの体質改善テクニック」にも出てきますけど、プログラマにとっては本能的に感じられるようにならなければならない事の一つかなとは思います。

ワークショップ - Jenkins による CI 実践

自分は CI の方を選択しました。t_wada さんによるTDD ワークショップはとても魅力的ではあったのだけど、受けるならもっとしっかりと時間がとれるときに受けてみたいという気持ちが大きかったので。

また、最近、trac を導入する目的で kanontrac lightning の後継 ) を利用したところ、同時に jenkins もインストールすることができたのですが、試してみたはいいけど、いまいち php と組み合わせた使い方が分からなかったので、せっかくならば本腰を入れてやってみようと思い、こちらを選択。

内容は、 [twitter:@yamashiro] さんの 死霊資料 ( id:Yamashiro0217:20110619:1308491991 ) が秀逸なので、これを見ればほとんどの流れはつかめるかと。
ただ、自分は kanon によるインストールを行っていたのでパスが少々異なっていたり、前準備は万端だと思っていたのに、実際には正常にインストールされていなかったために手間取ったことがいくつか。

このへんについては別途記事にまとめるつもり。


また、さぼてんまんid:cactusmanさんに、jenkins のアイコンのカスタマイズ方法や、プラグインを作る上で参考になること(通知系のプラグインは比較的わかりやすく参考にしやすいとか、SCMと連携するプラグインは生臭いコードが多いとか)なども聞くことができ非常に有意義な勉強会でした。

参加してみて

僕は、テスティングとその自動化というのは、開発の現場において絶対に必要となっていく技術の一つだと信じています。

とはいえ、なかなかうまくいかないことが多いのも事実。
実際にコードを書いててテストが後回しになってしまうことは多いですし、そもそもテストが書かれていないコードもたくさんある。

そんな中でも、少しずつでもテストコードを書き、継続していくことができれば、幸せになれるんじゃないかなぁ、と思えるような素晴らしい勉強会でした。

参考リンク

レガシーコード改善ガイド
http://www.amazon.co.jp/dp/4798116831
PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料
http://d.hatena.ne.jp/Yamashiro0217/20110619/1308491991

編集履歴

2011/07/06
"さぼてんまん" "違う" と、はてなスターでご本人から指摘を受けたので修正。「さぼてんまん」さん ではなくて 「さぼてん」さん らしい。ちなみに、本気で前者だと思っていましたw