Java Hot Topicセミナーで講師をやってみて

昨日、Sunの用賀本社にてJava Hot Topicセミナーがありました。
このブログで告知したとおりHudsonについてお話ししました。
今回の発表はHudsonを知らない人を対象にしておりました。

それで、ツールをうまく使えばこんな感じで開発できるのか、という雰囲気をつかんでいただければと思っています。
何分、自分は舌足らずなもので、わかりにくかったかもしれませんから、その所を以下にQ&A形式でまとめてみました。


Q.Hudsonは何をするものなの?
A.大まかには継続的なソフトウェアプロジェクトのビルドとテストと、外部実行されたジョブのモニタリングを行います。
例えば、cronを使ってビルドスクリプトを定時実行し、その結果をメールにて配送するようなことをしていたかもしれません。
また、JUnitのテストリポートやFindbugsのリポートを見やすくするために何かしらのツールを作っていたかもしれませんし、それぞれのリポートをまとめる必要がありました。
また、システムテストでプロセスの監視のツールも作っていたかもしれません。
Hudsonはそのようなことを肩代わりしてくれます。
以下、参考に。
http://hudson.gotdns.com/wiki/display/HUDSON/Meet+Hudson


Q.CIの概念は新しくないけど、Hudsonが出る前はどうだったの?
A.第一世代のCIツールでCruisecontrolなどがありますが、実務で使うにはいろいろと問題がありました。
ようやくHudsonなどの第二世代のCIツールが、実務で使えるレベルに到達するようになりました。


Q.Hudsonの設定などの置き場所はどこ?
A.$USER_HOME/.hudson以下に設定ファイルやプラグイン、各jobの設定やワークスペース、ログなどがあります。
DBMSを使うわけでなく設定はテキストファイルに書き出します。
以下、参考に。
http://hudson.gotdns.com/wiki/display/HUDSON/Administering+Hudson


Q.Hudsonのプラグインはどうなっているのか?
A.Hudsonの各処理にフックしてプラグインが呼び出されます。プラグインの開発者は拡張ポイントの実装を行います。
以下、参考に。
http://hudson.gotdns.com/wiki/display/HUDSON/Extension+points
http://hudson.gotdns.com/wiki/display/HUDSON/Plugin+tutorial


あと、以下に川口さん自ら執筆されたHudsonについての記事があります。
自分が説明するよりも格段にわかりやすい内容になっています。
http://gihyo.jp/dev/feature/01/hudson


他のCIツールとの比較は、情報は少々古いですが、以下のリンク先が参考になると思います。
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix


それと、今回のセミナーではお話ししなかったプラグインの作成については、以下のリンク先が参考になると思います*1
http://d.hatena.ne.jp/fits/20080502/1209726765
http://d.hatena.ne.jp/cactusman/20080518/p1
http://d.hatena.ne.jp/cactusman/20080525/p1


Hudsonについての意見やご質問は、このブログのコメントや自分宛てにメールしていただいても構いませんし、メーリングリストのほうにしていただいても構いません*2


それで、講師をやっていみて、余裕がなくちゃんと前を見れていなかったですし、大事な部分が抜けていたりで、プレゼンがまだまだだなと思い知らされました。
準備もさることながら、場数が足りないなと実感しました。
という感じで落ち込んでいます。


でも、Hudsonの宣伝と自分のいい経験になったと思います。
講師として呼んでいただき、岡崎さん、大渕さんありがとうございました^^

*1:自分のやりかけのチュートリアルも含まれてますが^^;

*2:間違ってるか所は是非ご指摘ください