坏的实践:
private void ShowHideWindow(Boolean value)
{
if (value)
{
// 正向的逻辑
}
else
{
// 反向的逻辑
}
}
上面的代码,还存在违反单一职责原则问题。
好的实践:
private void ShowWindow()
{
// 你的逻辑
}
private void HideWindow()
{
// 你的逻辑
}
这既不违反单一职责原则,也不会产生歧义。
什么是魔术字符串?它们是直接在应用程序代码中指定的字符串,对应用程序行为有直接影响。换句话说,不要在我们的应用程序中使用硬编码的字符串或值。当您的应用程序增长时,很难跟踪这些字符串。此外,这些字符串可以与某种外部引用相关联,例如文件名、文件路径、URL 等。在这种情况下,当资源的位置发生变化时,所有这些魔术字符串都必须更新,否则该应用程序中断。
坏的实践:
private void Set(String userRole)
{
if (userRole == "Admin")
{
// 你的逻辑
}
}
好的实践:
private const string ADMIN_ROLE = "Admin";
private void Set(String userRole)
{
if (userRole == ADMIN_ROLE)
{
// 你的逻辑
}
}
或者,您也可以为用户角色创建一个枚举并简单地使用它。这是一种更简洁的代码编写方式。
通常有注释掉未使用代码的做法。这最终会在编译应用程序时增加代码行数。你不想这样做。您可以使用 Git 等源代码控制来确保您可以随时恢复。更喜欢使用 Git 而不是注释掉代码。
太多的参数总是一场噩梦。如果您倾向于对任何方法有超过 3 个参数输入,为什么不将其包装到请求对象或其他东西中然后传递呢?
坏的实践:
public void SomeMethod(string name, string city, int age, string section)
{
// 你的逻辑
}
好的实践:
public void SomeMethod(Student student)
{
// 你的逻辑
}
很多语言允许你在 if 语句里面只有一句话的时候省略掉花括号,这会带来不必要的麻烦。
坏的实践:
if (condition)
Action();
好的实践:
if (condition)
{
Action();
}
对加减乘除操作符优先级的记忆是刻在骨子里的,不适用括号是没有问题的,但是在编程语言中,除了加减乘除操作符之外,还有移位、与等其它操作符,他们与加减乘除的操作的优先级组合的时候,那么你就很难记住了。
你觉得 2 << 7 - 2 * 3 这样的表达式结果等于多少?是 250?其实它的结果是 4。因为 << 操作符的优先级比 +/- 还低,所以该表达式等价于 2 << (7 - 2 * 3),而不是 (2 << 7) - 2 * 3。因此,加入合理的括号来表明表达式的计算顺序,停止死记硬背操作符的优先级是更好的选择。