Java编程规范——重点摘要

来源:互联网 发布:网络固定电话 编辑:程序博客网 时间:2024/06/06 00:39

1、概述

1.1、目标:

提高代码的可读性,提高系统的健壮性、稳定性、可靠性。


1.2、原则:

运用常识

当找不到任何规则或指导方针,当规则明显不能适用,当所有的方法都失效的时侯: 运用常识并核实这些基本原则。这条规则比其它所有规则都重要, 常识是必不可少的。

当你要违反一个标准时,注释你的原因

当你要违反一个标准时,你这样做的时候,你必须注释你违反这个标准的原因,违反标准的潜在原因以及在何种条件(可能/必须)满足的情况下,标准可以被应用到这个情况中。

代码的可维护性

你的 Java 代码在你已离开并开始另一个项目之后,会保留相当长的一段时间。因此开发过程中一个很重要的目标就是要确保在开发成员或开发团队之间的工作可以顺利交接,不必花很大的力气便能理解已编写的代码,以便继续维护和改进以前的工作。


2、Java编程命名规范

2.1、一般约定:

命名时应始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。

  1. 使用可以准确说明变量/字段/类的完整的英文描述符。例如,采用类似 firstNamegrandTotal 或 CorporateCustomer 这样的名字。虽然象 x1y1 或 fn 这样的名字很简短,输入起来容易,但是我们难以知道它们代表什么、结果是什么含义,因而使代码以理解、维护和改进。
  2. 采用该领域的术语。如果用户称他们的“客户” (clients) 为“顾客” customer),那么就采用术语 Customer 来命名这个类,而不用 Client。许多程序开发者会犯的一个错误是,不去使用工业或领域里已经存在着很完美的术语时,却生造出一些普通词汇。
  3. 采用大小写混合,提高名字的可读性。一般应该采用小写字母,但是类和接口的名字的首字母,以及任何中间单词的首字母应该大写。
  4. 尽量少用缩写但如果需要使用,可以选择单词的头4个字母作为缩写。如:DeptInfoValue,MapActi, MapActiInst 等等。
  5. 避免使用长名字(最好不超过 15 个字母)。 虽然 PhysicalOrVirtualProductOrService 看起来似乎是个不错的类名,但是这个名字太长了,应该考虑重新给它起个短一点的名字,比如象 Offering
  6. 避免使用相似或者仅在大小写上有区别的名字。例如,不应同时使用变量名 persistentObject 和 persistentObjects,以及 anSqlDatabase 和 anSQLDatabase
  7. 避免使用下划线作为名字的首末字母。以下划线为首末字母的名字通常为系统保留,除预处理定义之外,一般不用作用户命名。更重要的是,下划线经常造成麻烦而且难输入,所以尽量避免使用。

2.2、公共和保护接口最小化

面向对象程序设计的基本点之一是最小化一个类的公共接口。这样做有几个理由:

  1. 可学习性。要了解如何使用一个类,只需了解它的公共接口即可。公共接口越小,类越容易学习。
  2. 减少耦合。当一个类的实例向另一个类的实例或者直接向这个类发送一条消息时,这两个类变得耦合起来。最小化公共接口意味着将耦合的可能降到最低。
  3. 更大的灵活性。这直接与耦合相联系。一旦想改变一个公共接口的成员函数的实现方法,如你可能想修改成员函数的返回值,那么你很可能不得不修改所有调用了该成员函数的代码。公共接口越小,封装性就越大,代码的灵活性也越大。

尽力使公共接口最小化这一点明显地很值得你的努力,但通常不明显的是也应使被保护接口最小化。基本思想是,从一个子类的角度来看,它所有超类的被保护接口是公共的。任何在被保护接口内的成员函数可被一个子类调用。所以,出于与最小化公共接口同样的理由,应最小化类的被保护接口。

首先定义公共接口。大多数有经验的开发者在开始编写类的代码之前就先定义类的公共接口。 

第一,如果你不知道一个类要完成怎样的服务/行为,你仍有一些设计工作要做。

第二,这样做使这个类很快地初具雏形,以便其他有赖于该类的开发者在“真正的”类被开发出来以前至少可以用这个雏形开始工作。 

第三,这种方法给你提供了一个初始框架,围绕着这个框架你构造类。


2.3、编程中的一般约定

