2012-02-18 9 views
2

私は最初のJava Webアプリケーション(Spring/Hibernate/Freemarker)を開発しています。私の唯一の関心事は開発のスピードです。Java Webアプリケーションを効率的に開発するには?

PHPで開発していましたが、結果を見るためにブラウザをリロードするだけで十分でした。 Javaの場合、私はIDEの「リソースの更新」をクリックするだけで、テンプレートの変更を見ることができます。このような開発方法は、再導入に数秒かかるため、実際には効率が悪いようです。

また、私はテンプレートを準備する人でもありません。それはグラフィックの男だけであり、彼も同様にそれらをテストしたいと考えます。彼は独自のアプリケーションサーバを持つ必要がありますか、アプリケーションの再デプロイメントを続けるか、ページを "リロード"するだけの "PHP"方法がありますか?

+1

私はEclipse/TomcatでWebappsを開発/実行しています.JSPの変更はサーバーに自動的に展開されます。だから私のために、ブラウザで押すF5を開発することは十分です。 Javaクラスを変更すると、再起動が行われます。実際にはIDEに依存しているように思えますが、Eclipseでは通常1秒未満で展開されています。 – proko

答えて

6

はい、PHPやRailsなどの動的言語やプラットフォームに比べ、開発のスピードは大きな懸案事項です。もちろん、Javaはさまざまな分野で勝利が、ここではいくつかのヒントされています

  1. は再配備にユニットテストのを好む - あなたはユニットテストで快適に感じる場合は、大幅に再デプロイの量を減らします。完了したら、一度だけ完全な機能を導入していました。すべてのロジックは既にテストされているため、何度も何度も何度も展開する必要はありません。

    また、私がGUIで作業を開始したとき、私は今すぐ動作するので、バックエンドに戻る必要はありません。反復的な再デプロイを見たら、JUnitを使ってテストします。

  2. より良いフレームワーク。春のMVCは非常に良いとはいえ非常に保守的で、の純粋なです。 Play! frameworkは、オンザフライでクラスを再コンパイルすることで納期を短縮できると聞いています。

    一方、Grailsのような最新のJVMフレームワークは、ドメイン、CRUD、GUIを作成するため、開発のスピードアップにつながります。

  3. 一部のフレームワークは、のルースカップリングを促進します。 FreemarkerまたはプレーンJSPを使用している場合は、GUIで個別に作業するのは難しいです。しかし、Wicketのようなフレームワークは、プレーンなHTMLで書かれたテンプレートからかなりの程度のJavaコードに分解されます。また、私は現在、静的なHTMLのみを提供しているアプリケーションに取り組んでおり、動的コンテンツはAJAX/RESTサービスとJavaScriptを介して更新されています。

  4. JRebelを購入し、JVMの内蔵ホットスワップ機能を確認してください。時にはコードを変更しても、再デプロイメントを意味するわけではありません。

  5. IntelliJ IDEAは、ウィンドウがバックグラウンドになると、その場で変更されたリソース(HTML、JavaScript)を更新できます。つまり、ウィンドウをIDEからブラウザに切り替えると、リソースが更新されます。おそらく他のIDEもこれを行うことができます。

+0

実際にプレイには残念な点は、Inversion of Controlのアプリケーション構造に従わないということです。それ以外の場合は、Webアプリケーションを開発するのに適しています。 –

1

Play frameworkちょっと調べてみてください。コード(HTML、CSS、Java)を更新し、ブラウザの更新ボタンを押した直後の結果をすぐに確認できますアプリケーションを再デプロイします。

2

配置を自動的に更新するようにカスタマイズすることができます。Javaサーバーがオンザフライで更新するため、Webページの変更で実際にアプリケーションを再デプロイする必要はありません。あなたの2番目の質問については、いくつかの共通のインストールをコンピュータの数に見えるように作成し、新しいページを展開にコピーするIDEをカスタマイズする(またはスクリプトを書く)ことができます。

関連する問題