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

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

c# - 特定のセッション変数がnullでないかどうかを尋ねて、セッション変数を操作しようとしています

状況は下部に記載されているように (Mvc ではなく Webworms を使用)、

おそらく、ほとんどすべての Web アプリケーションでセッション変数の実装を「マスター」する必要があるため、簡単に管理できる専用のクラスを作成しました。

アプローチは次のとおりです

この最初のコード ブロックは使用のためのものです。次のコード ブロックで、それが呼び出しているクラスを確認できます。

あいまいさを避けるために(接頭辞なしで)意図的にスペルミスの名前を使用しています..そして、そのようにIntelliSenseではるかに簡単に見つけることができました。

これまでのところ、これは a のインスタンスです。つまり、すべてを 1 つのバンドルとしてstruct「グループ化」または「結合」します。globals

そのため、グローバル変数を保存する必要がある場合はいつでも、提供する必要がある適切な構造変数に値を割り当てCurSesVarStructます。

そして、セッション変数に1回アクセスするだけで、「変数コレクション」を抽出するだけです- object、...実際にはセッション変数であるため、名前を一定に保ちます-_CurrentSesionGlobals

背景を説明するために最善を尽くしましたが、要するに:

セッション変数の 1 つとしてセッションに格納されるのは構造体です - データ型 =object または、セッション間で保存される構造体のクローンと言えます。

それを_CurrentSesionGlobals使用することで、次のようにセッションから必要な値にアクセスできます。

に格納する前に構造体を割り当てSessionます。

次に、次の方法-ExtrctSesnVar()以下を使用すると、たとえば次のように使用できます。

最後のセッションで保存された変数を抽出します。

実際にSelectedUercustidは構造体メンバーの 1 つです。

問題

_CurrentSesionGlobalsセッション変数からの抽出。

質問

結果の戻り値をどのように設定できますか、null

または、抽出しようとしてobjectいる指定された /が存在しないかどうかを最初に尋ねる条件ですか?Session Variablenull

現在、例外エラーが発生していますが、存在しないセッション変数の値を取得しようとしています。

次のコード ブロック .

これは、すべての Web サイト アプリケーションのヘルパーとしてソリューションに追加するクラスです。

それは実際には名前空間です。したがって、セッション変数の処理を担当するクラスはSesn

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

c# - リストのカップルに適したデータ型オブジェクト、両方を保持する 1 つのコンテナーとして

私が取り組み始めた新しいプロジェクトで、自分でC#を学び、

List<string>メソッドの 1 つは、パラメーターとして渡される型データを受け入れます。私が知りたいのは、これらのリストのうちの 2 つ、2 種類のデータ、または 2 つのグループが必要であることです

そして、この例のために、私には長所短所があると言います..女の子男の子

これらは実際には要素またはオブジェクトの2つの分離されたリストです。パラメーターとして渡す必要があり、1つのデータ型として渡す必要があります。次に、メソッド内でデータリストの分離を処理します、だから..いくつかのオブジェクトiの代わりにList、考えました(一瞬、そこにaDictionaryが適していると思いました...)

List渡す必要があるこのデータ型には、1つの要素(1つのアイテム...それぞれがa)しかありませんが

この結果を得るにはどうすればよいですか?

私はそれを説明しようとします:

ソース内の各アイテムの場合...ソースから両方をロードします

完了 List girls + List Boys に値が設定されています。One Girls And One Boys ListObjects しかないことを知っていても、それらを辞書として 1 つとして渡すにはどうすればよいでしょうか。

代わりに、次のようなものにする必要があります

心に留めておくべきことはほとんどありません...データのプロパティに関しては、優れたパフォーマンスが必要です...自然に望まれますが、最も重要なのは、並べ替えにループを使用し、あらゆる種類の対象として、適切/簡単に配置でき、反復に適している必要があります統計操作の。

  • 質問は、

ロジックをどのように実装しますか、それは既存のデータ型ですか...私が考えているのは?

そうでない場合、データ型を選択/作成するこのシナリオでどのようなアプローチを実装しますか?

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

c++ - Objective C から C++ へのタイピングの頭痛の種

私は C++ で働いていましたが、それは数年前のことで、ここ 5 年ほどの間、私はほとんど Objective C でしか働いていませんでした。

