2

データベースにビットフィールドのあるテーブルがあり、そのフィールドをアクティブと呼びましょう

アプリケーションに可変ブール値がある場合は、それをNotActiveと呼びます。

テーブルからフィールドを取得するたびに、アプリケーションで変数の意味を切り替えます。

NotActive = !mytable.active;

別の例は、 Enable__yes__noという名前のデータベースのビットフィールドと、実行するコードです。

control.enabled = !mytable.Enable_yes_no

ベストプラクティスは、同じ名前と同じ意味を維持することですが、上記のパターン、どのようにそれを呼び出すのですか?

4

5 に答える 5

12

ブール変数に負の接頭辞を付けることはしません。

変数に IsActive または Active という名前を付けます。NotActive という名前は二重否定です。

編集/説明:

モノがアクティブかどうかを確認する必要がある場合は、二重否定が必要です。

If (!NotActive) { DoSomething() }

正のブール値の変数名は、はるかに理解しやすいです。

If (isActive) { DoSomething() }
于 2009-10-06T12:42:23.713 に答える
6

設計による難読化?

于 2009-10-06T12:39:18.190 に答える
3

既存のデータベースとの後方互換性?

于 2009-10-06T12:40:43.853 に答える
1

これは「否定的ではないスパゲッティ混乱パターン」として広く知られており、1972 年に初めて言及されました。;-) SCNR

于 2009-10-06T12:51:58.203 に答える
0

ここでの問題は、データの特定の命名ではなく、アーキテクチャにあると思います。たとえば、エンティティ フレームワークを使用した場合、このテーブルのエンティティは InActive というプロパティを宣言し、Active 列をデータストアとして使用できます。外の世界に関する限り、前後の変換は透過的です。

于 2009-10-06T12:42:20.773 に答える