問題タブ [system-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.

0 投票する
6 に答える
25534 参照

cron - 分散ジョブ スケジューラの設計方法

cron ジョブのスケジューリングを行う複数のホストを含​​むジョブ スケジューラ クラスタを設計したいと考えています。たとえば、必要なジョブがrun every 5 minutesクラスターに送信された場合、クラスターは次の実行を開始するホストを指摘する必要があります。

  1. 耐障害性: すべてのホストがダウンしているわけではない場合、ジョブは正常に開始されます。
  2. 有効性: 次のジョブ実行を起動するホストは 1 つだけです。

災害耐性のため、ジョブは特定のホストにバインドできません。1 つの方法は、すべてのホストが DB テーブルをポーリングすることです (確かにロックを使用)。これにより、1 つのホストのみが次のジョブ実行を取得することが保証されます。テーブルをロックすることが多いので、より良い設計はありますか?

0 投票する
1 に答える
135 参照

internet-explorer - URL を入力すると、携帯電話のブラウザで Web ページの読み込みに時間がかかるのはなぜですか?

ソフトウェア エンジニアリングのインタビューに備えて、非常に詳細な回答を作成し、「ボンネットの下で」何が起こっているかを本当に理解したいと思います。

私が今持っているものは次のとおりです。

URL を入力すると、ブラウザとサーバーの間で TCP ハンドシェイクが発生します。接続が確立されると、Web ページのリクエストはデータセンターのロードバランサーを介してサーバーにルーティングされます。その特定のサーバーは Web ページをブラウザーに返し、Web ページで指定された DOM ルールに基づいて表示用にレンダリングします。したがって、接続速度は次の影響を受けます。 1) データセンターの場所 2) ロードバランサーが使用するルーティングアルゴリズム 3) Web ページを含むサーバーが送信されたリクエストをクリアするのにかかる時間

これは私がインタビューで行った回答であり、不十分であると見なされました。私はそれがおそらく初歩的なものであることを理解しており、このプロセスについて可能な限り理解するための決定的な道を進んでいます. 誰かがこの質問に良い光を当てることができますか?

0 投票する
2 に答える
395 参照

uml - UML をどのように教えればよいですか?

どの程度の UML を教える必要があるかについての洞察が必要です。私は、システムの分析と設計に関する「2 単位 100 レベルの入門コース」の補助者です (私にとっては矛盾しています)。テキストは、典型的な 300 レベル 3 クレジット クラス用に書かれています。この章では ~7 個の UML ダイアグラムを扱いますが、既に非常に単純化されているため、さらに簡略化する必要があります。それをカバーするために、1週間または2時間の授業があります。

私は、本を破棄してクラス図を十分にカバーし、多くの基本的な OO 概念を紹介するか、単にこれらの 7 つの図の基本的な認識を目指すことができると結論付けました (それらが作成することを期待することさえありません)。しかし、基本的な認識は、これらのまったく新しいプログラマーにとって役に立たないほど表面をすくい取り、図が無意味に一緒に実行されるように感じます. アドバイスをいただければ幸いです。

ちなみに7つとは、オブジェクト関係、ユースケース、クラス、シーケンス、状態遷移、アクティビティ、ビジネスプロセスモデリングです。

0 投票する
0 に答える
299 参照

c# - IISでWCFサービスを介してWindowsアプリケーションにアクセスする