ただし、私は C++ json-parser を作成していますが、Objective C にあるような自然なマッピングがないため、概念的には困難です。どちらか一方が優れていると言っているわけではなく、自然なマッピングが見つからなかったと述べているだけです。 .

そのため、Objective CI では通常、json が非常に適切にマップされるため、NSDictionary として解析を開始します。NSDictionary はキーと値のペアのデータ型であり、キーは通常文字列 (ただし、任意の型にすることができます) であり、値は通常 (概念的には) NSObject であり、Objc ではすべてが NSObject を継承するため、型は一種の「自動ポリモーフィック」です。 「よろしければ。(私を助ける方法を正確に知っているかもしれないが、Objc を説明しないと何を求めているのか理解できない C++ 開発者向けの説明)。

とにかく、これは、json-stringの例がある場合を意味します:

それはすでに NSDictionary に正確にマップされており、最初の値は 2 番目の整数 (または数値)、2 番目の浮動小数点数 (または数値) であり、3 番目は NSString であり、4 番目は NSArray であり、私の例ではたまたま整数である 3 つの値を保持しますが、 NSObject から派生したものである限り、何でもかまいません。

C ++では、これを理解して適切なマッピングまたはモデルを見つけるのははるかに困難です。同じことを行うために独自のポリモーフィック型をロールすることができると思います。その後、抽象型のマップを作成して、ほぼ同じ結果を得ることができます行動。

しかし、独自のコンテナー (マップとベクター) を作成するか、独自の「Json タイプ」を作成する必要があると考えています。しかし、Objc は C++ とはまったく異なる言語であり、まったく異なる設計思想に基づいて構築されているため、Objc の正しい考え方に固執しすぎるのは少し心配です。

私が知らないC++でこのようなことを行うためのより良い、より正しい方法があるかもしれません。したがって、私の質問は、C++ で異なる型を持つ可能性があるものを適切に処理する方法です。

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

c# - string.Split(string) オーバーロードがないのはなぜですか?

String.Split区切り文字列と分割するテキストを受け入れるのオーバーロードがない正当な理由はありますか?

これは次のように使用できます

拡張メソッドを簡単に作成できることは本当にわかっていますが、これが追加されていない正当な理由があるに違いありません。

文字列区切り記号を使用して文字列を分割する方法の解決策を探しているのではなく、そのようなオーバーロードが問題を引き起こす可能性がある理由について説明を探していることに注意してください。これは、それが実際に問題を引き起こすとは思わないためであり、区切り文字としてstring[]シンプルではなく実際を渡さなければならない理由を初心者が理解するのは非常に難しいと思うからです。string

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

objective-c - ivar を含む単体テストを実行するための追加のコードを書くことは問題ありませんか?

単体テストの作成に関してはまだ初心者なので、どうすれば正しいのか頭を悩ませているケースによく遭遇します。計画されたデザインのテストを書いているときに、ふけを誘発するこれらのインスタンスの 1 つに出くわしました。私のデザイン:

ユーザーの入力に基づいて dataFetcherClass にメッセージを送信する 1 つの ViewController。(以下のコードは、罪のない人を保護するために変更されています)。

これらのアクションのデータ形式は同じです。これは、dataFetcher がその変更からデータを収集する場所です。したがって、BusinessDataFetcherClass には次のメソッドがあります。

fetchData メソッドは非同期でデータをフェッチし、完了したら収集したデータとともに通知を送信します。ここで、fetchLocalData または fetchWorldwideData が実行されたときに ivar _dataAddress が変更されたことを確認する単体テストを作成したいと思います。

これは、コードを変更しないと明らかに不可能です。これは _dataAddress をパブリック プロパティにすることで簡単に解決できると言う人もいますが、それが 1 つの解決策です。もう 1 つの方法は、_dataAddress ivar の値を返すメソッドを作成することです。どちらの場合も、実際のコードベース自体の全体的な品質を向上させるのではなく、テストのためだけにコードを変更する必要があるため、どちらの選択肢にも完全に満足しているわけではありません。

私は 2 番目の選択肢にたどり着き、メソッド -(NSString *) dataAddress; を含めました。私の質問は (見出しで述べたように) これで問題ないのでしょうか? 私のデザインは問題ですか?TDD の最大の目標はリグレッションを回避することであることは明らかですが、コード全体の品質を向上させることも重要な目標であると考えています。時折毛羽立ちを追加することは予想されますか?