0

ページで実行する JSP コードがいくつかあります。

UI を常に更新しているが、Tomcat サーバーを持っていない UI デザイナーがいます。彼はプログラマーではないので、そうしない方がよいでしょう。

しかし、UI を更新するたびに JSP 関連のコードをカット アンド ペーストしなければならないのは面倒です。

とにかくこの問題を処理する方法はありますか? 私たちは同じファイルを保持することを好みますが、JSP を気にせずに UI の動作を確認できるように保持しておき、新しいファイルをチェックインするときに JSP 関連のコードをカット アンド ペーストする必要がないようにします。

このようなコードの 1 つの例は、ユーザーに応じて表示される特定のナビゲーション メニュー項目があることです。

Tomcat 認証を使用しています。AJAX を使用してユーザー情報を取得することも考えられますが、安全性は低くなりますか? アプリケーション内の他のすべては AJAX です。

4

1 に答える 1

0

ここでの問題は、この人物がチームで働いていないことです。むしろ、彼は彼らのために作品を作成しています...そしてそれは双方向です. 読む。

私はフロントエンドの開発と管理の両方を行っています。この UI 担当者が私のチームにいた場合、Tomcat サーバーをセットアップするよう彼に強制します。彼はただいくつかのことを学ぶ必要があります。

実際、適切に実装された場合、JSP は、Rails + ERB、PHP、.NET などのビュー用の他のサーバー側マークアップ言語と大差ありません。同じ条件チェック、for ループ、認証チェック - 必要なすべての基本的なビュー レイヤー ロジックが利用可能で使用可能です。

彼が Java プロジェクト / チームに所属している場合は、Java フロントエンドを学ぶ必要があります。それはとても簡単です。

彼の主なタスクは基本的なものであるべきであり、率直に言って、それらを実行するために Java IDE をインストールする必要すらありません。彼らです:

  1. ソースコードの取得/プッシュ + 差分の分析 (任意のソース管理クライアント)
  2. ローカル環境に最新のものをビルド / デプロイ (スクリプトまたは .bat ファイル)
  3. 実行中のアプリで作業する*

(*) 最後の部分はややこしいところです。実行中のサーバーで直接作業し、更新をコピーする前に誤って新しいデプロイを実行した場合、失敗します。シンボリック リンク (Windows でも使用可能) を使用すると、コンパイル後にのみ表示されるファイル、ロック、または最新のコードを取得する際の同期の問題など、すべて問題が発生する可能性があります。

私が見つけた最も効果的な方法は、コード リポジトリの場所 (ビルド前) で作業し、2 つのスクリプトを作成することです。

  1. ビルド+デプロイ - 実行中のサーバーを停止し、ディレクトリとキャッシュを吹き飛ばし、最新のものをビルドし、再デプロイします
  2. 更新 - ビュー ファイルおよびその他の必要なディレクトリを展開ターゲットと同期します。Tomcat 構成でホット デプロイを必ず無効にする必要があります。そうしないと、メモリ リーク エラーが発生します。

とはいえ、Java は、UI を開発するのが最も難しいエコシステムの 1 つです。コンパイルされた性質と複雑な環境要件により、開発は遅くて退屈になり、まともな製品を作るにはさまざまな人やシステムに大きく依存します。

JSP 自体は、上記のように機能しますが、ほとんどの場合、さまざまな方法でインクルード、タグファイル、パーシャル、フレームワークを使用して構成されています。これは、UI 担当者にとって最悪の悪夢になります。GSP (Grails から) は組織の問題の多くを解決しますが、開発チームには柔軟性が必要です。それでも、それは「理想的な」ソリューションではありません。

JSP 構文 - JSTL、C:tags などは、さらに大きな問題を引き起こします。プログラミングも IDE も使用しないフロントエンドの人々は、条件付きロジックやループを作成またはカスタマイズするときに、メソッド、オブジェクト、パラメーターなどを検索する方法がありません。開発チームはこれらをページに事前に書き出すことで支援できますが、変更や機能強化が必要な場合はいつでも、会議、会話、および妥協が必要です.

長期的には、REST/JSON ベースのサービスを使用して 2 つの間で対話することにより、Java アプリを別のより柔軟で機能的なフロントエンド テクノロジ スタックから抽象化する必要があります。(補足: スケールのあるパフォーマンス/アプリについては、カスタム プロトコルまたは Web ソケットのいずれかを使用していることを確認してください)。

私の好みは node.js です。なぜなら、フロントエンド開発者は、彼らが最もよく知っている言語である Javascript / JSON を使い続けることができるからです。ただし、特定のフロント エンダーが快適に使用でき、設計に使用できるものであれば何でもかまいません。

重要なのは、フロントエンドとバックエンドの両方でボトルネックを解消することです。RESTFUL API がコラボレーションのキー ポイントとなるため、どちらのトラックも迅速に開発および反復できる必要があります。

最後に、フロントエンドの開発者/デザイナーを志望しているが、Java (またはその他のサーバーサイド技術) しか知らない人のために、何か新しいことを学ぶように挑戦します。ユーザー向けのテクノロジは常に変化しており、最近ではその変化が加速しています。UI の競争力のある製品が必要な場合は、製品を競争力のあるものにするテクノロジーに投資する必要があります。

于 2013-03-11T20:10:01.740 に答える