第二回1000speakersで話したこと

参加したことは書いたので、発表したことをのせる。

頼れる執事Hudson - cactusman [2-19]

D
タイトルは「頼れる執事Hudson」
このタイトルは、高井直人さんがWEB+DB PRESS Vol41に、「頼れる執事がベストプラクティスをサポート」というタイトルでHudsonの記事を書いていまして、その部分を拝借しました。
Hudsonの公式サイトは
https://hudson.dev.java.net/
で、そこからHudsonはダウンロードできます。
また、デモで紹介したEmotional Hudsonプラグイン(ジョークプラグイン)はmarsのメモの人が作成されたプラグインです。
marsさんありがとうござす。
プレゼンで使わせてもらいました。
http://recompile.net/2007/10/webdb-press-1.html

ちなみにUstのログを見て感想なんかを。
まず最初に、サボテンマンじゃないからね。
cactusman、さぼてんだ!
これだけはゆずれない。
それで、前置きはひどい話を持ってきた。
タグクラウドが意外と受けた感があって、予想外。
そして本題へ。
ちなみにニコ動のサムネで写ってるのは高○名人。
実物を知らない人が多くて誤算だった。
これも予想外。
本題はHudsonは簡単だよってのを強調したかった。
これは出来たと思ってる。
ログのほうでJavaWebStartから使えるよって意見があって、それはもちろん知っているんだけど、回線がどういう状況かわからないし、見ている側が混乱すると思ったからやめた。
あと、Mavenって何?っていうのも見たけど、MavenApache Projectにある、Javaのソフトウェアプロジェクトを管理するツール*1
まぁ、ビルド+αをするツールと思ってもらえればいいと思う。
何がうれしいかと言うと、ソースやテストコードなどが決まった位置で扱われて、コマンド一発でコンパイル、テストなどをやってくれる点。
なので、HudsonなどのCIツールと使うのにものすごく親和性がいい。
興味がある方は、この辺の話は以前行ったjava-ja第五回を参考にしてほしい。
HudsonとMaven2の絡めかたは以前書いたのブログエントリーを参考にしてほしい。
で、Hudson自体はチェックアウトとスケジューリング、成果物へのアクセスを提供するものだと思ってもらえたらいいかな。
成果物へのアクセスを提供ってのは、Hudsonはビルド後の成果物はパーマリンクでアクセスできる。
で、Hudsonでのビルドはビルドツールに依存しているわけで、ビルドツールは別途必要になる。
MavenだとHudsonはいろいろと対応しているので、恩恵が受けられるけど、他は特にうれしく思えることが少ないかと。
でも、Hudsonの立場としてはビルドツールに依存する部分は少ないわけで、C++のプロジェクトもPerlでも使おうと思えば使えるんだな。
やったことないけど。
それで、こういうCIツールを使う利点なんだけど、やっぱり「自動で出来ることは自動で」という思想を実践できる点だと思う。
そうすることで、問題を早期発見しデグレートしにくくする。
ただ、これはテストを充実させる必要があるんだけど、プログラマにとっては作業は増えても気持ちは楽になるんじゃないかなと思ってる。
品質もあがるしね。
それと、複数環境での実行を試せるのも大きい。
あと、プロジェクト初期に顧客に納める成果物を作るプロセスを確立することで、リリース直前に納められない事態を回避できる。
とりあえず完璧じゃなくてもデモが見せれるものであったり、それなりの品質のものを提供できるのはいいことだと思う。
それで、ContinuumとCruiseControlとかの他のCIツールの比較は?、ということがログに書かれていた。
CruiseControlは使ったことがないので割愛するけど、Continuumは自分が使っていらいらして投げ出した。
Continuumの嫌な点はMavenプロジェクトだとPOMに縛られていて、POMに苦しめられる点だ。
Mavenで散々POMに苦しんでいるのに、また苦しむのかと。
あと、自分が使ったときはJettyと一体になってたけど、本体と分離することが出来ていないようで、好きなサーブレットコンテナが選べない。
これが特にダメダメな点。
で、Hudsonが確実に他のCIツールよりもいいと言い切れる点は、多言語対応だろう。
日本語化も少しずつだけど進んでるし、他にもフランス語とドイツ語が翻訳されつつある。
あと、手軽で簡単なのはHudsonだと思っている。
というわけで、初めて使うにはHudsonいいよ、と思う。
今は中の人だけど、そうじゃないときにも本当にそう思ってた。
Hudsonについては他に意見があればじゃんじゃんコメントして欲しいし、ニコ動にコメントするのもいいと思う。
で、今は中の人だけど、自分の実力で正直やっていっていいのだろうか、と今でも考える。
考える暇があったら手を動かせ、とも思ってる。
いろいろと悩んだり考えることは、実際はあるんだけど、OSSに参加するチャンスなんて自分から引き寄せないと、ないと思う。
あとコミュニティは自分を確認するいい場所だと思う。
自分がすごい、すごくないじゃなくて、みんなの考えている方向とかソフトウェアのトレンドとかがわかって、ものすごくいいと思う。
無理して背伸びする必要はないと思うけど、一段ずつ階段を上ればいいんじゃないかな。
自分はそうしようと思ってる。


「0.1は0じゃない」by java-ja