JAVA规范
设计类和方法
==================
创建具有很强内聚力的类
方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码。类常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中。 之所以不能正确的认识类的功能,原因之一是类的实现实际上并不影响程序的执行。当一个工程被编译时,如果所有方法都放在单个类中或者放在几十个类中,这没有任何关系。虽然类的数量对代码的执行并无太大的影响,但是当创建便于调试和维护的代码时,类的数量有时会带来很大的影响。
类应该用来将相关的方法组织在一起。 当类包含一组紧密关联的方法时,该类可以说具有强大的内聚力。当类包含许多互不相关的方法时,该类便具有较弱的内聚力。应该努力创建内聚力比较强的类。 大多数工程都包含许多并不十分适合与其他方法组合在一起的方法。在这种情况下,可以为这些不合群的方法创建一个综合性收容类。
创建类时,应知道“模块化”这个术语的含义是什么。类的基本目的是创建相当独立的程序单元。
创建松散连接和高度专用的方法
1) 所有方法都执行专门的任务
每个方法都应执行一项特定的任务,它应出色的完成这项任务。应避免创建执行许多不同任务的方法。 创建专用方法有许多好处。首先调试将变得更加容易。
2) 尽量使方法成为自成一体的独立方法
当一个方法依赖于其他方法的调用时,称为与其他方法紧密连接的方法。紧密连接的方法会使调试和修改变得比较困难,因为它牵涉到更多的因素。松散连接的方法优于紧密连接的方法,但你不可能使每个方法都成为独立的方法。
若要使方法具备较强的独立性,方法之一是尽量减少类变量。 创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应依靠全局变量的原因。
3) 创建专用方法时,请考虑下列指导原则:
(1)将复杂进程放入专用方法。如果应用程序使用复杂的数学公式,请考虑将每个公式放入它自己的方法中。这样使用这些公式的其他方法就不包含用于该公式的实际代码。这样也可以更容易发现与公式相关的问题。
(2)将数据输入/输出(I/O)放入专用方法。
(3)将专用方法中可能要修改的代码隔离。如果你知道某个进程经常变更,请将这个多变的代码放入专用方法,以便以后可以更容易的进行修改,并减少无意中给其他进程带来问题的可能性。
(4)将业务规则封装在专用方法中。业务规则常属于要修改的代码类别,应与应用程序的其余部分隔开。其他方法不应知道业务规则,只有要调用的方法才使用这些规则。
4) 设计类和方法时,要达到下列目的:
1) 创建更加容易调试和维护的方法
2) 创建具有强大内聚力的类
3) 创建高度专用的方法
4) 创建松散连接的方法
5) 尽量使方法具有独立性
6) 提高方法的扇入性
7) 降低方法的扇出性
编程原则
==================
为方法和类赋予表义性强的名字
为了使代码更加容易理解,最容易的方法之一是为你的方法赋予表义性强的名字。函数名DoIt、GetIt的可读性很难与CalculateSalesTax、 RetrieveUserID相比。 由缩写方法名组成的代码很难理解和维护,没有理由再这样做了。 给方法正确的命名,可使程序工程的调试和维护工作大大的改观。请认真对待方法命名的工作,不要为了减少键入操作量而降低方法的可理解度。 实际应用举例:
1) 给方法命名时应大小写字母混合使用。如果句子全使用大写字母,那么阅读起来就非常困难,而大小写字母混合使用的句子,阅读起来就很容易。
2) 定义方法名时不要使用缩写。如果你认为应用程序中的某些工程应使用缩写,那么请将这些情况加上注释,并确保每个人在所有时间内都使用这些缩写。决不要在某些方法中对某些单词进行缩写,而在别的方法中却不使用缩写。
为每个方法赋予单个退出点
创建方法时,始终都应显式地定义它的作用域
1) 如果你真的想创建一个公用方法,请向代码阅读者说明这一点。
2) 通过为每个方法赋予一个明确定义的作用域,可以减少代码阅读者需要投入的工作量。应确保你为方法赋予最有意义的作用域。如果一个方法只被同一类中的另一个方法调用,那么请将它创建成私有方法。如果该方法是从多个类中的多个方法中调用,请将该说明为公用方法。
用参数在方法之间传递数据
应尽量避免使用类变量。一般来说,变量的作用域越小越好。为了减少类变量,方法之一是将数据作为参数在不同方法之间传递,而不是让方法共享类变量。
1) 为每个参数指定数据类型。
2) 始终要对数进行检验,决不要假设你得数据没有问题。程序员常犯的一个错误是在编写方法时假设数据没有问题。在初始编程阶段,当编写调用方法时,这样的假设并无大碍。这时你完全能够知道什么是参数的许可值,并按要求提供这些值。但如果你不对参数的数据进行检验,那么下列情况就会给你带来很大麻烦:另外某个人创建了一个调用方法,但此人不知道允许的值;你在晚些时候添加了新的调用方法,并错误的传递了坏数据。
命名约定
==================
变量的定义
变量的定义应该遵循匈牙利命名法,它使用3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。 这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。
一般使用驼峰命名法和帕斯卡命名法。Wangguanqiu2009年9月16日17:35:34
包、类及方法命名
1) 包
全部小写。 标识符用点号分隔开来。为了使包的名字更易读,Sun 公司建议包名中的标识符用点号来分隔。
Sun 公司的标准 java 分配包用标识符 .java 开头。
全局包的名字用你的机构的 Internet 保留域名开头 。 倒叙
局部包: interface.screens
全局包: com.rational.www. interface.screens
2) 类,接口
类的名字应该使用名词。
每个单词第一个字母应该大写。
避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。
Class Hello ;
Class HelloWorld ;
Interface Apple ;
3) 方法
第一个单词一般是动词。
第一个字母是小些,但是中间单词的第一个字母是大写。
如果方法返回一个成员变量的值,方法名一般为get+成员变量名,如若返回的值是bool变量,一般以is作为前缀。
如果方法修改一个成员变量的值,方法名一般为:set + 成员变量名。
getName(); setName(); isFirst();
4) 变量
第一个字母小写,中间单词的第一个字母大写。
不要用_或&作为第一个字母。
尽量使用短而且具有意义的单词。
单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integers;c,d,e一般用于characters。
如果变量是集合,则变量名应用复数。
命名组件采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表。
String myName; int[] students; int i; int n; char c; btNew; (bt是Button的缩写)
5) 常量
所有常量名均全部大写,单词间以‘_’隔开。 int MAX_NUM;
6) 其它
开发人员如果遇到上述表格中未列举的类型,请书面通知相关管理人员,由管理人员集中更新列表内容,不得擅自启用未经确定的新变量前缀。
MVC规范
==================
分层
在MVC的设计模式中,要求在Application开发中你把商业逻辑,界面显示,数据分离。也就是分别在Model,View,Controller实现:数据,控制(商业逻辑)显示(页面显示)。
规则
1) 用户的所有请求统一由控制器截获
2) 控制器根据请求种类,调用不同的业务对象(业务bean),根据业务对象的返回值,来决定该把哪个页面相应给用户
3) 在jsp中,不会出现任何业务代码/数据库操作。可以有实例化bean的操作,或者从session、数据bean中取得数据
4) 在作为控制器的servlet中不会出现网页内容、业务代码、数据库操作。可以有接受request值、实例化bean、调用bean的方法、页面转移
5) 数据bean对应数据库中某张表里的一条记录,这张表中的所有列都应该成为数据bean的私有属性
6) 业务bean在Controller(servlet)中实例化
7) 数据bean在业务bean或Controller中实例化
其它规范
==================
Java文件样式
所有的 Java(*.java)文件都必须遵守如下的样式规则
1)版权信息
版权信息必须在 java文件的开头,比如:
/**
* Copyright ® 2000 Shanghai XXX Co. Ltd.
* All right reserved.
*/
其他不需要出现在 javadoc的信息也可以包含在这里。
2) Package/Imports
package行要在 import行之前,import中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import行中包含了同一个包中的不同子目录,则应该用 *来处理。
package hotlava.net.stats;
import java.io.*;
import java.util.Observable;
import hotlava.util.Application;
这里 java.io.*使用来代替InputStream and OutputStream的。
3) Class
(1)类的注释
接下来的是类的注释,一般是用来解释类的。
/**
* A class representing a set of packet and byte counters
相关推荐
在并发控制方面,阿里巴巴Java规范提出了一些最佳实践,比如避免在循环中使用synchronized关键字,以减少锁的粒度,提高并发性能。推荐使用并发工具类如Semaphore、CyclicBarrier等进行线程间的协调,而非简单的...
Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703Java规范_阿里-201703
《阿里巴巴Java规范合集》是阿里巴巴集团为了提升Java开发的质量和效率,以及代码的可读性和可维护性,制定的一套详细的编程规范。这个压缩包包含三个版本的开发手册,分别是2018年版、2019年6月19日更新版以及泰山...
Java虚拟机(JVM)规范和Java语言规范是Java开发者深入理解这个平台和技术的基石。这两部分规范分别定义了Java程序如何在JVM上运行以及Java编程语言的语法和语义。 《Java语言规范》(Java Language Specification...
IDEA 阿里JAVA规范插件的具体使用 IDEA 阿里JAVA规范插件是一款功能强大且实用的插件,它可以帮助开发者快速检查和修复Java代码中的问题,确保代码的质量和可维护性。下面我们将详细介绍IDEA 阿里JAVA规范插件的...
本资料包"设计规范和编码规范_Java规范_java设计规范_设计规范和编码规范_"主要涵盖了Java编程中的核心规范,旨在帮助开发者提升代码质量。 设计规范通常涉及到以下几个方面: 1. **模块化设计**:提倡使用单一...
Java规范,全称为Java编程语言规范(Java Language Specification),是Oracle公司制定的一套关于Java语言的官方标准,它定义了Java语言的语法、语义以及编程规则,为开发者提供了清晰的编程指南。Java规范旨在确保...
在深入探讨《JAVA规范基础,给出了JAVA编程的一些规范》这一主题前,我们首先明确,Java规范不仅是编程语言的规则集合,更是确保代码可读性、维护性和效率的关键。以下将根据给定文件的信息,详细解析Java编程中的...
本资料就是关于Google Java规范标准的学习资源,对于任何Java开发者来说,都是提升编程素养的宝贵财富。 首先,Google Java规范标准在命名方面有明确的要求。类名应该使用驼峰式命名,每个单词首字母大写,如`...
JAVA规范
阿里巴巴 Java 规范 2022 本手册是阿里巴巴和开课吧技术团队的集体智慧结晶和经验总结,旨在提高 Java 开发者的综合素质。手册从七个维度入手,分别是编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程...
【标题】"IDEA及Java规范"涉及到的主要内容是IntelliJ IDEA的使用技巧、快捷键设置、配置优化以及遵循的Java编程规范。IntelliJ IDEA是一款强大的Java集成开发环境,它提供了丰富的功能来提高开发效率,而Java规范则...
阿里Android和Java规范是软件开发领域中的重要指南,旨在提高代码质量、提升团队协作效率以及维护项目的可持续性。这两份规范分别针对Android应用开发和Java后端开发,为开发者提供了详细的编码、设计、测试和文档...
根据给定文件的内容,我们可以提炼出以下关于Java规范的关键知识点: ### 综合开发平台之Java规范篇 #### 一、前言 1. **目的**:为了统一公司在软件开发过程中Java编码时的规范,提高代码质量和可读性,制定了这...
腾讯 Java 编码规范 腾讯 Java 编码规范是腾讯集团管理标准的一部分,旨在确保公司项目代码的易维护性和编码安全性。该规范涵盖了 Java 编码风格、文件组织、代码风格、注释、命名、声明、异常、习惯等方面。 一、...
阿里Java规范检验IDEA插件是一款专为Java开发者设计的工具,它基于阿里巴巴的Java编程规范,帮助开发者在编码过程中遵循统一的代码风格和最佳实践。这个插件的特色在于,它对原始的53条阿里Java规范进行了调整,删除...
阿里Java规范校验IDEA插件,又称为P3C(Alibaba Java Coding Guidelines Plugin),是阿里巴巴为了提高Java代码质量,遵循一致性与可维护性原则而推出的开发工具。这款插件基于PMD开源项目定制,包含了53条针对Java...
Java规范建议类名使用驼峰式命名,包名全小写,常量全大写,变量和方法首字母小写,遵循一定的命名约定,如`isXXX`表示布尔型的getter方法。 3. **异常处理**:异常处理是系统健壮性的关键。规范可能要求避免使用空...