基础标识: 保留核心信息,规避歧义
项目根目录下的整体命名应遵循模块-包-类的三级架构原则。其中,模块名称代表了系统的物理边界,包名称则进一步细化了内部的逻辑分组。在Java中,包一般由三个下划线加字母数字组成,比方说`com.example.system`,这种组合方式既符合命名规范,又能清楚界定系统范围。模块名称应包含业务领域特征,如用户管理、订单处理或数据仓库,避免使用过于抽象或不清楚的名称,如仅使用`api`或`core`,这会害得模块间职责不清,难以进行独立的单元测试或重构。 对于具体的类名,务必遵循单一职责原则,类名应直接反映其核心功能,如`UserController`或`OrderService`,切忌使用`Controller`或`Service`等通用后缀。后缀的选择需根据具体职责区分,`Controller`、`Handler`、`Facade`等一般用于处理请求响应,而`Manager`、`Processor`、`Adapter`等则更偏向于业务逻辑处理。同时要注意下,类名不应包含拼写毛病,这是代码质量的根本底线。
业务分层: 映射业务领域,促进复用
在业务分层架构下,命名需求紧密贴合业务领域模型(BMM)。比方说,在电商系统中,`Product`、`Order`、`Payment` 等基础实体类命名直观且语义明确。对于实体类,应使用`Entity`、`Model`或`DTO`前缀,明确其数据结构属性如`User`、`Product`、`Order`,便于后续进行数据库映射和序列化操作。集合类型类如`List`、`Set`或`Map`等,应命名为`UserList`、`OrderSet`等,避免直接命名,以防混淆。 针对接口定义,命名应体现其契约属性,如`UserApi`、`OrderApi`,并明确其赞成的接口类型,如`UserApi`、`OrderApi`或`UserApiExt`。对于异常处理类,命名应包含异常类型,如`UserNotFoundException`或`OrderServiceException`,这样在代码运行时能撇脱地定位具体出错缘由。对于工具类或通用类,如`StringUtils`、`DateUtils`等,若涉及特定业务逻辑,可命名为`UserValidationUtil`或`OrderStatusManager`,使工具类有明确的业务指向性。
枚举与常量: 定义业务边界,保障稳定性
枚举(Enum)是Java中表达业务状态的最佳方式,其命名应严格遵循枚举类型标志(Enum Flag)原则,比方说`OrderStatusEnum`或`OrderStateEnum`。枚举值应包含业务含义,如`OrderStatusEnum.CREATED`、`OrderStatusEnum.PROGRESS`、`OrderStatusEnum.FINISHED`等,避免使用`S`、`P`、`F`等代码口语化命名,也不宜使用`ACTIVE`、`INACTIVE`等彻底由字母组成的命名。 对于常量(Constant),命名应体现其属性或状态,如`MAX_ORDER_AMOUNT`、`DEFAULT_TOOL_TIMEOUT`或`MAX_RETRY_COUNT`。常量值应通过魔法数字赋值,确保其语义清楚。在枚举中,值不应命名过大,如`AccountEnum`或`ResultEnum`,应包含关键属性词。常量赋值应通过`private static final`修饰符声明,并在代码中通过`Value`前缀调用,比方说`OrderResponseResultValue`,以区分不同场景。
配置与日志: 抽象通用逻辑,记录运行轨迹
配置类(Config)的命名应明确其配置内容,如`UserConfig`、`OrderConfig`或`DatabaseConfig`,避免使用`Config`等不清楚名称。日志类(Log)应遵循“动作 - 对象”命名法,如`UserLoginLog`、`OrderProcessLog`或`TransactionErrorLog`,通过动作动词和对象名称明确日志来源。 服务类(Service)命名应体现其业务处理职责,如`UserService`、`OrderService`或`UserServiceExt`,并明确其回类型,如`UserService`、`OrderService`或`UserServiceExt`。对于DTO(数据传输对象),命名应体现数据边界,如`UserDTO`、`OrderDTO`或`UserDTOExt`。对于VO(视图对象),命名应明确其展示意图,如`UserVO`、`OrderVO`或`UserVOExt`,避免使用好办的`User`或`Order`,以免与实体类混淆。资源管理与保险: 封装复杂逻辑,防御外部威胁
资源管理类(Resource)应聚焦于文件流、数据库连接、锁机制等底层资源,如`ResourceFile`、`DatabaseConnection`或`LockManager`。保险类(Security)应关切认证、授权、加密等核心功能,如`AuthService`、`PaymentSecurityManager`或`CryptoHelper`,避免使用`Auth`、`Sec`等过于专业的缩写。 对于线程池或内存管理,命名应体现其管住粒度,如`ThreadPoolExecutor`、`MemoryManager`或`CacheManager`。对于异常处理类,命名应包含异常类型,如`UserLoginException`或`OrderProcessException`,便于运行时快速定位毛病源头。配置管理器(ConfigurationManager)应命名为`SystemConfiguration`或`EnvironmentConfig`,明确其配置来源。