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

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

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

■■5. NAntとMSBuild、どっちを使う?■■

NAntとMSBuildのどちらを使えばよいか? その結論からいってしまうとどちらを使ってもよい。

   

あらら、そうなんですか。拍子抜けしました……。

   

というのも、両方のツールに決定的な違いがあるわけではないからな。ただ、ツールを選択する際に考慮すべき指針はいくつかあるので、それらを紹介しておこう。

   

はい。お願いします。

   

まずは、自分のプロジェクトでオープンソース・ツールの利用が可能かどうかだな。顧客によってはオープンソース・ツールの利用を制限しているところもある。そうなると、オープンソースのNAntを使うことは難しいだろう、MSBuildの出番だ。

   

確かにオープンソースの利用を許さないところもまだまだ多いですね。

   

次に既存のスキルだな。すでにAntなどほかの言語のビルド・エンジンを利用したことがあるのであれば、NAntを選択すると新たに学習するコストをそれほどかけずに自動化できるだろう。

   

私みたいなまったくの初心者の場合はどうすればよいでしょう?

   

まったく新しく始める場合は、MSBuildから使ってみればどうだ? .NET Framework 2.0に標準で付属してくるし、@ITの記事やNAgile.comの資料など日本語リソースも多いからな。

   

なるほどー、そういわれても迷っちゃいますね……どっちにしよう……。

   

滝よ、以前お前にいったことだがもう1度繰り返そう。

「お前が真にNAgileに目覚めるのなら、もはやN*ツールを使うまでもない」

あれ、前のNAgile記事のときの。そのせりふって冗談じゃなかったんですか?

冗談でいうわけないだろ。ツールはあくまで目的を実現するための手段であることを忘れるでないぞ。今日説明したMSBuildやNAnt以外にも、バッチ・ファイル(.batファイル)やWSH(Windows Script Host)、(将来提供される予定の)Windows Power Shellなど利用できるツールや技術はたくさんある。ビルドの自動化、その目的を達成するための手段はいろいろあるということだ。手段が重要なのではない。目的をいかに達成できるかがより重要なのだ。

!? ……なるほど、手段にとらわれて目的を見失うなということですね。分かりました、まずはMSBuildを使ってビルドの自動化に取り組んでみます。

   

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

   

先ほどのせりふは、てっきり師匠がどっかの映画のせりふをまねして、いってみたかっただけかと思ってました。

   

映画はまったく関係ない。確かに、キアヌ・リーブスに似てるとはよくいわれるがな。

   

似てませんよ……せっかく見直したところだったのに……。

■■6. まとめ■■

以上の説明で、ビルドの自動化について理解してもらえたと思う。

   

はい! さっそくできるところから自動化してみたいと思います!!

   

では、滝よ。そろそろ今回の出番も終わりに近づいているので、最後にビルドの自動化の目的を述べてみよ。

   

へ!? またまた唐突ですね……えっと、ビルドの自動化の目的は、面倒くさい手作業を自動化して楽ちんになろう! ということです!!

   

残念だが、その答えでは、正解半分、50点というところだな。

   

え? え? 何か間違ってますか?

   

自動化を行う目的は楽ちんになることではない。そもそもソフトウェアの開発は、すべての作業を自動化できるほど単純なものではない。自動化できない作業こそ、複雑で難しい問題を含んでいる。それらの難しい問題の解決により多くの時間をかけて取り組むために、簡単で頻繁に行われる単純作業は自動化し、時間的なゆとりをつくり出すのだ。それが自動化の意味だ。決して楽をするためだけではないことを心得よ。

   

なるほど。確かに目先の作業にばかり追われて、ほかの作業に時間をかけることができないということはよくありますね。

   

そうだろう。例えば、ほかの開発者や顧客とのコミュニケーションや、ソフトウェアの設計作業などは重要な作業であり、それらは自動化できない複雑なものだ。自動化は重要だが、すべてをまた自動化できないことを理解しておくこともまた重要なのだ。ソフトウェア開発に必要な作業をすべて自動化する……それこそ、不可能なミッション、Mission Impossibleだ。どんなすご腕のエージェントでも、それは実現できないことだろう。

   

あの……無理やり最近の話題に持っていこうとしてませんか? 映画の……。

   

エージェント滝よ、そのことも理解し、自動化に日々精進せよ。

   

……話聞いてないし。

 それはそうと、結局この指令書って誰が置いたんだろう……あれ、この指令書よく見たら裏にも何か書いてある。えっと……。

図4 指令書の裏
   

あっ! この下手くそな似顔絵は、やっぱり!!

……あれ? 師匠がいなくなってる……いつの間に??End of Article

 

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


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間