問題タブ [loose-coupling]
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.
sql-server - 疎結合データベースの設計 - 方法
アプリケーションが表示するすべてのデータのバックエンドに SQL Server DB を備えた Silverlight を使用して、Web ベースのアプリケーションを実装しています。私は、アプリケーションを簡単に拡張できるようにしたいと考えており、データベースを疎結合にし、すべてを外部キーで結び付けないようにすることが方向性だと感じています。いくつかの例を検索しようとしましたが、役に立ちませんでした。
これを始めるのに役立つ情報や良い出発点/サンプル/例を誰かが持っていますか?
大変助かります。
敬具、
c# - NHibernateにHiLo文字列IDを生成させる
Unityを介してデータソース(Navision)に緩くバインドされた大規模なシステムがあります。それを交換して、独自のデータベースを作成する機会を得ています。
ですから、私たちは周りを見回して、Fluent NHibernateの外観を本当に気に入っています。概念実証を取得し、いくつかのサービスを交換しようとしています。
NHibernates HiLoアルゴリズムを使用したい-残念ながら、Navisionから文字列IDを継承しました。これはIDのプレフィックス(例COL00001)であるため、インターフェイスに一致させるには、文字列IDを使用する必要があります。
誰かが私がどのように何かを得るのか知っていますか...
IDが文字列である場合に機能しますか?現在、IDはint、longなどである必要があります
ありがとう、
アンディ
- - - アップデート - - -
提案された記事の例を試しましたが、この機能はFluent NHibernateの新しいバージョンから削除されました-ただし、.Customがあります-しかし、それを機能させることができないようです!
django - APIの割れ目のどちら側ですか?
私はDRYと緩い結合の間で引き裂かれています:(
アカウントをリンクできる2つのサイトがあり、それらのサイトはデータを共有できます(RESTful APIを介して...)
1つのサイトはメディア集約サイトであり、もう1つは人々がデジタルメディア(音楽/写真/ビデオ)を購入できるメディアストアです。
私の上司は、itunesストアをエミュレートし、アグリゲーションサイトにビルトインストアを設置して、好きなものを購入してアカウントに自動的に追加できるようにしたいと考えています。
私はストアサイト用に作成されたテンプレートとビュー(django)の99%を持っており、メディアサイトにコンテンツを表示する必要があります。
テンプレートをレンダリングして、事前にレンダリングされたhtml(api経由)をメディア(アグリゲーション)サイトに配信する(そしてDRYに従う)必要がありますか、それともストア側で密結合のカスタムテンプレートを回避するためにjsonを配信する必要がありますか?
それとも、ハイブリッド設計の方がうまくいくでしょうか?事前にレンダリングされたhtmlのチャンク(のトップ10製品など<ol>
)を配信し、メディアサイトに必要なチャンクを要求させますか?
ハイブリッド設計は(今のところ)私にとって最も有望に思えますが、おそらく結果としてより多くのapi呼び出し(したがってより多くのデータベースクエリ)が発生するでしょう
どう思いますか?
編集-新しいアイデア:(コメントに見られるように)ストアサイトにカスタムcssをiframeにロードすることについてどう思いますか?
これにより、混乱がなくなり、密結合されたコードの量が3ダース行のうちの2行程度に減り、ほぼ同一の2セットのテンプレートを維持するという大きな頭痛の種を減らすことができると思います。
c# - サード パーティ製アセンブリのラッパーを作成する - スワップ アウトとデカップリング
アプリケーションに統合している電子メール コンポーネントがあり、必要に応じて別のサード パーティ コンポーネントと交換できるように、その周りにラッパーを構築する方法に関するヒントを探しています。
現在の私のアプローチは次のとおりです。
- インターフェイスを構築すると、必要な機能が得られます。
- このクラス内のサードパーティ コンポーネントを使用して、インターフェイスを実装するクラスを作成します。
このコンポーネントの使用は、次のようにインターフェイスを介して行われます。
IPop3 pop3 = 新しい AcmeIncePop3Wrapper(); pop3.connect();
AcmeIncePop3Wrapper の内部は次のようになります。
それは良いアプローチですか?
おそらく ninject を使用して別の抽象化を追加して、実装を交換することができますが、サードパーティのアセンブリを毎日変更することを期待していないため、実際にはこれで十分なようです。物事をそれほどきつくしたくないだけです。カップリング。
asp.net-mvc - すべてのビジネス ロジックを BLL レイヤーに移動したいのですが、formcollection で渡す必要があります。それはクリーンですか?
私のasp.netコントローラーアクションは、FormCollectionをパラメーターとして受け取ります。
次に、自分のコレクションをループし、フォーム コレクションで値を検索します。
すべてのコードをビジネス ロジック レイヤーに移動し、次のようにアクションでビジネス ロジック レイヤーを呼び出すだけです。
しかし、フォーム コレクションをビジネス ロジック層に渡すのに少しうんざりしています。
ここで本当に選択肢がありますか?他のアイデアはありますか?
またはそれは完全に問題ありませんか?
c# - C#での緩い結合に最適なツールは何ですか
私はLooseCouplingとその利点を読んでいましたが、これは本当に良いことですが、緩く結合されたソリューションを作成するのにどのツールが優れているのか疑問に思い始めました。最初に頭に浮かんだのはTypeandInterfacesとAbstractクラスですが、緩い結合を提供する方法はたくさんあると確信しています。多分、ポリモーフィズムは、ゆるく結合されたオブジェクトとシステムを作成するのに役立ちます。
ありがとう。
.net - マルチティア/マルチレイヤーシステムは密結合システムと同じですか?
レイヤー/層を作成するたびに、あるレイヤーから別のレイヤーに変換する必要がありますが、それは密結合システムであることを意味しますか? ビジネス ロジックを変更したり、データベース内のフィールドを削除したりする場合、すべてのレイヤーをデータベース レイヤーからクライアント フロント エンドに変更する必要がありますか?
たとえば、「データ コントラクト」オブジェクトを公開し、それを中間層でいくつかの「ビジネス オブジェクト」に変換してから、データ層で適切な「ORM オブジェクト」に変換する Web サービス。そして、Web サービスを呼び出すクライアントは、datacontract をいくつかのモデル オブジェクトなどに変換します...
その間には非常に多くの変換が存在するため、Web サービスを疎結合するように設計するにはどうすればよいでしょうか? 誰かが彼/彼女の意見を共有できれば、それは素晴らしいことです。
ありがとう
c# - インターフェースとカップリング
設計と疎結合の観点から。構成モデルの一部である可能性のあるプロジェクト内の各クラスにインターフェースを用意するのは良い考えですか?
私はこれを行っているプロジェクトを持っていますが、物事を比較的疎結合に保つために、かなり多くのインターフェースを取得しています。
c# - SOA アーキテクチャで疎結合を実装する方法
私は最近、SOA や ESB などについて多くの調査を行っています。
現在、いくつかのレガシー システムの再設計に取り組んでおり、現在よりも多くの SOA アーキテクチャを使用してシステムを構築したいと考えています。これらのサービスを約 5 つの Web サイトで使用していますが、レガシー システムで現在抱えている最大の問題の 1 つは、ほとんどの場合、バグの修正や更新を行うときに、5 つの Web サイトを再デプロイする必要があることです。かなり時間のかかるプロセス。
私の目標は、依存するすべてのサービスと Web サイトを再デプロイしなくても変更できるように、サービス間のインターフェイスを疎結合にすることです。
依存関係を壊したり更新したりせずに、既存のサービス インターフェイスを拡張する機能が必要です。以前にこの問題に遭遇した人はいますか? どのように解決しましたか?