問題タブ [modular-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - シンプル ドメイン オブジェクト (POCO) からデータ検証を分離する方法は?
この質問は言語に依存しませんが、私は C# 派なので、POCO という用語を使用して、通常はゲッター フィールドとセッター フィールドを使用して、データ ストレージのみを実行するオブジェクトを意味します。
ドメイン モデルを作り直して超強力な POCO にしましたが、プロパティ値がドメイン内で意味をなすようにする方法に関していくつかの懸念が残っています。
たとえば、サービスの EndDate は、サービスが下にある契約の EndDate を超えてはなりません。ただし、チェックを Service.EndDate セッターに入れるのは SOLID 違反のように思えます。実行する必要がある検証の数が増えると、私の POCO クラスが雑然とすることは言うまでもありません。
私にはいくつかの解決策があります(回答に投稿します)が、それらには欠点があり、このジレンマを解決するためのお気に入りのアプローチは何ですか?
asp.net-mvc - ASP.NET MVCの関心の分離をENFORCEDでどのように実行しますか?
私は2007年のプレビュー1(12月)からASP.NET MVCを研究し、遊んで、作業しています。私は2008年からファンであり、ずっとサポートしています。
ただし、Rob Conery、Scott Hanselman、Phil Haack、ScottGuthrieによるProfessionalASP.NET MVC 1.0で読むことを含め、「ASP.NETMVCは関心の分離を厳密に実施します」を聞き続けています。
私が理解していないのは執行です。何もしないアクションでコントローラーを定義するとどうなりますか
そしてビュー(aspxビューエンジン)で私はすべてをしますか?(データフェッチ、ビジネスロジック、意思決定、レンダリングなど)
(ASP.NET MVC)は、関心の分離をどのように強制しますか?
これは露骨な誇張であり、「関心の分離を示唆する」と読む必要があると思います。
それが強制することを私に納得させることができますか?
c# - 疎結合のクラスとインターフェースの間の関係を示す良い方法は何ですか?
私は SOLID の原則をチームに紹介しましたが、チームはその原則を理解し、喜んで使用しています。
私は、これらの原則を使用するためにすでにリファクタリングされたいくつかのプロジェクトを彼らに提供しました。プロジェクト内の非常に疎結合されたクラス間の接続を確認するのに苦労している場合に私が見る最大の問題. クラス図を作成しても、接続が表示されません。私が言及している特定のプロジェクトも、実装に依存性注入と XML 構成を使用しています。ただし、これには目的があり、使用されているクラスを見つけるのがさらに難しくなります。
クラス間の関係と、それらがプロジェクト内でどのように使用されているかを視覚的に示す最良の方法は何ですか?!
編集日: 2008/10/24 20:40
UML コメントに基づいて、組み込みの Visual Studio クラス図を参照して、アプリケーションのモデルを構築しようとしました。各インターフェースの説明はできますが、それらが明確に接続されているかどうかはまだわかりません。
asp.net - SoC またはモノリシック コード?
懸念事項の分離 (SoC) では、各ユニットが 1 つの懸念事項のニーズのみに対応するように、アプリケーションを機能の特定のユニットに分割することを提案しています。
SoC が一般的にユーザー要求を処理するのにより多くの時間がかかるという 1 つの実践シナリオがあります。たとえば、私がソーシャル メディアの Web サイトで作業しているとします。ユーザーが別のユーザーから送信された招待を受け入れる場合、通常、例として次のような処理を行います。
- 招待状が有効になります。(InvitationRepository がこれを行います)
- 友達が私のネットワーク リストに追加されます。(FriendRepository がこれを行います)
- 電子メール メッセージが追跡され、電子メールが友人に送信されます。(EmailRepository がこれを行います)
この場合、データベースへの 3 つのリクエストが完了するまで待つ必要があり (データベースはどこかにある)、モノリシック コードを使用した 1 つのデータベース呼び出しですべてが存在する他のシナリオと比較すると、完了までに長い時間がかかります。
この場合、どちらが良いか教えていただけますか?
web-applications - Struts 2 モジュラー Web アプリケーション
Struts 2 Web アプリケーションを使用しています。多くのモジュールと機能があります。顧客の要件に基づいて、一部のモジュールを有効または無効 (または削除) したいと考えています。しかし、Struts 2 で単一の WAR ファイルを展開する場合、どうすればそれをモジュール化できますか? 展開時にいくつかのモジュールを取り出すことは可能ですか??
前もって感謝します。
delphi - Delphi 用のモジュラー プラグインを作成する方法
Delphi 2010 を使用して、モジュールまたはプラグインをサポートするプログラムを作成する必要があります。少し不自然ですが、データファイル/テキスト ファイルを変換するアプリがあるとします。30 の入力形式と、同じ 30 の形式を出力としてサポートします。最初のリリースでは、おそらくこれらの形式のいくつかのみが実装されるでしょう。私の課題は、データ駆動型のプロセス フローが必要だということです。
たとえば、PARSE_FILE ルーチンがあるとします。入力データ ファイル形式が「Format_A」の場合、PARSE_FILE を呼び出すと、PARSE_FILE ルーチンの他の 29 の異なるバージョンとは対照的に、PARSE_FILE_Format_A を使用することを認識している必要があります。
PARSE_FILE は単なる例です。おそらく、LOAD_FILE、GET_DELIMITER、PARSE_FILE などの60 の異なる共通関数を使用する予定ですが、これらの関数のそれぞれは、30 の異なる形式ごとに少し異なります。FORMAT_A を使用してファイルをロードする場合、これらの 60 の異なる共通ルーチンのそれぞれがこれらの 60 のルーチンの適切な「バージョン」を使用するには、どのような手法を使用できますか?
5 つの入力形式から始めて、後で他の形式を追加することに注意してください。したがって、この「マッピング」を一元的に定義する方法が必要です。したがって、これらのルーチンがコード全体で使用されている場合は、ルーチンの適切なバージョンが使用されます。ジェネリック版と呼んでも使えます。
php - symfonyフォームによる関心の分離
私は最近Symfony2フォームを使おうとしていますが、これは単純なフォームに非常に適しています。
しかし、-選択ボックスなどで使用するために-フォーム内の関連するエンティティのリストが必要になることがよくあります。いくつかのブログ投稿とSymfonyのドキュメントで、彼らはこのようなものを提案しています...
ドメイン駆動設計、特に関心の分離に多くの注意を払っているので、関連するエンティティをSymfonyのカスタムフォームタイプにバインドする唯一のオプションは、カスタムでクエリすることであるとは信じがたいです。フォームタイプ。
私の意見では、フォームはクエリを実行するべきではないため、これはSoCに違反します。このように、フォームは常に同じエンティティを取りますが、表示するエンティティを選択するのはフォームではありません...
フォームビルダーにフォームの作成を依頼するコントローラーは、関連するオブジェクトをカスタムフォームタイプコンストラクターなどに挿入する必要があります...
誰かがこれをどのように達成できるか知っていますか?