跳转至

命名规则

九大命名规则

以下是 九大通用的良好命名规则,可用于 API 方法、函数或服务,确保清晰、可维护且易理解。

1. 清晰表达功能变化

当新方法基于旧方法但增加了功能时,常见的命名方式:

  • GetXWithY(如 GetAccountWithCache) → 表达 在原功能上增加了新特性
  • GetXIfY(如 GetAccountIfCached) → 适合 条件式逻辑
  • TryGetX(如 TryGetAccount) → 适合 尝试获取,可能失败
  • EnsureX(如 EnsureAccountLoaded) → 适合 保证数据存在
  • XOrY(如 GetAccountOrNull)→ 明确返回可能类型
  • XWithY → 新增参数时可扩展(如 GetAccountWithOptions
  • XAsync → 明确异步方法(如 GetAccountAsync
  • XIfY → 可组合条件(如 GetAccountIfActive
  • XNoY → 显式声明功能剥离(如 GetAccountNoValidation
  • AddYToGetX(如 AddCacheToGetAccount)→ 表示在原功能基础上添加了 额外的功能,像是添加缓存机制。
  • GetXPlusY(如 GetAccountPlusBalance)→ 表示获取的数据是 多个相关信息的组合,例如账户信息和余额信息。
  • GetXIncludingY(如 GetAccountIncludingTransactions)→ 表示获取的数据 包含特定的附加信息或子集,如账户信息包含交易记录。

2. 以数据来源区分

适用于有多个获取途径的情况:

  • GetXFromCache / GetXFromDB(如 GetAccountFromCache) → 明确来源
  • LoadX(如 LoadAccount) → 适合从缓存或数据库加载数据
  • FetchX(如 FetchAccount) → 适合表示 可能从远程/缓存获取
  • RetrieveX(如 RetrieveAccount) → 泛化的 数据检索 方法
  • ReadX → 强调无副作用读取(如 ReadAccountConfig
  • StreamX → 流式获取(如 StreamAccountLogs
  • QueryX → 强调复杂查询(如 QueryActiveAccounts
  • PullX → 主动拉取远程数据(如 PullLatestAccount
  • SyncX → 同步本地与远程状态(如 SyncAccountToCloud
  • GetXFromRemote(如 GetAccountFromRemoteServer)→ 用于表示从 远程服务器 获取数据,区别于本地缓存或其他本地存储的数据源。
  • RefreshX(如 RefreshAccountData)→ 表示 强制从源系统获取最新数据,而不是使用缓存版本。
  • StreamX(如 StreamAccountUpdates)→ 适用于从 数据流 中获取或推送数据。

3. 版本迭代

适用于 升级替换旧版本

  • Xv2 / XV2(如 GetAccountV2) → 常见但不推荐 滥用
  • XEnhanced(如 GetAccountEnhanced) → 表达增强版本
  • XOptimized(如 GetAccountOptimized) → 适用于优化性能的版本
  • XDeprecated → 显式标记弃用(如 GetAccountDeprecated
  • XLegacy → 旧版兼容方案(如 GetAccountLegacy
  • XBy[条件] → 参数化版本(如 GetAccountByTimestamp
  • 语义化版本 → 适用于服务(如 AccountServiceV1_2_0
  • NextX(如 NextGenerationGetAccount)→ 表示这是一个 新一代的实现,可能包含多方面的改进,如性能、功能等。
  • LegacyX(如 LegacyGetAccount)→ 用于标记 旧版本或即将被淘汰的版本,以便于后续的维护和升级。
  • BetaX(如 BetaGetAccount)→ 表示这是 测试版或预发布版,功能可能尚未完全稳定。

4. 动作+对象

清晰表达 行为 + 作用对象

  • FindX(如 FindAccount) → 适合搜索/查找
  • CheckX(如 CheckAccountExists) → 适合 验证 逻辑
  • CreateX / UpdateX / DeleteX(如 CreateAccount) → 经典 CRUD 方式
  • ComputeX(如 ComputeAccountBalance) → 适合 计算结果
  • AddX/RemoveX → 集合操作(如 AddAccountPermission
  • BeginX/EndX → 事务操作(如 BeginAccountTransaction
  • LockX/UnlockX → 资源控制(如 LockAccountEditing
  • ExportX/ImportX → 数据迁移(如 ExportAccountData
  • ValidateX → 校验逻辑(如 ValidateAccountEmail
  • GenerateX(如 GenerateAccountReport)→ 表示 生成某种数据或报告,一般可能涉及计算或查询。
  • TransformX(如 TransformAccountDataForDisplay)→ 表示对数据进行 转换,可能用于适配不同的格式或系统要求。
  • FilterX(如 FilterAccountByStatus)→ 表示 根据特定条件筛选数据

5. 条件性逻辑

当方法 可能返回不同结果

  • TryX(如 TryGetAccount) → 适合 失败时不抛异常
  • EnsureX(如 EnsureAccountLoaded) → 确保某状态达成
  • MaybeX(如 MaybeGetAccount) → 可能会返回,也可能不会
  • XOrElse → 提供备选方案(如 GetAccountOrElseCreate
  • XOrDefault → 返回默认值(如 GetAccountOrDefault
  • XUnchecked → 跳过验证(如 DeleteAccountUnchecked
  • XSafely → 强调安全操作(如 UpdateAccountSafely
  • IsX(如 IsAccountActive)→ 用于 判断某个条件是否成立,布尔值返回类型。
  • ShouldX(如 ShouldAccountBeDenied)→ 表示逻辑目的是 判断是否应该执行某个操作
  • DefaultX(如 DefaultGetAccount)→ 表示使用 默认策略或配置 来执行操作。

6. 性能特征标记

  • XFast → 性能优化版本(如 SearchAccountsFast
  • XLazy → 延迟加载(如 LoadAccountLazy
  • XBatch → 批量操作(如 UpdateAccountsBatch
  • XCached → 明确缓存策略(如 GetOrdersCached

7. 领域驱动设计(DDD)风格

  • RegisterX → 领域事件(如 RegisterAccountCreatedEvent
  • ApplyX → 状态变更(如 ApplyAccountDiscount
  • CalculateX → 领域计算(如 CalculateAccountRisk
  • EstimateX → 预测性计算(如 EstimateAccountGrowth

8. 错误处理模式

  • XOrError → 显式错误返回(如 GetAccountOrError
  • XWithFallback → 故障回退(如 GetConfigWithFallback
  • XWithRetry → 自动重试策略(如 SendEmailWithRetry
  • XUnsafe → 需调用方处理异常(如 SaveAccountUnsafe

9. 状态变更通知

  • OnX → 事件监听(如 OnAccountUpdated
  • NotifyX → 主动通知(如 NotifyAccountExpired
  • ObserveX → 观察者模式(如 ObserveAccountChanges
  • SubscribeX → 订阅机制(如 SubscribeAccountAlerts

示例

已知现有一个接口名称叫 GetAccount 用户获取用户账户信息, 现在提供一个新接口,核心逻辑跟 GetAccount 一样,但增加了缓存功能,这个新接口如何命名?

GetAccount 新接口命名 场景决策树 如下:

                      ┌──────────────┐
                      │ 需要新增功能? │
                      └──────┬───────┘
    ┌─────────────────┬──────┴───────┬──────────────────┐
    ▼                ▼               ▼                 ▼
带缓存?         异步操作?        条件获取?        性能优化?
GetAccountWithCache  GetAccountAsync  GetAccountIfActive  GetAccountOptimized

可以考虑以下命名方式:

推荐命名:

  1. GetAccountWithCache (✅ 清晰表达增加了缓存功能)
  2. GetCachedAccount (✅ 直观表达“从缓存获取账户信息”)
  3. FetchAccount (✅ 可以表示“可能来自缓存”)
  4. RetrieveAccount (✅ 更泛化,适用于不同的数据源)

不太推荐的命名:

  • GetAccountV2 ❌(除非是 API 版本升级,否则 v2 容易引起困惑)
  • GetAccountCached ❌(读起来不太自然)
  • GetAccountFromCache ❌(容易误解为只从缓存获取,不走原始逻辑)

最佳选择:

  • 如果想保持与原有命名一致,建议 GetAccountWithCacheGetCachedAccount
  • 如果希望稍微泛化一点,可以使用 FetchAccountRetrieveAccount