fix: update 一个程序员的自我修养.md (#158)
This commit is contained in:
parent
cd0780e93b
commit
d58e9719f1
@ -91,7 +91,7 @@
|
|||||||
- 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。
|
- 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。
|
||||||
1)跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
|
1)跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
|
||||||
2)应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
|
2)应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
|
||||||
反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示 “是” 的变量。
|
反例:易懂变量也要统一定义成应用内共享常量,两位工程师在两个类中分别定义了表示 “是” 的变量。
|
||||||
类 A 中:public static final String YES = "yes";
|
类 A 中:public static final String YES = "yes";
|
||||||
类 B 中:public static final String YES = "y";
|
类 B 中:public static final String YES = "y";
|
||||||
A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。
|
A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。
|
||||||
@ -739,7 +739,7 @@ logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);
|
|||||||
|
|
||||||
### 3.2 SQL 语句
|
### 3.2 SQL 语句
|
||||||
|
|
||||||
- 不要使用 count(列名)或 count(常量)来替代 count(_),count(_)是 SQL92 定义的 标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。
|
- 不要使用 count(列名)或 count(常量)来替代 count(\*),count(\*)是 SQL92 定义的 标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。
|
||||||
说明:**count(\*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行**。
|
说明:**count(\*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行**。
|
||||||
|
|
||||||
- **count(distinct col) 计算该列除 NULL 之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同的值,也返回为 0**。
|
- **count(distinct col) 计算该列除 NULL 之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同的值,也返回为 0**。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user