为互斥选项而不是 True/False 关系命名布尔变量
Naming Boolean Variables for Mutually Exclusive options rather than True/False relationship
我正在寻找一种方法来命名代表两个互斥选项的布尔变量,以便在变量为 True 或 False 时清楚所选选项是什么,而无需查看实现。
举个例子,假设您的程序在 Chicken xor Fish 之间进行选择。目前,在数据库中,该变量将被命名为 "lChickenOrFish"。仅仅看一下,不清楚 lChickenOrFish = True 是代表 Chicken,还是代表 Fish。要找出答案,您必须打开代码并搜索它的使用位置,然后从那里进行解释。
我知道您可以改为使用两个变量,lChicken 和 lFish,但这会导致同一行中出现 lChicken = True 和 lFish = True 的可能性,这将是一个错误,因此需要代码进行检查为此。
您也可以只使用 lChicken 作为名称,并让 lChicken = 0 隐式表示 Fish。但是,如果程序员需要知道另一个选项是什么,他们就必须打开代码进行查找,这与之前的问题是一样的。在某些情况下,甚至可能不清楚是否还有其他选项可供查找,具体取决于布尔值的作用。
那么,有没有办法让程序员清楚地了解 SQL 服务器数据库,而无需查看代码中的实际实现?
我建议使用枚举值或字符串值,而不是使用布尔值。在没有指定语言的情况下,我可以为枚举提供一些伪代码:
enum FoodValue {
Chicken = 1,
Fish = 2
}
var dbValue = FoodValue.Chicken;
这样,如果以后要添加值,更新枚举或直接存储字符串值就很容易了。
我正在寻找一种方法来命名代表两个互斥选项的布尔变量,以便在变量为 True 或 False 时清楚所选选项是什么,而无需查看实现。
举个例子,假设您的程序在 Chicken xor Fish 之间进行选择。目前,在数据库中,该变量将被命名为 "lChickenOrFish"。仅仅看一下,不清楚 lChickenOrFish = True 是代表 Chicken,还是代表 Fish。要找出答案,您必须打开代码并搜索它的使用位置,然后从那里进行解释。
我知道您可以改为使用两个变量,lChicken 和 lFish,但这会导致同一行中出现 lChicken = True 和 lFish = True 的可能性,这将是一个错误,因此需要代码进行检查为此。
您也可以只使用 lChicken 作为名称,并让 lChicken = 0 隐式表示 Fish。但是,如果程序员需要知道另一个选项是什么,他们就必须打开代码进行查找,这与之前的问题是一样的。在某些情况下,甚至可能不清楚是否还有其他选项可供查找,具体取决于布尔值的作用。
那么,有没有办法让程序员清楚地了解 SQL 服务器数据库,而无需查看代码中的实际实现?
我建议使用枚举值或字符串值,而不是使用布尔值。在没有指定语言的情况下,我可以为枚举提供一些伪代码:
enum FoodValue {
Chicken = 1,
Fish = 2
}
var dbValue = FoodValue.Chicken;
这样,如果以后要添加值,更新枚举或直接存储字符串值就很容易了。