fix: update 一个程序员的自我修养.md (#158)

This commit is contained in:
cn-zane 2024-05-23 12:35:00 +08:00 committed by GitHub
parent cd0780e93b
commit d58e9719f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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**