<?xml version="1.0" encoding="Shift_JIS" ?>

<document>

 <properties>
  <title>Velocity Design</title>
  <author email="jvanzyl@locus.apache.org">Velocity Documentation Team</author>
  <translator>熊坂祐二</translator>
  <original>design</original>
 </properties>

 <body>

 <section name="設計">

<p>
Velocity は、Java ベースのテンプレートエンジンです。
ソースコード、HTML、レポートの生成や、他のシステムと組み合わせて
テンプレートサービスを提供するスタンドアローンユーティリティとして
使用することが出来ます。
Velocity は、<a href="http://java.apache.org/turbine">Turbine</a>
Web アプリケーション・フレームワークと緊密に統合されています。
Velocity-Turbine は、Web アプリケーションを真の MVC モデルに従って
開発をすることができるテンプレートサービスを提供します。
</p>

<p>
    Velocity は、その利用に関して無数の可能性があります。
    テンプレートから、SQL や PostScript や Java ソースコードを生成したりできます。
    しかし、現実に使用可能な
    <a href="http://www.php.net/">PHP</a> や
    <a href="http://java.sun.com/products/jsp/">Java
    Server Pages</a> (JSP) の替わりを探している Web 開発者は、
    ユーザグループの本質となります。
 </p>

<p>
Velocity は、単純だけれども強力なスクリプト要素を
Web ページに埋め込むことを Web ページ・デザイナーに与えます。
これらのスクリプト要素は、Java コードにおいて定義されるコンテキスト・オブジェクトと関連して動作します。
コンテキスト・オブジェクト--本質的に、コンテキストの範囲内で名前によるオブジェクトの設定と取り出しをするたの get, set メソッドを提供する hashtable で-- Java コードから Velocity スクリプトに対して「フック」を提供します。
これらのスクリプト要素は、オブジェクトをコンテキストから取り出して、テキスト値としてこれらをWeb ページに挿入するために Web デザイナーを許します。
Web デザイナーは、(個々の要素の) ループや条件文（if/else）に対するいくらかの制御ができます。
 </p>
<p>
Velocity は、Java コードを HTML テンプレート・コードから切り離すことによって
モデル・ビュー・コントローラ（MVC）スタイルの開発を強化します。
JSP と違って、Velocity はページに埋め込み Java コードを許しません。
PHP と違って、Velocity は他の関数で機能を実装しません。
MVC 方法は、Velocity の素晴らしい利点のうちのひとつで、
より保守しやすく、よりよくデザインされた Web ページとなります。
</p>
<p>
MVC 方式の開発は時には、特に関係している開発者が MVC に不慣れならば、
Web サイトのためにより長い実験期間が必要になるかもしれませんが、
この方法は、長い目で見れば、時間を節約することなります(我々を信じて欲しい。
我々は、この問題を長期間、扱ってたのだから)。
MVC による抽象化は、Web ページ・デザイナーがソフトウェア・エンジニアの
Java コードを混乱させることを防ぎ、
プログラマが過度に Web サイトの見た目に影響することを防ぎます。
Velocity は、Web サイト開発での人々の役割を明確に定義します。
 </p>
<p>
    Velocity は、
    抽象文法ツリーを生成するために JJTree 拡張を利用した
    <a href="http://www.metamata.com/javacc/">JavaCC</a> (Java Compiler
    Compiler) によって生成された文法ベースのパーサを使用します。
</p>
        
<p>
Velocity の設計コンセプトは、
<a href="http://www.webmacro.org/">WebMacro</a> から取り入れています。
Velocity プロジェクトに関係しているそれらは、
WebMacro プロジェクトに開発と設計にかかわった方々に感謝をいたします。
</p>

</section>

</body>
</document>
