【转】[Java] 常见的文件命名规则

来自:kimi.ai

在Java 项目中,遵循良好的文件命名规则对于代码的可读性、可维护性和团队协作至关重要。以下是一些常见的文件命名规则和最佳实践:

1. 包名(Package Names)

  • 使用小写字母:包名应全部使用小写字母,避免使用下划线或中划线。
  • 反映项目结构:包名应反映项目的模块和层次结构,通常以公司域名反向开头,后跟项目名称和模块名称。
    • 示例:com.example.projectname.module

2. 类名(Class Names)

  • 使用驼峰命名法:类名应使用大驼峰命名法(首字母大写),每个单词的首字母大写,不使用下划线或中划线。
  • 描述性:类名应尽可能描述类的功能或用途。
    • 示例:UserServiceUserRepositoryUserController

3. 接口名(Interface Names)

  • 使用驼峰命名法:接口名也应使用大驼峰命名法。
  • 可选前缀:接口名可以加上前缀I,但这种做法在Java社区中并不常见。更常见的做法是直接使用描述性的名称。
    • 示例:UserService(而不是IUserService

4. 方法名(Method Names)

  • 使用驼峰命名法:方法名应使用小驼峰命名法(首字母小写),每个单词的首字母大写,不使用下划线或中划线。
  • 动词开头:方法名应以动词开头,描述方法的行为。
    • 示例:saveUserfindUserByIdupdateUser

5. 变量名(Variable Names)

  • 使用驼峰命名法:变量名应使用小驼峰命名法。
  • 描述性:变量名应尽可能描述变量的用途或内容。
    • 示例:userNameuserAgeuserRepository

6. 常量名(Constant Names)

  • 使用大写字母和下划线:常量名应全部使用大写字母,单词之间用下划线分隔。
    • 示例:MAX_USERSDEFAULT_USER_NAME

7. 文件名(File Names)

  • 与类名一致:Java文件名应与类名完全一致,包括大小写。
    • 示例:UserService.javaUserController.java

8. 配置文件名(Configuration File Names)

  • 使用小写字母和中划线:配置文件名应使用小写字母,单词之间用中划线分隔。
    • 示例:application.ymlapplication-dev.ymlapplication-prod.yml

9. 测试类名(Test Class Names)

  • 使用驼峰命名法:测试类名应使用大驼峰命名法,并在类名后加上TestTests
    • 示例:UserServiceTestUserControllerTests

10. 资源文件名(Resource File Names)

  • 使用小写字母和中划线:资源文件名应使用小写字母,单词之间用中划线分隔。
    • 示例:messages.propertiesmessages_en.properties

示例项目结构

 

com/
└── example/
    └── projectname/
        ├── controller/
        │   └── UserController.java
        ├── service/
        │   └── UserService.java
        ├── repository/
        │   └── UserRepository.java
        ├── model/
        │   └── User.java
        ├── dto/
        │   └── UserDto.java
        ├── config/
        │   └── AppConfig.java
        ├── exception/
        │   └── CustomException.java
        └── resources/
            ├── application.yml
            ├── application-dev.yml
            └── messages.properties

总结

遵循这些命名规则可以帮助你和你的团队更好地组织和管理代码,提高代码的可读性和可维护性。这些规则在Java Spring项目中被广泛接受和使用,有助于保持代码的一致性和专业性。

来源链接:https://www.cnblogs.com/z5337/p/18672954

请登录后发表评论

    没有回复内容