ユーザーが IIS サーバーでホストされている WCF サービスと対話するシステムを開発しています。次に、WCF アプリケーションは、いくつかのパラメーターと共に winform アプリケーションを起動する必要があります。この winform アプリケーションは、何らかの処理を行ってから、サーバーにインストールされているアプリケーション (ソフトウェア) をロードします。このアプリケーションは、いくつかの出力ドキュメントを作成し、ユーザーがアクセスできる共有可能なフォルダーに配置します。[ポイントが低いため、説明的な写真を投稿できませんでした:(]

開発環境では正常に動作しています。つまり、出力が作成されていましたが、IIS に展開すると、エラーがスローされ始めました。

2 つの方法を使用して WinForm をロードしようとしました。

  1. Winform が読み込まれ、WCF ホストから WinForm のインスタンスが作成されます
  2. System.Process.Start() を使用して WinForm のインスタンスがロードされます (.EXE)。

どちらの操作も失敗しました。IIS を使用してこれを実現する方法。

0 投票する
0 に答える
1284 参照

assembly - PC相対アドレスと絶対アドレスの違い

PC相対参照の再配置と絶対参照の再配置の間のプロセスの違い/類似点を誰かが説明できるかどうか疑問に思っていました。

私が現在通っているクラスは、厳密に C で教えられているシステム設計のクラスなので、なぜこれがクラスに関連しているのかわかりません。

0 投票する
3 に答える
4781 参照

oracle - Oracleのストアドプロシージャに値を渡す方法は?

値を挿入して更新しようとしているストアド プロシージャを作成しました。挿入を実行しているとき(5つのパラメーターと異なるデータ型が含まれています)には異なる値があり、更新時には(6つのパラメーターと異なるデータ型が含まれています)異なる値があります.両方のケースで単一のストアドプロシージャを使用したい(挿入/更新) パラメータを管理するにはどうすればよいですか?

手順

0 投票する
1 に答える
282 参照

domain-driven-design - CQRS/ES デノーマライザー

イベント ソーシングと CQRS を使用する請求 Web アプリケーションに取り組んでいます。

さまざまなクエリに対して 2 つのデノーマライザーがあります (1 つは請求書の概要のリスト用で、もう 1 つは完全な詳細を含む単一の請求書用です)。これら 2 つのデノーマライザーの多くのロジックをコピーする必要があるのは奇妙だと思います。たとえば、合計、小計、税金などを変更するイベントをリッスンします。

イベントだけでなく、実際に計算されたデータを含む集計自体をメッセージング バスに渡し、デノーマライザーにイベントの代わりにそれをリッスンさせました。

これは私にとっては簡単になりましたが、パターンとは異なるようです。このアプローチは、私が読んだどの記事にも記載されていませんでした。

バス上でイベントだけを渡し、各デノーマライザーが必要なものに反応するというアイデアは気に入りましたが、実際にはもっと面倒に感じました。

ご意見をお待ちしております。

ご協力いただきありがとうございます!

0 投票する
1 に答える
2065 参照

java - クリーン アーキテクチャで 1 対多の関係をどのように実装しますか

クリーン アーキテクチャの使用に問題があります。Fernando Cejas のブログ投稿 http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/を読んだ方へ、私の質問はそれに基づいており、彼のコードです。

彼のサンプル プロジェクトには、ユーザーごとに 1 つのドメイン オブジェクトしかありません。そして、POJO を使えばすべてが明確になります。私が問題を抱えているのは、ユーザーが本を持っているとしましょう。一対多の関係。これをクリーン アーキテクチャでどのように処理しますか?

彼と同じように、私はいくつかのレイヤーを持っているので、ドメイン オブジェクトごとに 3 つのクラス (User、UserModel、UserEntity) と、ドメイン オブジェクトごとに 1 つのリポジトリ (UserDataRepository) があります。新しい例には、Book、BookModel、BookEntity、および BookDataRepository も含まれます。

また、CRUD のバリエーションを持つユース ケース クラスもあります。

私にとっての問題は、UI/Presenter レベルにあります。プログラムのこの時点で、UserModel オブジェクトと BookModel のリストがあります。userModel.getBooks() がありません。私は userModel.save() を持っていません (これは本の変更もすべて保存します)。

問題を強調するために、この類推を実際のユース ケースにさらに近づけるために、本のすべてのページのリストも用意しました。:) したがって、ユーザーを保存するときは、書籍、および変更された可能性のあるすべての書籍のすべてのページを保存したいと考えています。

これについてどうすればいいですか?

ボーナスの 2 番目の質問: 私の現実の問題では、基本クラスから派生したクラスがあります。上記の類推を使用すると、LeftPage と RightPage は PageBase から派生します。Book にはリストがあります。ただし、LeftPage と RightPage の両方には、別々のリポジトリ、別々のユース ケースなどがあります (しかし、これは機能しません) リストを保存するにはどうすればよいですか?? 別のユースケース SavePages を作成する必要がありますか?

if (pages.elementAt(i) instanceof LeftPage) { SaveLeftPage saveLeft = new..... } else { SaveRightPage saveRight = new..... }

私が見たすべてのドキュメントで、モデルはユースケースを知らないため、ポリモーフィズムを使用できるとは思いません。

お時間をいただきありがとうございます:)

-マイク

0 投票する
0 に答える
118 参照

activemq - Activemq Artemis などのメッセージ キュー指向の設計

クラスタ化されたフォールト トレラント システムでメッセージ キュー指向の設計を行う際に問題があります。

AB C の 3 つのサイトがあります。

B は B1 B2 B3 としてクラスター化されます。

C は C1 C2 C3 としてクラスター化されます。

メッセージ X (実際には毎秒 1000 ~ 5000 X) がサイト A から B クラスターに送信されます。

BはそれをYに変換し、Cに送信します。

C はそれを Z に変換し、B に送信します。

A と B の間の接続が失敗した場合、A は X を C に送信します。C はそれを Z に変換し、Z を B に送信します。

A のすべての接続が失敗した場合、A は X をローカルに保存します。

以前は Jboss HornetQ だった Apache Activemq Artemis を見てきました。

しかし、それが上記のシナリオを満たしているかどうかを正確に把握することはできません。

私たちを手伝ってくれますか?回答ありがとうございます。

0 投票する
2 に答える
55 参照

security - 安全でないトランスポート境界を越えたメッセージの送信元を検証する

3つの部分からなるシステムを構築しています。システムA、システムB、システムC。

システム A はシステム C と直接通信できず、システム B を経由する必要があります。システム B には多くのシステム C が含まれている場合があります。ここでのもう 1 つの懸念は、システム B がそれ自体のコピー/クローンを作成し、それを (システム C として) それ自体の下に含めることができるということです。

システム A からすべてのシステム C にメッセージをブロードキャストしたいと考えています。システム B には、カプセル化されたすべてのシステム C のリストが含まれています。システム C にロジックを追加して、システム A から発信されたメッセージのみが有効と見なされるようにします (したがって、以降の処理に対して安全であるとマークされます)。

最初のカットとして、私は diffie-hellman アルゴリズムを介して秘密鍵をネゴシエートすることを考えていました。しかし、システム B はそれ自体のコピーを作成し、それをシステム C のインスタンスとして含め、秘密鍵を取得できることに気付きました。システムC側でソースの信憑性を検証できるように、これを行うためのより良い/標準的な方法はありますか?