零基础学Java(第5版)
上QQ阅读APP看书,第一时间看更新

2.4 Java程序员的编码规则

软件工程发展到现在已经非常成熟,与此同时对于程序员编码的规则也限定得越来越多。早年天马行空的编程与企业的要求渐行渐远,每个公司都会对程序员的编码习惯进行限制,包括命名、格式等。有的可以说是相当苛刻,当然每个公司的要求也是不同的,没必要每个要求都知道。

如果读者进入公司,按照公司要求的编码规范去做即可。这里是笔者搜集的一些基本要求,主要是一些常识和编码思想,也是大家都比较认同的编码规则。如果新入门读者有的地方不明白也没有太大关系,等学完后面的知识再回来看这节内容就可以了。

(1)注释

注释用来提供源代码自身没有提供的附加信息,主要包含对代码的总体说明、步骤说明、设计决策信息和其他一些代码中不容易看出来的信息。

注意 注释并不是越多越好,过多且容易过时的注释往往会影响代码的更新和阅读。

(2)命名规范

命名规范提供一些有关标识符功能的信息,有助于理解代码,使程序更易读。

在标识符中,所有单词的首字母大写,被称为驼峰标识。字段、方法以及对象的首字母小写。例如:类名可以写作MyFirstClass,而方法名则要写成getName()。

如果是常量,则static final基本类型标识符中的所有字母大写。这样就可以标志出它们属于编译期的常量,如MAX_LENGTH。

Java包(Package)的包名全部小写,首字母也不例外。例如,com.java.util。

(3)类的测试

每当创建一个类时,考虑在该类中写主方法进行测试,以保证类的正确性和功能的完整性。测试代码也可以作为如何使用类的示例来使用。

(4)类的设计

设计类时要尽量使其功能单一,只解决某些特定的问题;不要设计方法众多且差别较大的类。

注意 设计类时要考虑该类的维护和发展,考虑代码复用和多态。

(5)方法的设计

方法的设计与类一样,都是尽量明确其功能,简明扼要,功能单一。当方法过长时,尽量考虑将其分解成几个方法。

(6)封装

对代码进行封装时,出于安全方面的考虑,尽可能将方法和属性“私有”。

(7)采用内部类

当类和类之间关系非常紧密时,可以考虑采用内部类来实现,以改善编码和维护的工作。

(8)接口编程

接口主要描述了可能完成哪些功能和方法,而类描述的是具体的实施细节。故当需要某个类作为基础类时,尽量考虑将其变成一个接口。如果不得不使用方法或成员变量,才将其变成一个抽象类。

(9)继承

对于继承的使用应该谨慎,尽量采取实现接口的方法来达到目的。只有在必须继承的情况下才考虑继承。

(10)分析的顺序

对于项目的分析要从宏观到微观,从整体到局部。首先把握项目的整体概况,掌握全局之后再考虑细节的实现。

(11)性能的优化

性能的优化是考察项目好坏的一个方面,但并不是最重要的方面。正确的方法是先让程序运行起来,只有在确实存在性能瓶颈时才进行优化。如果很小性能提升的代价是代码的难于理解和维护,将得不偿失。

(12)设计与编码

对于一个项目而言,分析设计和编码的时间比例大约是8∶2,通常会在拥有完善的设计和解决方案以后才进行编码工作,此时的编码工作将非常简单。如果只是花很少的时间进行分析和设计,那么编码工作必定困难重重,甚至延长项目时间,造成违约。