1

解決しなければならないビジネス上の問題があります。明白な解決策はエンタープライズ Web アプリケーションです。これは、必要な機能を提供する、ローカルでホストされる Web サイトです。

この Web アプリケーションを構築したいのですが、次のように構築します -

  • 1回限りのソリューションというよりは製品です。さまざまなクライアントに合わせてカスタマイズできるように
  • この Web アプリケーションの「修正」を提供できるため、操作への影響を最小限に抑えてバグを削除し、拡張機能を追加できます。
  • Web アプリは、さまざまなデータベースや既存の認証システムと連携できる必要があります。

これは可能ですか?これについての既知の方法があるのは十分に一般的なアプローチですか?Spring のようなアプリケーション フレームワークを使用したり、フレームワークへの依存を最小限に抑えたりする方がよいでしょうか?

また、私を導く本へのリンクや参照は大歓迎です。

よろしくお願いします StackOverflow!

(このプロジェクトに着手する前に知っておくべきことをすべて知っているわけではないように感じます。考慮していないことや考慮すべきことを遠慮なく指摘してください)

4

3 に答える 3

2

ソフトウェアの開発、特に。再利用性のためには、どの部分/機能がユースケース間で共通しているか、どれがそうでないかを分析し、再利用可能な (ライブラリ) コードとカスタマイズされた/特殊化されたコードの間の線を引く必要があります。

将来的にどのようなユース ケースを期待するか、またはサポートしたいかを知っている場合、これは実現可能です。
そうしないと、最初から任意の機能を一般化しようとするべきではありません。将来何が必要になるかがわからないからです。

Java は、JDBC によるユニバーサル DB サポートなど、さまざまな機能の優れた抽象化を提供します。

まだお持ちでない場合は、JBoss や Glassfish などのアプリケーション サーバーをご覧ください。それらは、Web アプリケーションに多くの基本機能を提供し、コンポーネント間の非常に疎結合をサポートし、高度に構成可能です。たとえば、ある DBMS から別の DBMS に切り替えるには、1 行の構成を変更するだけで十分です (サポートされている SQL が十分に似ている場合)。多くの場合、アプリケーションまたはパーツのデプロイは、サーバーを停止することなくオンザフライで実行できます (「ホット デプロイ」)。
さらに、アプリケーション設計の標準化に役立つサポート ライブラリとフレームワークが数多くあります。

于 2011-10-31T09:47:21.633 に答える
1

現在、複数のクライアント向けに社内で展開できる製品と、パブリック ポータル ソリューションとして展開できる製品を開発中です。これが私たちの経験です。

他の人が指摘したように、心に留めておくべきさまざまな要因があります。

  • 安全
  • 製品に関連付けられているセキュリティと、製品の機能要件を外部のセキュリティ ロールに対してどのように管理するか。
  • セキュリティ、認証、承認は、基本製品の一部であってはなりません。承認されたら、その機能を実現するために、役割を製品の役割にマップする必要があります。
  • カスタマイズが必要な画像とロゴ。
  • 国際化。
  • 複数のデータベースを操作する場合、製品には通常、永続性とクエリの 2 つの異なるビューがあると想定します。私たちの経験では、hibernate を使用して複数のデータベースをサポートしていましたが、理論的には過去に 2 つのデータベースしか使用していません。db2 と mysql。
  • 製品のリリースごとに複数のデータベースをテストするのは大変です。複数のデータベースをサポートするために、テスト ケースは 3 倍または少なくとも 3 倍になります。
  • カスタム データベースと関数を使用することは大したことではありません。いくつかの一般的な関数を使用できますが、クエリでカスタム データベース固有の関数を使用するのは面倒であり、それらを回避するには非常に注意を払う必要があります。
  • 製品でサポートされているブラウザー。
  • サード パーティの jar のライセンスは、すべての機関で互換性がある/受け入れられない可能性があるため、慎重に注意する必要があります。
  • 可能な限り、プロパティまたは構成を有効にして、すべての変数をカスタマイズします。
  • キャッシュ戦略とプロパティの初期化戦略。

フレームワークは、内部のフレームワークではなく、チームが同じページを維持するのに役立ちます。パフォーマンスやその他の考慮事項のために、Spring のような十分に確立されたフレームワークを使用することには多くの利点があります。

乾杯!

于 2011-11-14T16:50:23.453 に答える