这里说说Java语言编码惯例。
任何一种语言都有其规范惯例。比如以前汉语都是从左到右,从上到下的书写,现在是从左到右,从上到下的书写,每段前空开两个字符表示一段文字的开始等等。
说道编程语言,本质上也是语言的一种,有词组(关键字)、语法、语义,为了让计算机能够读懂高级编程语言的源代码,必须进行编译。但是一定要明白的是,源代码首先是供人阅读的。所以,排版规范,结构清晰的源代码,阅读起来可以说是一种享受。
特别是现在的软件系统的规模,都是一些大型软件,是多人合作开发的,还有后续的运行维护。
我们想象一下,在一个大型的项目中,如果每个程序员在给包、类、变量、方法取名的时候,如果根本没有一点约定,只是随心所欲,可能会带来那些问题?
1.程序可读性极差;
2.在相互有交互的程序中,给其他程序员理解程序带来很大的麻烦;
3.对于测试员来说,在测试中如果需要检查源程序,将会感到无从下手;
4.在后续的维护中,可能因为程序根本没法看懂,而不得不重新编写一个新的程序。
第四点可以说是最糟糕的结局了。本已完成用户要求功能,并通过测试,可以正常运行的代码,因为其混乱的编码规范,直接被抛弃另起炉灶,凭空增加了维护的工作量。这种情况我还真遇到过,用户提出需求变更修改,我拿到很早以前的代码,发现那段逻辑代码,从命名到逻辑都无从下手,根本不符合整体项目框架的开发规范要求,只能重新写一个新函数(这还得在准确理解需求和整体框架平台开发技术基础上)。不过没办法,时间紧张,与其去读那段天书一般的代码,还不如直接重新来写来得快。
当然重新写的时候,就得小心点,照顾到以后维护的人的感受了,从命名规范,到排版逻辑处理,都严格遵守项目框架的技术要求。
这样说起来,程序设计的标准化非常重要,原因在于这能提高开发团队各成员的代码的一致性,使代码更易理解,这意味着更易于开发和维护,从而降低了软件开发的总成本。
为实现此目的,和其它语言类似,Java语言也存在非强制性的编码惯例。虽说这个惯例是非强制的,但是基本上绝大多数的Java程序员都接受了这个惯例。听过这样的故事(真实性尚未考证),在谷歌内部,基本上应用到的编程语言都有一套自己的编码规范,但是Java没有,而是沿用了这套惯例。说明这套惯例还是有其优势和合理性的。
1.命名规范
命名惯例也称命名约定,在声明包名、类名、接口名、方法名、变量名、常量名时除必须符合标识符命名规则外,还应尽量体现各自描述的事物,或属性,功能等,例如可定义类Student描述学生信息。一般性命名约定:
尽量使用完整的英文单词或确有通用性的英文缩写;
尽量采用所涉及领域的通用或专业术语;
词组中采用大小写混合使之更易于识别;
避免使用过长的标识符(一般小于15个字母);
避免使用类似的标识符,或者仅仅是大小写不同。
具体命名惯例如下:
包名应为名词或名词性短语,全部小写,例如: package cn.edu.tsinghua;
类名应为名词或名词性短语,各单词首字母大写,例如:class TestStudent;
接口命名规则同类名,例如:interface Person;
方法名应为动词或动宾短语,首字母小写,其余各单词首字母大写,例如:getName(){…}、deleteUser(){}等;
用于设置属性值的方法应命名为setXxx(),其中Xxx为相应属性名,且属性名的首字母大写,例如:setAge(int _age){this.age = _age;};
用于获取属性值的方法应命名为getXxx(),其中Xxx为相应属性名,且属性名的首字母大写,例如:getAge(){return this.age;};
变量名应为名词或名词性短语,首字母小写,其余各单词首字母大写: currentCustomer
常量名全部大写,为名词或名词性短语,多个单词间用‘_’分隔:HEAD_COUNT,MAXIMUM_SIZE
2.缩进
缩进应该是每行2个或4个空格。 不要在源文件中保存Tab字符, 在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度。
3.页宽
页宽应该设置为80字符。 源代码一般不会超过这个宽度,并导致无法完整显示, 但这一设置也可以灵活调整,特别是现在的显示器愈来愈大了。在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行。 一条语句折行后, 应该比原来的语句再缩进2个或4个字符。
4.{}对
一般来说,{}应该单独用做一行。{的位置,可以跟在之前的语句之后,也可另起一行。不过大部分的Java语言都是跟在之前的语句之后,c语言的习惯是另起一行。
5.括号
左括号和后一个字符之间不应该出现空格,同样,右括号和前一个字符之间也不应该出现空格。
不要在语句中使用无意义的括号。 括号只应该为达到某种目的而出现在源代码中。
6.其他
在程序的关键方法和关键算法上使用注释,在类定义、方法、变量之前使用javadoc定义,以方便生成API文档。
在运算符与运算数间用空格间隔
不过这些惯例,除了第一条命名管理之外,其他的排版规格都不必专门来记。现在主流的IDE都根据Java这套编码惯例提供代码格式化模版,可以很方便的格式化你的源代码。只需执行一个命令,你的代码排版就变漂亮了。
至于第一条,在以后的编码实践中,前期只要严格来照着做,以后养成习惯就好了。并且IDE都会对不符合规范的命名提出警告提示的。
分享到:
相关推荐
Java语言编码规范是确保代码可读性、可维护性和团队协作效率的重要指南。这份规范涵盖了多个方面,包括文件命名、文件组织、缩进排版、注释、声明、语句、空白、命名规则以及编程惯例等。以下是这些知识点的详细说明...
Java 语言编码规范(Java Code Conventions) Java 语言编码规范是 Java 语言的编码标准,旨在提高软件的可读性、可维护性和可扩展性。该规范涵盖了文件组织、命名规范、缩进排版、注释、声明、语句、空白、编程...
规范中还提到了版权声明,这部分文档是基于Sun Microsystems公司Java语言规范中的编码标准部分。主要贡献者包括Peter King、Patrick Naughton和Mike DeMone等人。Sun Microsystems公司后来被Oracle公司收购,其Java...
### Java语言编码规范详解 #### 1. 引言 编码规范在软件开发过程中扮演着至关重要的角色,尤其是在团队协作的环境中。它们确保了代码的一致性和可读性,从而提高了软件的质量和维护效率。本篇文章将深入探讨《Java...
从提供的文件内容可以看出,该文件是一份关于JAVA程序编码规范的指南。文件详细介绍了在编写JAVA代码时应遵循的各项规则和标准,目的是为了提高代码的可读性和维护性,同时确保不同的开发者之间能够有一致的编程风格...
### Java语言编码规范详解 #### 1. 引言 (Introduction) ##### 1.1 为什么要有编码规范 (Why Have Code Conventions) 编码规范在软件开发过程中占据着至关重要的地位,尤其是在团队协作环境中更是如此。良好的...
### Java语言编码规范详解 #### 1. 引言 ##### 1.1 为何要有编码规范? 在软件开发过程中,编码规范具有重要的作用。它不仅有助于提高代码的可读性和可维护性,还能帮助团队成员更好地理解彼此的代码。据统计,一...
Java语言编码规范是指导开发者编写清晰、一致且易于维护代码的重要指南。这份规范由Sun Microsystems公司制定,后来被Oracle公司接手,成为Java社区广泛接受的标准。规范涵盖了文件命名、文件组织、代码结构、注释、...
### Java语言编码规范知识点 #### 1. 介绍(Introduction) **1.1 为什么要有编码规范(Why Have Code Conventions)** 编码规范是软件开发过程中不可或缺的一部分,它确保了代码的一致性和可读性,使得团队成员之间...
### Java语言编码规范详解 #### 1. 引言 ##### 1.1 为何要有编码规范? 在软件开发过程中,编码规范具有重要的作用。它不仅有助于提高代码的可读性和可维护性,还能帮助团队成员更好地理解和协作。具体而言,编码...
### Java语言编码规范知识点 #### 1. 介绍 ##### 1.1 为什么要有编码规范 编码规范在软件开发过程中扮演着至关重要的角色。它不仅有助于提高代码的可读性和可维护性,还能促进团队协作,确保项目的一致性和专业性...