【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  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-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

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

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

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

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?