torutkのブログ

ソフトウェア・エンジニアのブログ

Return to Java

およそ10年ぶりに仕事でJavaを使うことになりそうです(C#を推す人がいるらしいので決定ではないが)。とりあえず、ツールセットの再確認から(フリーのツール編)

ビルドツール

10年前は、Antが登場するちょっと前で、バッチコマンド(シェルスクリプト)でjavacコマンドを呼び出すか、make/nmakeでjavacコマンドを呼び出すか、でした。
(個人的にはSmartMakeを使ってMakefileを生成していましたが)

いまでは、Antか、Mavenか、Ivy(+Ant)か、といったところのようですが、さて、どれにしたものか・・・

参考

議論:Mavenはビルドに適したツールか?
Mavenの賛否両論が掲載されているので、比較検討のよい参照となります。生半可な知識でMavenを使うと怪我の元、ただし使いこなせば強力なツールというところか。
万人のためのオートメーション: Ivy による依存関係の管理
Ivyは今回ビルドツールを調べて初めて知ったもの。

継続的インテグレーションツール

10年前にちょうどエクストリームプログラミングが登場し、「継続的インテグレーション」がプラクティスとして紹介されました。今ではいくつかツールが登場し、プラクティスの実施がずいぶんと容易になりました。

今のプロジェクトではHudsonを使ってC++のアプリケーションソースをビルドしているので、慣れたHudsonがいいなと思っていますが、候補となる他のツールには、Apache Continuum、CruiseControlあたりでしょうか。

ソースコード静的検証ツール

10年前は、JLint位しかなかったのが、CheckstyleやPMD、FindBugs、Hammurapi、JCSC、lint4jなど多数のオープンソースツールが登場してきました。商用製品でもこの分野は幾種類も出ています。

参考

Bill Pugh氏によるFindBugs 1.3.9がリリース
http://japan.internet.com/developer/20060523/25.html
Checkstyleの使い方とルールのカスタマイズ
djUnit
FindBugsとPMDの比較(というか双方の使い方概説)

メトリクス計測ツール

ソースコード静的検証ツールに分類できると思われるが、ツールが多いので分けました。

動的検証(メモリリーク、プロファイル)ツール

10年前は、商用のOptimizeItやJProbeを使っていました。しかし、最近はオープンソースなツールが出ています。
Java JDK標準のjhat、NetBeans搭載プロファイラ、Eclipse TPTP

ドキュメント生成

ソースコードコメントからのAPIドキュメント生成はJDK標準のjavadoc、それからdoxygenがありますが、ここはjavadocでよいでしょう。

参考資料

エンジニアのためのJavadoc再入門講座 現場で使えるAPI仕様書の作り方

エンジニアのためのJavadoc再入門講座 現場で使えるAPI仕様書の作り方

エディタ

統合開発環境としては、EclipseNetBeans、最近フリーのCommunity版が登場したIntelliJ IDEAあたりがあります。コード補完機能が強力過ぎるので、このいずれかを使うのが定番です。
(個人的にはEmacs+JDEEで頑張っているところですが・・・)

デバッガ

統合開発環境上でデバッグするのが定番です。

テスト

ユニットテストは、JUnit4、TestNG結合テストはFIT、GUIテストのFEST-Swing、などがあります。