本帖最后由 liukun11 于 2017-9-12 20:42 编辑
JAVA 编码规范(命名篇) 何为编码规范? 所谓编码规范,指的是代码编写者(程序猿)在程序编码时所要遵循的约定俗成的规则。 为什么需要遵循编码规范? 有过开发经验的朋友都知道,在软件产品的开发阶段,通常情况不是由一个开发人员独立完成,而是多人协作。试想一下,如果一个产品团队的成员在编写代码的过程中,没有科学统一的规范进行约束,而是按照个人习惯进行编码。那么团队成员将会很难快速清晰的阅读和理解他人的代码。这个问题轻则影响团队的协作效率,延长项目的开发周期,重则引起团队内部矛盾,影响团队和谐。
另外,在一个成熟软件产品的生命周期中,超过 70% 的时间在于产品的维护。更重要的是,绝大多数情况下,会有多个开发人员在不同的阶段参与到维护工作中。如果从最初的开发人员到后面的维护人员也是按照个人的习惯随心所欲的编写代码,那么随着时间的推移,产品的维护难度会变得越来越大。因为,后面的维护人员可能需要去理解和熟悉一个项目中由前面多个参与者留下的多种风格混合的大杂烩代码。因此,你会经常在技术社区,技术交流群里看到很多程序员吐槽,自己刚进入一家公司,接手了一堆「屎一样的代码」。 应该遵循哪些规范?
1.文件编码规范 所有源代码文件采用 UTF-8 编码。避免因开发环境的不同产生中文乱码。 2.命名规范 命名包含 包名,类名, 方法名,常量变量名等。在命名时要力求做到统一,简介,达意。尽可能的避免拼音的出现,某些情况下,实在有困难,至少也要杜绝出现英文和拼音的混合。 2.1 包名 包名总是小写,通常采用公司的域名开始。而且包名的前缀一般是一个顶级域名。如:com,cn,org,edu,gov,net 等。另外在包名中尽量不要出现除小写字母和不可避免的数字之外的其它特殊字符。
应该是 | 而不是 | com.itheima.store | czbk.itheima.Store_v2.0 |
2.2 类名 类名应该是一个名词,采用大小写混合的方式,每个单词的首字母大写。同时应该避免使用除了已经广泛使用的单词缩写(如,URL,URI,JDBC),但是如果使用缩写,缩写部分字母通常大写。
应该是 | 而不是 | ProductDao | productDao或者Productdao | JDBCUtils | JdbcUtils |
类名应该有一个合适的后缀,常用后缀如下表: 后缀 | 含义 | 示例 | Servlet | 表示一个 Servlet | UserServlet | Service | 表示一个业务类 | UserService | Dao | 表示这个类中封装了对数据访问的操作 | UserDao | Bean | 表示这是一个 JavaBean | UserBean | Impl | 表示这是一个接口实现类 | UserServiceImpl | Factory | 表示这是一个产生对象用的工厂类 | BeanFactory | Util | 表示这是一个工具类 | CookieUtils | Wrapper | 这是一个包装类 | HttpServletRequestWrapper | Action | 一个请求处理和逻辑管理类 | UpdateOrderAction | Filter | 表示这是一个过滤器 | AutoLoginFilter |
...... 一些通用的抽取,或者基类。建议以特定的前缀开始,如 Base。 2.3 接口 接口的命名规范基本与类一致。至于接口是否以 Inter 或者 Interface 结尾,并无大碍,采用一致的方案即可。 2.4 方法名 方法名通常以动词作为前缀,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写,遵循驼峰法则。 应该是 | 而不是 | initData() | InitData() 或者 initdata() |
常见的动词前缀如下表:
后缀 | 含义 | 示例 | get | 获得 | getName() | set | 设置 | setName() | do | 执行某个任务 | doParseJob() | insert | 插入 | insertProduct() | delete | 删除 | deleteProduct() | update | 更新 | updateUser() | find | 查找 | findUserById() | send | 发送 | sendNotificationMessage() | receive | 接收 | receiveCategoryList() | create | 创建 | createOrder() | init或则initialize | 初始化 | initUserInfo() | prepare | 准备 | prepareResponseData() | copy | 拷贝 | copyProductList() | calculate | 计算 | calculateTotalPrice() | dispatch | 分发 | dispatchRequest() | analysis | 分析 | analysisMemory() | convert | 转换 | convertType() | write | 写入 | writeToCache() | read | 读取 | readFromCache() |
2.5 字段 2.5.1 变量 · 第一个单词的首字母小写,其后单词的首字母大写,遵循驼峰法则。 · 变量名应该简洁,便于记忆。但是要尽量避免单个字符的变量名,如 i,j 等,除非是类似于 for 循环中使用的临时变量。 · 变量名不建议以下划线或者美元符开始,虽然语法上是允许的。 2.5.2 常量 · 量应该全部大写。 · 常量的单词间用下划线分割。 · 枚举的命名方式与常量一致。
|