問題タブ [code-structure]
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.
code-structure - アプリケーション パラメータの密結合を回避しようとする
私の Web アプリケーションには、このような URL パラメーターを解析するメソッドがあります。
当社の部門の 1 つに、このアプリケーションのパラメーターを含む URL のリストがありますが、理由はわかりませんが、これらのパラメーターを変更するのは困難です。このような URL を使用する場合があります。.../default.aspx?Service=Wells&Layer=ActiveWells&Query=XYZ IN ('1234567890...')
最近、次のような変化がありました。「ActiveWells」レイヤー名が「Surface Participation Wells」に変更されました。「BoreStick」レイヤー名が「WellBores」に変更されました。したがって、その部門の事前設定された URL パラメーターは機能しなくなります。
私のマネージャーは、「ActiveWells」のインスタンスを「Surface Participation Wells」のようなものに変更するコードを追加するように私に言いました。その後、マネージャーは、後で URL パラメーターを持つ部門がそれらをすべて新しい名前に変更したときに、そのコードを削除できると言いました。
「密結合」とは正確にはわかりません。しかし、私はそれが悪いことを知っており、これはその例のように聞こえます. また、コードを一時的に保持して後で削除することを意図してコードを追加することは、悪い考えのように思えます。
しかし、私は自分の命令に従い、次のようなコードを追加しました:
静的な LayerNameChange メソッドに switch ステートメントがあります。
今から数か月または数年後、このアプリの開発者は誰であれ、他の部門が事前設定されたすべての URL パラメータの変更を完了したときに、これを削除する必要があることを知っているはずです。
これに似た別のシナリオは、コンソールまたは Windows ベースのアプリケーションが、
これを行うためのより良い方法はありますか?
編集:
上で述べたことの代わりに、以下の疑似コードのようなことをしたらどうなるでしょうか。
呼び出しメソッドには、ある種の、
解析メソッドが NameConverter クラスの存在を知る必要があるのはなぜですか?
そう自分に問いかけました。
結局のところ、私が見ているように、それは URL パラメーターを解析する責任の一部ではありません。
私がこれを考えすぎているかどうかはわかりません。私はこのレベルの開発の認識に不慣れです。質問は既に回答済みであることは承知していますが、私のこの新しいアイデアについてさらにコメントをいただければ幸いです。
vba - vbaのグローバル変数を関数に渡す
したがって、フローのさまざまな物理的属性 (マッハ数、温度など) を含むこの数の異なる 2 次元配列があります。これらの値を Excel でプロットし、さまざまな平均を計算する必要があります。これらの配列はグローバルに宣言されています。これを行うには、配列ごとに 1 つのサブルーチンを記述していましたが、これは良い方法ではありません。可能な限り一般的なものに保つ必要があるからです。
つまり、サブルーチンには配列と対応するワークシートが渡されます...
またはポインタを使用しますか?vbaは私の選択した武器ではありませんが、この場合は必要なので、他のより高度なプログラミング言語(C ++など)でこれをどのように解決するかを知ることも興味深いでしょう。
「型の不一致: 配列またはユーザー定義型が必要です!」というエラーが表示されます。
私が電話するとき、私は使用します:
これはサブルーチンです:
javascript - JavaScript に別のソース ファイルを含めることはできますか?
私は、主にクライアント側の JavaScript によって駆動される大規模な Web アプリケーションに取り組んでいます。私はまだプロトタイピング段階にあり、ソース ファイルが非常に長くなり、複数のファイルに分割したいと考えています。
たとえば、PHP では、include('source.php')
orを呼び出すだけrequire_once('source.php')
です。
JavaScript で複数のソース ファイルを接続する同様の方法はありますか? JavaScript を多用する大規模な Web アプリケーションが数多くありますが、一般的な解決策は何ですか?
c# - ゲッター、関数、または単にコンストラクターに設定しますか?
クラス内で計算されたものを書くための優れたパフォーマンスと読みやすさの方法が見つかりません。次のクラスと、FinalPrice を取得するすべての方法を想像してください。
オプション 1: 計算したい各プロパティの変数宣言を持つこと、恐ろしい可読性
オプション 2: クラスでの順序の問題が問題になります。FinalPrice ラインを他のラインより前にすることはできません。そうしないと機能しませんが、エラーはスローされません。
オプション 3: すべての式を書き直す - メンテナンスに悪い。後で価格の違いを導入する可能性が最も高い.
オプション 4: ゲッターの使用。これは呼び出されるたびに計算されます。これは単純な計算ですが、より多くのコードが重く想定されています。
オプション 5: 関数を使用します。これは良いことか悪いことか??
c++ - クラス ポインタと参照
ポインターと参照の基本は理解していますが、最大の問題は、それらをいつ (そしてどちらを) 使用するかを決定することです。私が与える主な例は、基本的なゲームの 1 つです。セットアップが次のようなものであると仮定します。
- 新世界
- カメラ
- 地図
ゲームが新しいセーブを開始するか、既存のワールドをロードするたびに、ワールドを削除して新しいワールドをロードするため、ワールドはポインタです。ただし、World の内部では、Camera と Map の存在は 1 つだけ存在し、World の期間だけ存在する必要があります。World が破壊された場合、明らかにそれらも破壊されるはずです。ただし、Map がカメラにアクセスする必要があるとしましょう (ただし、他のオブジェクトも同様です)。Camera は、参照によって Map に渡すか、ポインターとして渡す必要がありますか? たとえば、参照によるものであると想定されている場合、次のようにする必要があります。
またはもっと好き:
また、Map が grid と呼ばれるタイルの 2D ベクトルを保持しているとします。何かのようなもの:
ここで、そのグリッドを渡す必要がある PathFinder クラスがあるとします。タイルを直接編集して、f、g などの値を (パスファインディング用に) 変更する必要があります。その 2D ベクトルは、Tile の通常の 2D ベクトルであり、パスファインダーへの参照によって全体が渡されるべきでしょうか? それとも、Tile ポインターの 2D ベクトルである必要がありますか?
また、NPC とプレイヤーには、現在いるタイルである currentTile があります。そのタイルへの参照またはポインタが必要になるため、NPC/Player クラス内の次のようなものを介して、そのタイルの占有者として自分自身を設定することもできます。
もう 1 つの懸念は、そのグリッドを破棄して新しいマップをロードするときに発生します。存在しなくなったタイルを指しているものがないことを確認するにはどうすればよいでしょうか。これらのクラスをループして currentTile を NULL に設定するだけでよいのでしょうか?
これは、私がこのことで本当に混乱し始めたところです。私は明らかにかなり初心者なので、どんな助けも大歓迎です。@_@; これが実際にゲームのトピックに関連していない場合は申し訳ありません。別のスタック交換に移動する必要がある場合は、お知らせいただくか、移動してください (可能であれば)。>_<