問題タブ [application-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 投票する
3 に答える
317 参照

database-design - ルックアップ値の設計

世界の国やアメリカ合衆国の州など、ルックアップ値を処理するための開発ショップまたはプロジェクトのプロトコルは何なのか知りたいです。

私はそれが 2 つの異なる方法で行われるのを見てきました: 私が作業したある場所では、ルックアップはすべてプレフィックス "L_" を持つデータベース テーブルに格納され、次の列がありました: id、code、desc、ordersequence。たとえば、世界の国の場合、次のようなテーブルがあります。

最近では、ルックアップが列挙型に組み込まれている例を見ました。たとえば、次のようになります。

これらがデータベース テーブルに由来する場合、列挙用の C# コードを生成するユーティリティがあります。そうしないと、値が変更される可能性が低いという仮定を使用して、時間をかけてすべてのエントリをハードコードするだけです。列挙内の数値については、データベース内の対応するルックアップ テーブルの ID 列に基づいてハードコードされるか、1 から始まるエントリに基づいてハードコードされます。

前者のアプローチについては、コードまたは完全な説明を使用し、順序を操作し、再コンパイルせずに変更を加えるオプションを提供することで、非常に柔軟であるという議論があり、これは確かに私が支持するものです。それらからコードを生成するオプションは可能ですが、大きな利点は、データベースに追いやられても真の「ルックアップ」のままであるということです。最後に、これらの使用方法は柔軟です。Dictionary コレクションの値として、またはサーバー側コードを使用して ASP.NET ListItems または html コンボボックス要素を生成します。

後者について私が聞いた議論は、値は変更されず、アプリケーション レベルでキャッシュされている場合でも、データベースからルックアップ値を取得する必要があるためオーバーヘッドがあるというものです。それらをハードコーディングするか Enum を生成することにより、データベース検索のペナルティなしで利用できます。

私の質問は次のとおりです。

  1. どちらのオプションがあなたにとってより理にかなっていますか、またはあなたの答えが「場合による」である場合、ハードコードされた列挙がアプリケーション全体にわたるデータベース ルックアップよりも優れているシナリオを示すことができますか?

  2. ルックアップを処理するためのエレガントなソリューションである他の方法はありますか? 例として、すべてのルックアップ用の単一のテーブル (「lookupname」列を含む) があるアプリケーションで作業しました。あなたの代替アプローチは、上記の 2 つのアプローチと比較してどうですか?

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

python - 異なる製品オブジェクトを1つのコントラクトに接続することは可能ですか?

私の問題
顧客が1つの契約に多くの異なる製品を接続できるようにしたいのですが、契約に添付されているすべての製品をリストするコードが汚れているように感じます。

私のモデル

契約に関連するすべての製品を一覧表示するには、コードは次のようになります。

製品がどのような製品であるかを知るための正しい方法を見つけることができません!

私の現在の解決策
はこのように解決しました...しかし、この混乱全体は...間違っていると感じています。正しい方向へのポインタがあれば嬉しいです。

だから私はこのようにそれぞれの特定の製品をフェッチすることができます(疑似っぽいコード):

基本製品インスタンスだけでなく、すべての「実際の」製品を一覧表示します。


ある種の正気の方法でこれを行うためにSugggestionsで助けが必要なこと。
よりクリーンなコードを取得するためだけに、一連の手順をすべて抽象化する必要はありません。

0 投票する
4 に答える
505 参照

java - 一意キー制約

アプリケーションレベルで一意のキー制約があるテーブルでのデータ挿入/更新を処理する際のベストプラクティスは何ですか?これらは私が思いついたものです:

1.データを挿入する前にテーブルに対してクエリを実行して、データが制約に違反するかどうかを確認します。

長所

  • フルコントロールできるので、DBMS固有のエラーメッセージを処理する必要はありません。
  • データ整合性チェックの追加レイヤー

短所

  • ほとんどの場合、制約違反は発生しないため、パフォーマンスが低下する可能性があります。
  • 重複データのクエリを実行している間は、テーブルをロックする必要があります。

2.何もしません。テーブルを更新して、何がうまくいくかを確認します。

長所

  • 単純!
  • テーブルを更新するたびに追加のクエリを実行する必要がないため、全体的に高速になります。

短所

  • 検証ルーチンはデータベース層によって異なります。
  • データが固定されない場合は、スタックトレースを調べて、原因を特定する必要があります。

より広く受け入れられているソリューションはどれですか?これらに代わるものはありますか?

私はJava、JPA、Hibernate、SpringBTWを使用しています。フレームワーク固有の提案も歓迎します。

ありがとう!

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

cocoa - 最初の起動時にCocoaアプリをセットアップするための最も一般的なシナリオは何ですか?

私はアプリを作成していますが、最初のアプリの起動時にユーザーにいくつかの必須の設定を設定してもらいたいです。これを達成するための最も一般的なシナリオは何ですか?アプリがセットアップされているかどうかを確認するために、いくつかのユーザーデフォルトを設定する必要がありますか?また、アプリが初めて起動されたと判断した場合、「セットアップ」ウィンドウをどのように表示すればよいですか?separte xibファイルからロードした場合-メインアプリウィンドウの表示をどのように延期しますか?

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

language-agnostic - アプリケーション設計 - インターフェイスを使用する必要があるのはいつですか?

私はインターフェイスを、それ以外の場合は共通点がないクラスに適用できる契約であると理解しています(例:Javaで同等)。しかし、どのような状況で、設計段階でインターフェースを追加するという反射がありますか?

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

project-management - プロジェクトの仕様を書くときに避けるべき落とし穴

私は現在、oDesk(おそらく3k-6k)に入札したい大規模なプロジェクトのソフトウェア仕様を書き込もうとしています。私はコンピュータサイエンスの古典的な教育を受けていますが、仕事の経験は最小限であり、企業環境で働いたことはありません。

GoogleAppEngineで実行したいAPIのプロジェクト仕様を15ページ作成しました。次のような問題で微妙な点が難しいと感じています。何を指定し、何を指定しないかについてどこに線を引くか。プロジェクトを細かく分割して、1つの部分で問題が発生した場合でも、他の部分を使用できるようにする方法。マイルストーンを設定する場所と方法。仕様を適切に実装するスキルを持っている候補者を選別する方法。

私は友人に私が注意すべき問題を尋ねました、そして彼は言いました:

  • 仕様に矛盾する情報がないことを確認してください
  • 仕様が不必要に具体的でないことを確認してください。これにより、より熟練した開発者がオフになります。

プロジェクトの仕様を作成する際に注意すべき他の落とし穴やよくある間違いは何ですか?

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

asp.net-mvc - MVC認証フロークエリ

私は、ユーザーがオンラインで個人情報を更新できるようにする小さなアプリを書いています。

プロセスの開始時に認証を依頼しますが、データベースに変更を送信する直前に、パスワードを再度要求したいと思います。

これは、バスケットとチェックアウトを表示する前にAmazonが機能する方法です。

これを行うための賢明な方法はありますか?

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

database-design - 膨大な数のフォロワーに通知するにはどうすればよいですか?

一人の人が本当にたくさんのフォロワーを持っていると仮定します。この人はストーリーを投稿し、アプリはすべてのフォロワーに通知する必要があります。フォロワーの数が多すぎない場合は、ユーザーが送信ボタンをクリックしたときにメールを送信できます。

しかし、何人かの人々が何千人ものフォロワーを持っている場合、どのように通知システムを実装しますか?

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

c# - Software As Service の最高のアプリケーション設計

ASP.NET MVC3 C# と MS SQL 2008 の使用

Software As Service サイトを開発しています。カーディーラー向けのカーインベントリーアプリです。サイトのアーキテクチャについていくつかのアイデアがありましたが、セカンド オピニオンが必要でした。

各ディーラーはレイアウトに制限されますが、ロゴをアップロードし、いくつかの色のテーマを選択できます.

最初は販売店ごとに別々のサイトを作ることも考えましたが、アップグレードは悪夢でした。

私の考えでは、ホスト名に基づいて動的に変化する 1 つのメイン サイトです。すなわち。したがって、miamicars.carinventory.com と入力すると、配色とロゴが表示されます。

ユーザーと会社の設定用にマスター データベースを 1 つ用意しますが、大量のデータ (車の在庫など) を含むサイトごとに個別のデータベースを用意します。このようにして、各サイトのデータを個別にバックアップおよび処理できますが、アプリケーションのメイン コードは 1 か所になります。

また、各企業には、個々のイメージを格納するためのディレクトリがあります。

どんなフィードバックでも歓迎します。

ありがとう

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

c# - アプリケーションのさまざまなセクションに簡単に変更する方法

現在、さまざまなコンテンツとコントロールを備えた 10 以上の異なる「ページ」を必要とするアプリケーションを作成しようとしています。特定のイベントでそれらを切り替える必要があります。

私が行っていることは、グリッド内にすべての異なるセクションを作成し、それらの可視性を折りたたみに設定することです。それらを表示する必要がある場合は、可視グリッドを新しいものに切り替えるだけです。

これにはいくつかの欠点があり、コーディングの観点からは非常に貧弱であると想定しています。これにより、デザイナーをまったく使用できなくなります。(パフォーマンスへの影響もわかりません)

その上、新しいページに切り替えるたびに、すべてのコンポーネント (テキストボックスなど) をデフォルトの状態にリセットする必要があります。非表示になってもリセットされないからです :P

私の質問に:私はすべての異なるページをマッピングし、それらの間で視覚的に魅力的なトランジションを提供し、デザイナーを使用してそれらを作成できるようにする方法が必要です(どこかでデザインしてからxamlをコピーするだけではありません)

私は周りを見渡し、SketchFlow に出くわしました。これは完璧なソリューションのように思えました。ページ間をフェードアウトし、すべてをフロー チャートに簡単にマッピングできました。その後、これはアプリのプロトタイプ専用であり、実際には通常の方法でコンパイルできないことに気付きました。アプリケーション...そして、カスタムウィンドウクラスからも継承する必要がありました。

私がこれを行うことを可能にする何かがありますか?または、これを正しく動作させるにはどうすればよいですか?

注:これは絶対に1つのウィンドウ内にとどまる必要があります。何かを変更する必要があるたびにポップアップする 10 以上の異なるウィンドウを用意することはできません。これは非常に頻繁に起こるので