かとじゅんの技術日誌

技術の話をするところ

地味かもしれないがこれからのJavaにとってとても重要なHOT Deploy

HOT Deploy

Seasar2.4からはSMART Deployという機能が実装されています。
SMART Deployには、

  • HOT Deploy
  • COOL Deploy
  • WARM Deploy

が存在ます。

COOL, WARMは省略するとして、HOT Deployを紹介します。

これまではJavaのウェブ開発というのは、記述したコードを反映するためにアプリケーションサーバの再起動が不可欠でした。
無駄な待ち時間、思考の中断、再起動させないでコードを書くプレッシャーなど、大きな問題が横たわっています。

HOT Deployでは、ソースコードの修正・追加をアプリケーションサーバの再起動を行わずに、即座に反映させることができる技術です。これにより、スクリプト言語のような感覚でコーディング/デバッグ作業を繰り返し行えます。
実感してみるとわかりますが、ほんとに自然にプログラミングでき、精神的な負担がほとんどありません。革命的です。

タイプセーフ言語の弱点を克服

スクリプト言語とタイプセーフな言語の生産性

ちょいと古いエントリですが、、、重要なので、

スクリプト言語が簡単なサイトを作るのには向いているが、大規模なサイトには向いていないと言われるのは、コードの量が増えると間違いを探すコストが増えるためと言うのもあるのではないかと思います。
ある程度の分量のコードを書いてもほとんど間違わないと言うような達人の場合、スクリプト言語は、かなりの生産性を達成でしょう。

ほんとスクリプト言語って間違い探しが大変ですね。大規模サイトだと間違い探しに1日費やすなんてことはよくあります。
達人より標準的なエンジニアを対象にしたフレームワークのほうがプロジェクトを成功に導く可能性が高いと思います。

その点、Javaのようなタイプセーフな言語は型チェックが厳しいのでコードを書いている段階で単純なシンタックス的な間違いは排除できます。
それにIDEのEclipseを使えばソースコードを保存した段階でコンパイルがかかるのでコンパイルすることは無意識なレベルだと思います。ゆえに、大規模開発においてはコンパイラ+IDEの恩恵はなくてはならないものだと個人的に思っています。

しかしながら、アプリケーションサーバへのデプロイコストが馬鹿になりません。
その問題を解決してくれるのがHOT Deployです。
つまり、タイプセーフなJavaの弱点を克服しているといっても過言ではないと思います。
しかも、Teeda+S2Daoではコードを書く量が極端なぐらい減りますから、HOT DeployとあいまってHL(Heavyweight Language)ではなくLL(Lightweight Language)に分類してもよいのではないと思うぐらいです。

地味かもしれないですがこれからのJavaにとってとても重要な技術になっていくと思います。