問題タブ [code-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.
javascript - コード内の 1 か所から Javascript を装飾する
次のコード設計の問題に直面しています。
サイトで多数の ajax アクションを追跡する必要があり、追跡するreachGoal(TARGET_NAME)
すべての関数に挿入する必要がある分析関数があります。
私が望むのは、すべてのターゲットを次のように 1 か所から管理できるようにすることです。
これを達成するためのパターンやテクニックはありますか?
object - このオブジェクトのプロパティ/属性をどこに置くべきですか
テストプログラムを作成しています。私が今持っている 3 つの主要なオブジェクトは、テスト、質問と回答です。データベースには、テスト、質問と回答、および質問からテストへの FK と、回答から質問への外部キーの 3 つのテーブルがあります。質問テーブルの一部として、その質問に対する正解である回答の seq_num (一意の識別子) を格納する correct_answer_seq_num という列があります。この属性を質問表に入れることにしました。これは、この特定のテストの正解は 1 つしかないためです (この特定のテストでは、そうでないテストがあることはわかっています)。それを回答表に入れると、すべての回答を正解としてマークできます。
私が抱えている問題は、このプロパティをどのオブジェクトに置くべきかということです。これは実際には質問の属性ではなく、回答の属性ですが、データの整合性のために質問クラスに含める必要があると思います。
私はこれを大きくしすぎていませんか? そうでない場合は、プロパティをどこに置くべきですか?
それは問題ではありませんが、私はC#を使用しています
ありがとう!!
ruby-on-rails - コントローラとモデルのロジックが多すぎる
小さなアプリケーションで作業しているときに、コード設計の問題が発生しました。(ちなみに私は初心者です)
機能面では、それぞれ2席のテーブルのリストがあります。2人のプレーヤーが同じテーブルに座ると、ゲームが始まります。
この部分には、テーブルコントローラー、テーブルモデル、およびゲーム状態モデルがあります(ゲーム状態を作成すると、ゲームが開始されます)。
ユーザーが座ると、テーブルコントローラーによって処理されるajaxリクエストが発生します。このコントローラーは、テーブルモデルの適切なメソッドを呼び出して座ります。テーブルモデルが両方の席が埋まっていることを発見すると、ゲームが始まります。これは難しい部分です。
テーブルモデルでゲーム状態モデルを呼び出すのは面倒で、誰がゲーム状態モデルを呼び出すのかを追跡するのが後で難しくなる可能性があるため、私は望んでいませんでした。そこで、テーブルモデルが:success => trueハッシュをテーブルコントローラーに返すようにしました。テーブルコントローラーは、ゲーム状態モデルを呼び出すかどうかを決定します。
しかし、それから私はロジックをコントローラーに入れていることに気付きます。これはRails3Wayによればノーノーです。
私よりも経験豊富な人に、私に何ができるか教えてもらえますか?
また、「ユーザーがパーツを切断するとゲームを没収する」という問題もあります。現在、ユーザーは、アプリがまだ接続されていることを知らせるためにテーブルコントローラーをプルします。そして、その部分にゲームの没収を処理させることは、厄介で結合しているように見えます。
さらに、モジュール化を維持するために、JavaScriptコードにリソースのタイプごとに1つのsetIntervalプルを実行させています。しかし、その結果、間隔ごとに6〜7個の異なるAJAXリクエストを作成しています。そして、それは非効率的なようです。
uml - シーケンス図のメソッドの所有者は?
次の図があるとします。
メソッドの所有者がダイアグラムでわかるかどうかは、かなり疑問です。
例:pickup
メソッドはWaiter
? serve food
の方法ですかPatron
?
より一般的には、矢印はメソッドの所有者を示していますか?
java - 最初に検証しますか、それともキャッチしてみますか?
次のような関数があるとしましょう。
データベースに保存する前に、さまざまな検証を行う必要があります。メインプログラムでできることは次のとおりです。
これにより、データベースに保存する前に、すべてのデータが必要なすべての検証に合格する必要があると確信しています。ただし、これは、関数saveBooking()
が検証方法に密接に依存していることを意味します。電話をかけるたびにsaveBooking()
、検証を呼び出すことを忘れないようにする必要があります。
または、すべての検証を関数自体の中に入れて、メソッドを呼び出すだけですべてが処理されるようにすることもできます。ただし、すべてのエラーを個別に処理するには、関数に例外をスローさせ、メインプログラムでキャッチする必要があります。次のようになります。
これは、自分で複数の例外を作成する必要があることも意味します。良いことは、事前にどのような検証を行う必要があるかを心配する必要がないことです。
これらを使用すると、どれが最適なコード設計であるかわかりません。私は個人的には読みやすい最初の方法を好みますが、それはお互いに依存しすぎて、多くの場所でそれを使用する必要があるときに悪化します。ご意見をお聞かせください!
c# - オブジェクトが独自の永続性を処理する理由と反対の理由
分離ストレージを使用した Windows Phone での永続化モデリングのさまざまなオプションを検討しています。私が思いついたアイデアの 1 つは、オブジェクトを保存する目的でリポジトリやその他のエンティティを作成するのではなく、各オブジェクトが独自の永続性を処理するという概念でした (もちろん、それは理にかなっています)。
この永続化の方法に関する良い情報を見つけることができないようで、ある種のアンチパターンに出くわしたのではないかと思います。
この方法で持続性に近づいた人はいますか? もしそうなら、このアプローチに関してあなたの賛成または反対は何ですか。
c++ - C++ オブジェクト階層の依存関係のコード設計
object と object_manager の 2 つのクラスを作成したいのですが、お互いをどのように認識/インクルードするかについて混乱しています。2 つのヘッダーが互いにインクルードすることは禁止されており、コードの依存関係に円がある場合、それは不適切なコード設計であり、通常は階層構造 (町 -> 家 -> 家具と家具は知らない) のようになるはずだと聞いたことがあります。町の存在について)。
しかし、ここでは、すべてのオブジェクトを認識して保持する object_manager があり、オブジェクトには新しいオブジェクトを作成するオプションが必要ですが、次に object_manager を呼び出す必要があります。構造、悪いです..
これは、あるプロセスが OS システム コールを呼び出して新しいプロセスを作成したいようなもので、OS とプロセスはお互いを認識しています。
これを正しいコード設計で実装できる方法はありますか、それとも悪い場合もありますか??
オブジェクトには、すべての「システムコール」を保存する特別な場所が必要であり、object_manager が時々それをチェックする必要があると思いました..しかし、もっと良い方法があるかもしれません。
php - 記述と 1 つの配列をデータと組み合わせる
タイトルはそれほど役に立たないことはわかっていますが、探しているものを説明しようと思います。
私の主な問題は、2 つの配列を組み合わせる簡単な方法を探していることです。
$lang = array('de' => 'german', 'es' => 'spanish', 'nl' => 'dutch');
次のようなテーブルが必要な X サイトがあります。
サイト Y は次のようになります。
このテーブルはサイトごとに異なる可能性がありますが、値がなくてもすべての言語を表示したいと考えています。言語のリストは、後で拡張するために分離する必要があります。
わかりますか?さらに情報が必要ですか?
c++ - 良いデザインでキャストを完全に回避できますか?
キャストが完全に必要な状況が存在するかどうか疑問に思っています。
ここでは、基本型ではなく、クラス間のキャストについて話しています。
static_cast
キャスト (またはのような C++ スタイルdynamic_cast
、または単純な C スタイルのキャスト) はコードの匂いですか? 役に立つ場合もあるが、避けることもできると思う。キャストは OOP ルールに違反しますか?
c# - シングルトン インスタンスを破棄/ガベージ コレクションする方法とタイミング
ネストされたクラスから作成された Singleton インスタンスを使用しています。このインスタンスは、Singleton が破棄されるときにクリアされるいくつかの静的コレクションを保持しますが、適切にガベージ コレクションされていない null 以外の破棄された Singleton への参照を取得することが問題です。
シングルトン インスタンスを完全に破棄してガベージ コレクションを行うタイミングと方法を知りたいので、破棄 (および null への設定) 後にインスタンスが再度クエリされたときに、新しいインスタンスが作成されます。
Singleton インスタンスに次のネストされたパターンを使用しています。
行 1 の問題は、クライアント クラスから SingletonClass を破棄した後、_collection オブジェクトが null になり、SingletonClass インスタンスは = null に設定した後でも非 null のままになることです。