2017-01-19 2 views
-5

Java、JEE、Rest、Springなどに基づいた優れたプロジェクトアーキテクチャを設計するためのベストプラクティスは何ですか?私はすべての技術とベストプラクティスをかなりよく知っていますが、私のアプリの建築上の問題について私にフィードバックを与えてください。特に並行性とマルチスレッド化の部分については、これが問題を解決する最良の方法であるかどうかは常に疑問です。残念ながら、私はインターネットを検索し、特定の技術ではなくアーキテクチャに焦点を当てたサンプルまたは参照プロジェクトを見つけることはできません。のみ。例えば。何百万という文章が残っていますが、安らかな環境でマルチスレッドを処理する方法については何も見つかりません。あなたが本、資料、または参照コードを示唆することができれば、私は本当にそれを感謝するでしょう。おかげJavaプロジェクトのアーキテクチャサンプル

答えて

-2

私はおじさんボブ便利です

1>エンタープライズ統合パターンMartin Fowler氏による

2>ブライアン・ゲッツにより、実践でのJava並行処理

3>クリーンコード

た書籍

レガシーシステムで作業しており、アプリケーションに最適なアーキテクチャを見つけようとすると役に立ちます。一般的なものは、すべてのサイズの本やブログを置くことができるものはありません。アーキテクチャー上の意思決定は、設計したアプリケーション固有のものです。最善の方法は、非常に早い時期に何を予想するのかを実際に考えるのではなく、オープン・クローズド・ルールに基づいた変化に柔軟に対応することです。

開発しようとしているアプリケーションの例を挙げると、インフラストラクチャチームが設定しようとしているネットワークトポロジの種類(ラウンドロビンロードバランサまたはスティッキセッションのいずれか)はまだ分かりません。これは、認証などの特定の機能のために書かなければならないコードを大いに駆動します。したがって、最終的なトポロジに効果的に切り替えることができるように、コード内で認証機能のその部分を構成することができます。これはほんの一例であり、あなたは念頭に置いて特定のことを守らなければならないが、これを過度にしてはならない。

もう1つの例として、使用したいメカニズムをキャッシュすることができます。薄い罪のあるhttpsession(これはお勧めしません)を保つべきか、またはあなたのデータを保存するためにいくつかの持続的/分散キャッシュを使用するかどうか。

これらは、アプリケーション固有の例であり、あらゆる種類の質問をステークホルダーに求める必要があります。

Java 8の登場により、機能性プログラミングの特定の概念を適用して並行性の問題を取り除くことができます。レガシープロジェクトではこれを行うことはできませんが、グリーンフィールドプロジェクトに適用することはできません。あなたのプロジェクトのアーキテクチャは、使用しようとしている実現可能なアプローチに基づいて進化し続けます。

+0

回答と書籍をありがとうございます。すでに最初の2つを読み、3つ目は新しいです。すぐにそれをチェックアウトする。 – Imran

関連する問題