【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

連載
NAgileで始める実践アジャイル開発

第4回 ミッション:ビルドを自動化セヨ!

NAgiler 黒石 高広
2006/09/06
Page1 Page2 Page3

登場人物:
師匠:ナジャイラ師(マスター)(♂)
NAgiler(ナジャイラー=.NETにおけるアジャイル開発の実践者)。謎の多い人物。ちょっと偉そう。だが、実は弟子思い。
弟子:点網 滝(てんもう たき)(♀)
.NET開発者。ウォーターフォール型の開発を行っているが、アジャイル開発を明るく真摯(しんし)な態度で学ぼうとしている。
Back Issue
1
.NET+アジャイルなら本当に幸せになれるのか?
2 ソフトウェア開発をシンプルにする考え方のコツ
3 ソフトウェアの良い設計を行うコツ
※ご注意 ……本稿の物語やそこで交わされる会話はすべてフィクションであり、実在の人物、団体などとは一切関係ありません。登場人物の役柄はストーリー上の設定であり、筆者や読者を代表するものではありません。あくまでフィクションとしてお読みください。

■■1. はじめに■■

師匠〜。

 
ん? どうした? そんなに慌てて。
 

大変なんです!! こんなえたいの知れない紙が机の上に……。

何だ、恋文でももらったのか?

恋文って、いつの時代ですか……。違いますよ。だいたい、そんなうれしいものだったら師匠に見せませんよ。

それもそうだな。なになに……。

図1 指令書のイメージ図

……。

   

なるほど、確かに変わった恋文だな。

 

だから恋文じゃないですってば!!

 

ハハ、いまのは軽い冗談だ。朝飯前の豚カツぐらい軽い冗談だ。

 

……そんなの全然軽くないじゃないですか。もう、まじめに相談してるのに……。エージェント滝とか訳分かんないし……。

 

あっ!! 分かった! きっと私に一方的な好意を抱くストーカーが私の気を引くために、これを置いていったのね!? 美しいのも罪だわ……。

 

違うだろ。落ち着け。これは……書いてあるとおりじゃないのか? ビルドの自動化をしろと。まぁ誰がこれを書いたかは分からんがな。

   

ビルドってあれですよね? Visual Studioのメニューにある。

   

そうだな。ただ、この書がいいたいことは、単なるコンパイルのことじゃなくてビルドにかかわるより広いことを指していると思うぞ。

   

より広いこと、というと?

   

そうか、そういえばまだビルドの自動化について話していなかったな。よい機会なのでNAgileでも重要な奥義の1つである「ビルドの自動化」について、今回は説明しよう。

   

奥義の1つって、何だかすごそうですね。師匠、お願いします。

   

■■2. ビルドの自動化とは?■■

そもそもソフトウェアはコンパイルだけ通ればそれで動くというものではない。例えば、滝がいま開発しているソフトウェアを顧客が使えるようにするには何をすればよいか?

 

え、唐突ですね。えっと……いま開発しているのはWebアプリケーションなので、まずは最新コードを取得して……。

 

そうだな、1人で開発しているわけではないから、バージョン管理ソフトウェアに保存されている最新コードを取得するのは重要なことだな。

 

それをコンパイルして……えっと、次に完成したプログラムをお客さんが使えるサーバにコピーして……そっか、必要な初期データもデータベースにそろえなきゃ……。

 

そこだ、そこ。

 

え? どこどこ?(キョロキョロ)

 

そんなベタなボケはいらん。滝がいまいった作業はどうやって行っているんだ? と聞いているんだ。

 

え? それは……ファイルのコピーなら、エクスプローラを開いてマウスでドラッグして……。

 

つまり手動で行っているんだな?

 

はい。

 

それらの作業は、開発期間中に何回も必要とならないか?

 

……はい。確かに何回もやってます。

 

それらを毎回手動でやっているんだな?

 

……はい。

 

なぜそれらを自動化しない?

 

……わーん(涙)、そんなにいじめないでくださいよ〜。確かに普段は特に深く考えずに手動で作業を行っていました……ごめんなさい……。

 

別にいじめているわけじゃない。

 さっき滝がいったようなビルドに関連して必要となるもろもろの作業は、ソフトウェア開発の中で頻繁に行う必要がある作業でもある。それらは単純な作業が多いので、ついつい手動で済ませてしまいがちだが、そこでよく考えてみてほしい。この作業を自動化するといったい何分節約できるのだろうか? とな。

 そこで自動化の出番というわけだ。まぁ1回のビルドでソフトウェアが完成し、ビルドを行った後のバグや仕様変更による修正もないというのであれば、別にビルドの自動化は必要ないかもしらんがな。

 

うう、まだいじめる……今日は“どS”キャラですね……。

 

いまのはただの皮肉だ。私が伝えたいことは分かるな?

 

……はい。自分の未熟さと自動化の重要性を痛感しました……。

 

分かってくれたようだな。

 自動化というのはアジャイル開発においても非常に重要なキーワードだ。ソフトウェア開発の中の無駄を省くという考え方に基づいているからな。それこそ、ビルドに関係なくても自動化できる作業はたくさんある。

 例えば、バージョン管理ソフトウェアから最新バージョンのソース・ファイルを取得し、ほかの開発者が作成したコードを自分の開発環境に取り込む作業、テストの際に生成された不要なファイルやデータを削除する作業など、ソフトウェア開発の中で繰り返し行う可能性の高い作業ほど、自動化を行うことで得られるメリットは大きいのだ。

 

確かに普段何げなく行っている作業でも自動化できるものはたくさんありそうですね。では、どうやって自動化を行えばいいんですか?

 

まぁ慌てるでない。自動化に利用できる技術やツールは数多く存在する。今回は、.NET開発で利用できるビルド・エンジンについて解説しよう。

 

はい! お願いします。

 

 INDEX
  NAgileで始める実践アジャイル開発
  第4回 ミッション:ビルドを自動化セヨ!
  1.ビルドの自動化とは?
    2.MSBuildとNAntの概要
    3.NAntとMSBuildどっちを使う?
 
インデックス・ページヘ  「NAgileで始める実践アジャイル開発」

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています