未分類

全てのソフトウェアエンジニア必携!? – Jenkins実践入門 #jenkinsja

Jenkins実践入門を頂きました。
NTTデータのトラブルシューティングやパフォーマンスチューニング、開発生産性向上のエキスパートである@lino_sの著・監修という安心クオリティ!

まとめ:
・スクリーンショットが豊富で親切・わかりやすい
・Jenkinsを使ったことない人にお勧め
・既に使っている人も運用・トラブルシューティングノウハウを獲得できるのでお勧め

Amazon:
楽天:

【送料無料】Jenkins実践入門

【送料無料】Jenkins実践入門
価格:2,919円(税込、送料別)

もう少し細かい書評・感想:
JenkinsはCI(Continuous Integration:継続インテグレーション)ツールと呼ばれるもので、ソフトウェアを自動的に、頻繁にビルド、結合、テストして品質をあげることを目的としています。

拙作Twitter4Jでは2009年からJenkins(当時はHudsonという名前だった)を使っており、今や「JenkinsなくしてTwitter4Jはありえない」くらいお世話になっています。

テストファーストでテストケースを書いてから実装コードを書き、テストケースをグリーンにしてからコミットするのは気持ちがいいもの。しかし人は怠惰で傲慢な生き物です。
いくらテストケースをしっかり書いても後々に「この修正は安全なはず」と奢ってコミット、テストをせずにリリースしてしまい、実は既存のテストケースで発見できたバグが後になって発覚するということがしばしばおきます。
新しいコードが副作用を起こさないかどうかを確認するリグレッションテストは全テストケースを実行しなければならず、それはプロジェクトによっては数十分、はては数時間という単位で時間がかかります。「自分は完璧」と思っていることを改めて証明するために数十分、数時間かけてテストを通し、コミットを待つのは大変ストレスがかかります。
そこでJenkinsの出番。コードをコミットしたら勝手にテストをして結果を記録してくれます。テストをしている間も開発者は新しいコードを書き始め、テストが終わる前に次のコミットをしてしまうこともできるのでストレスが減ります。
また、リグレッションが発生した場合はどのコミットでどのテストケースで失敗したのかをJenkinsのWeb画面で確認できるため問題の発見・追跡も大変容易になります。

正直Jenkinsは非常にユーザーフレンドリーなのでちょこっと使うのにそれほど迷うことはありません。
しかしこの本はJenkinsのインストール方法といった入門だけにとどまらずSVNやGitとの連携、issueトラッカー(Trac、Redmine、JIRA)との連携方法からSeleniumと連携したWebアプリケーションのテスト方法など「実践・入門」と掲げたタイトルに見劣りしない濃い内容になっています。

・Jenkinsを使ってみたいけれどもイマイチとっかかりがない
・インストールしてみたけれどもどうしたら便利になるのかよくわからない
という層にはピッタリの本です。

私は既にTwitter4Jでぼちぼち使っているので序盤はナナメ読みしてしまいましたが、Jenkinsは使えば使うほど可能性が広がり、また自分でプラグインを作って拡張してみたくなるもの。
この本ではもちろんプラグイン開発の基本も解説しています。アイディアだけは色々とあるので今度この本を参考にしながら作ってみたいと思います。

またJenkins自体のチューニング、トラブルシューティング方法、そして大規模な開発で必要となるマスター・スレーブ構成時の運用方法など体系的に書かれているのでいざという時のため手元に一冊あると安心です。

同じく@lino_sの著書、「現場で使えるデバッグ & トラブルシュート Java編」も大変オススメです。

Amazon:
楽天:

関連記事:
Jenkins実践入門発売にあたって – Linoブログ
「現場で使えるデバッグ & トラブルシュート Java編」を頂きました – 侍ズム #samuraism