有许多的有关 Java 代码可维护性和可改进性的重要约定和标准。99.9% 的时间里,面向他人,面向你的开发同事编程要比面向机器编程重要得多。使你的代码为别人所理解是最重要的。

约定目标   

约定

存取成员函数

考虑对数据库中的字段使用滞后初始化

使用存取函数获得和修改所有字段

对常量采用存取函数

对于集合,加入成员函数来插入和删除项

一旦可能,将存取函数置为被保护类型,不是公共类型

字段

字段永远为私有类型

不要直接访问字段,应使用存取成员函数

不要使用静态常量字段(常量),应使用存取成员函数

不要隐藏名字

一定要初始化静态字段

最小化公共和保护接口

在开始写代码之前定义一个类的公共接口

按以下顺序声明一个类的字段和成员函数:

  • 构造函数
  • 公共成员函数
  • 被保护成员函数
  • 私有成员函数
  • 私有字段

局部变量

不要隐藏名字

一行代码只声明一个局部变量

用一个行内注释说明局部变量

在使用局部变量之前声明它

仅将局部变量用于一件事

成员函数

给代码加上注释

给代码分段

使用空白,控制结构之前用一个空行,成员函数之前用两个空行

一个成员函数应能在 30 秒内让人理解

写短小单独的命令行

尽量限制成员函数的可见性

说明操作的顺序



2.4、编写清晰整洁的代码原则

这一部分讲述几个技巧,这些技巧有助于区分专业软件开发者和蹩脚代码编写者。这些技巧是:

  • 给代码加上注释
  • 给代码分段
  • 使用空白
  • 遵循 30 秒条规则
  • 说明消息发送的顺序
  • 写短小单独的命令行

2.4.1、给代码加上注释

记住:如果你的代码不值得注释,那么它就不值得保留 。当正确地使用了本文提到的注释标准和方针,就可以大幅度地提高代码质量。

2.4.2、让代码分段/缩进

一种提高代码可读性的方法是给代码分段,换句话说,就是在代码块内让代码缩进。所有在括号 { 和 } 之内的代码,构成一个块。基本思想是,块内的代码都应统一地缩进去一个单位。

Java 的约定似乎是开括号放在块的所有者所在行的后面,闭括号应缩进一级。在指出的很重要的一点是,你所在的机构应选取一个缩进风格并始终使用这种风格。采用与你的 Java 开发环境所生成的代码一样的缩进风格。

在代码中使用空白。在 Java 代码中加入几个空行,也叫空白,将代码分为一些小的、容易理解的部分,可以使它更加可读。 建议采用一个空行来分隔代码的逻辑组,例如控制结构,采用两个空行来分隔成员函数定义。没有空白的代码很难读,很难理解。

2.4.3、遵循 30 秒条法则

其他的程序员应能在少于 30 秒钟的时间内完全理解你的成员函数,理解它做什么,为什么这样做,它是怎样做的。如果他们做不到,说明你的代码太难维护,应加以改进。30 秒钟,明明白白。 一个好的经验法则是:如果一个成员函数一个屏幕装不下,那么它就很可能太长了。

8.1.4写短小单独的命令行

每一行代码只做一件事情。在依赖于穿孔卡片的计算机发展的早期,想让一行代码完成尽量多的功能的想法是可以理解的。若想在一行里做多件事情,就会使代码难于理解。为什么要这样呢?我们应使代码尽量容易理解,从而更容易维护和改进。正如同一个成员函数应该并且只能做一件事一样,一行代码也只应做一件事情。

此外,应让代码在一个屏幕内可见 。 也不应向右滚动编辑窗口来读取一整行代码,包括含有行内注释语句的代码。

8.1.5说明运行顺序

提高代码可读性的一个相当简单的方法是使用圆括号 (parenthesis,又叫“round brackets”) 来说明 Java 代码运行的准确顺序 。如果为了理解你的源码而必须了解编程语言的操作顺序,那么这说明源码中一定有什么重要的东西做的不对。 这大多是在 AND 或者 OR 其它几个比较关系处产生的逻辑比较上的问题。注意:如果你象前文所建议的那样,采用短小单独的命令行,那么就不会产生这个问题。


详情可看:

http://www.cnblogs.com/sscmtg/p/4078626.html

原创粉丝点击