编码风格 Java

java
1.排版
1-1程序块要采用缩进风格编写,缩进的空格数为4个。
1-2分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
1-3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
1-4不允许把多个短语句写在一行中,即一行只写一条语句
1-5if, for, do, while, case, switch,default 等语句自占一行,且if,for, do, while等语句的执行语句无论多少都要加括号{}。
1-6相对独立的程序块之间、变量说明之后必须加空行。
1-7对齐只使用空格键,不使用TAB键。
1-8在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
2.注释规范
2-1.一般情况下,源程序有效注释量必须在30%以上。
2-2.包的注释:包的注释写入一个名为 package.html 的HTML格式的说明文件放入当前路径。
2-3.包的注释内容:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。
2-4.文件注释:文件注释写入文件头部,包名之前的位置。
2-5.文件注释内容:版权说明、描述信息、生成日期、修改历史。
2-6.类和接口的注释:该注释放在 package 关键字之后,class 或者 interface 关键字之前。
2-7.类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述,
2-8.类属性、公有和保护方法注释:写在类属性、公有和保护方法上面。
2-9. 成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。
2-10.公有和保护方法注释内容:列出方法的一句话功能简述、功能
2-11.对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。 对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
2-12.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
2-13.注释与所描述内容进行同样的缩排。
2-14.将注释与其上面的代码用空行隔开。
2-15.对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
2-16.对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。
2-17.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
2-18.注释的内容要清楚、明了,含义准确,防止注释二义性。
2-19.避免在注释中使用缩写,特别是不常用缩写。详细描述、输入参数、输出参数、返回值、违例等。
3.命名规范
3-1.包名采用域后缀倒置的加上自定义的包名,采用小写字母。在部门内部应该规划好包名的范围,防止产生冲突。部门内部产品使用部门的名称加上模块名称。产品线的产品使用产品的名称加上模块的名称。
3-2.类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
3-3.方法名使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。
3-4.方法中,存取属性的方法采用setter 和 getter方法,动作方法采用动词和动宾结构。
3-5.属性名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。
3-6.常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰。
3-7.属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员变量时使用 this 引用,引用静态成员变量时使用类名引用。
4.编码规范
4-1.明确方法功能,精确(而不是近似)地实现方法设计。一个函数仅完成一件功能,即使简单功能也应该编写方法实现。
4-2.应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责。
4-3.明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相近的功能。
4-4.所有的数据类必须重载toString() 方法,返回该类有意义的内容。
4-5.数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close()。
4-6.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace() 。
4-7.自己抛出的异常必须要填写详细的描述信息。
4-8.运行期异常使用RuntimeException的子类来表示,不用在可能抛出异常的方法声明上加throws子句。非运行期异常是从Exception继承而来的,必须在方法声明上加throws子句。
4-9.在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。
4-10.注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
4-11.避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。
4-12.数组声明的时候使用 int[] index ,而不要使用 int index[] 。
4-13.调试代码的时候,不要使用 System.out 和 System.err 进行打印,应该使用一个包含统一开关的测试类进行统一打印。
4-14.用调测开关来切换软件的DEBUG版和正式版,而不要同时存在正式版本和DEBUG版本的不同源文件,以减少维护的难度。
5.JTEST规范
5-1.在switch 中每个 case 语句都应该包含 break 或者 return 。
5-2.不要使用空的for 、if 、while 语句。
5-3.在运算中不要减小数据的精度。
5-4.switch 语句中的 case 关键字要和后面的常量保持一个空格,switch 语句中不要定义case 之外的无用标签。
5-5.不要在if 语句中使用等号= 进行赋值操作。
5-6.静态成员或者方法使用类名访问,不使用句柄访问。
5-7.方法重载的时候,一定要注意方法名相同,避免类中使用两个非常相似的方法名。
5-8.不要在ComponentListener.componentResized() 方法中调用 serResize() 方法。 32
5-9.不要覆盖父类的静态方法和私有方法。
5-10.不要覆盖父类的属性。
5-11.不要使用两级以上的内部类。
5-12.把内部类定义成私有类。
5-13.去掉接口中多余的定义(不使用 public, abstract, static, final 等,这是接口中默认的)。
5-14.不要定义不会被用到的局部变量、类私有属性、类私有方法和方法参数。
5-15.显式初始化所有的静态属性。
5-16.不要使用 System.getenv() 方法。
5-17.不要硬编码 ‘\n’和‘\r’作为换行符号。
5-18.不要直接使用 java.awt.peer.* 里面的接口。
5-19.使用 System.arraycopy() ,不使用循环来复制数组。
5-20.避免不必要的 instanceof 比较运算和类造型运算。
5-21.不要在 finalize() 方法中删除监听器(Listeners)。
5-22.在 finalize() 方法中一定要调用 super.finalize() 方法。
5-23.在 finalize() 方法中的 finally 中调用 super.finalize() 方法。
5-24.进行字符转换的时候应该尽可能的较少临时变量。
5-25.使用ObjectStream 的方法后,调用reset() ,释放对象。
5-26.线程同步中,在循环里面使用条件测试(使用 while(isWait) wait() 代替 if(isWait) wait())。
5-27.不掉用 Thread 类的 resume(), suspend(), stop() 方法。
5-28.减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。
5-29.在Servlets中,重用JDBC连接的数据源。
5-30.减少在Sevlets中使用的同步方法。
5-31.不定义在包中没有被用到的友好属性、方法和类。
5-32.没有子类的友好类应该定义成 final 。
5-33.没有被覆盖的友好方法应该定义成 final
腾讯编码风格:
C/C++
1.程序的版式
1-1规则:程序块要采用缩进风格编写 :程序块要采用缩进风格编写,缩进的空格数为 ,缩进的空格数为4个。说明:由开发工具自动生成的代码可能不一致,但如果开发工具可以配置,则应该统一配 置缩进为 4个空格。
1-2规则:缩进或者对齐只能使用空格键 :缩进或者对齐只能使用空格键,不可使用 TAB 键。 说明 : 使用 TAB 键需要设置 TAB 键的空格数目是 4 格。
1-3 规则:相对独立的程序块之间 :相对独立的程序块之间、变量说明之后必须加空行 、变量说明之后必须加空行。 说明 :以下情况应该是用空行分开: 1)函数之间应该用空行分开; 2)变量声明应尽可能靠近第一次使用处,避免一次性声明一组没有马上使用的变量; 3)用空行将代码按照逻辑片断划分; 4)每个类声明之后应该加入空格同其他代码分开。
1-4 规则:较长的语句(>80 字符)要分成多行书写 )要分成多行书写。 说明: 以下情况应分多行书写: 1)长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行 要进行适当的缩进,使排版整齐,语句可读。 2)若函数或过程中的参数较长,则要进行适当的划分。 3)循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式 要在低优先级操作符处划分新行,操作符放在新行之首。
1-5 规则:不允许把多个短语句写在一行中 :不允许把多个短语句写在一行中,即一行只写一条语句 ,即一行只写一条语句。
1-6规则:if、for、do、while、case、switch、default default default 等语句自占一行 等语句自占一行,且 if、for、 do、while 等语句的执行语句部分无论多少都要加括号 等语句的执行语句部分无论多少都要加括号{}。
1-7 规则:代码行之内应该留有适当的空格 :代码行之内应该留有适当的空格 说明: 采用这种松散方式编写代码的目的是使代码更加清晰。代码行内应该适当的使用空 格, 具体如下: 1)关键字之后要留空格。像 const、virtual、inline、case 等关键字之后至少要留一 个空格, 否则无法辨析关键字。像if、for、while 等关键字之后应留一个空格再跟左 括号‘( ’,以突出关键字。 2)函数名之后不要留空格, 紧跟左括号’(’ , 以与关键字区别。 3)‘( ’ 向后紧跟,‘ )’、‘ ,’、‘ ;’ 向前紧跟, 紧跟处不留空格。 4)‘ ,’ 之后要留空格, 如 Function(x, y, z)。如果‘ ;’ 不是一行的结束符号。 5)值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符。二元操作符 的前后应当加空格。 6)一元操作符前后不加 空格。 7)像“[ ]”、“ .”、“ ->” 这类操作符前后不加空格。
1-8 建议:程序块的分界符 :程序块的分界符(如 C/C++语言的大括号‘{’和‘}’)应各独占一行并且 应各独占一行并且 位于同一列,同时与引用它们的语句左对齐 ,同时与引用它们的语句左对齐。在函数体的开始 。在函数体的开始、类的定义、结构的定义、 枚举的定义以及 if、for、do、while、switch、case 语句中的程序都要采用如上的缩 语句中的程序都要采用如上的缩进方式。
2.注释
2-1 规则:源文件头部应进行注释 :源文件头部应进行注释。
2-2 规则:函数头部应进行注释函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值等。
2-3 规则:注释应该和代码同时更新不再有用的注释要删除
2-4 规则:注释的内容要清楚 :注释的内容要清楚、明了,不能有二义性 ,不能有二义性。
2-5 建议:避免在注释中使用非常用的缩写或者术语。
2-6 建议:注释的主要目的应该是解释为什么这么做 :注释的主要目的应该是解释为什么这么做,而不是正在做什么
2-7 建议:避免非必要的注释 :避免非必要的注释
2-8 规则:注释的版式 说明:注释也需要与代码一样整齐排版 1)注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的 注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。 2)注释与所描述内容进行同样的缩排。 3)将注释与其上面的代码用空行隔开。 4)变量、常量、宏的注释应放在其上方相邻位置或右方。
2-9 规则:对于所有有物理含义的变量 :对于所有有物理含义的变量、常量,如果其命名不是充分自注释的 ,在声明时都必须加以注释,说明其物理含义 。
2-10 规则:数据结构声明 :数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释 如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置 。
2-11规则:注释不宜过多 :注释不宜过多,也不能太少,源程序中有效注释量控制在 ,源程序中有效注释量控制在 20%~30%之间。 说明: 注释是对代码的“提示”,而不是文档,不可喧宾夺主.
3标识符命名
3-1 命名尽量使用英文单词力求简单清楚,避免使用引起误解的词汇和模糊的缩写,使人产生误解。
3-2 命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。 说明: 1)如在 UNIX 系统,可采用全小写加下划线的风格或大小写混排的方式,但不能使 用大小写与下划线混排的方式。 2)用作特殊标识如标识成员变量或全局变量的 m_和 g_,其后加上大小写混排的方 式是允许的。
3-3建议变量的命名可参考“匈牙利”标记法
3-4宏和模板名采用全大写的方式,每个单词间用下划线分隔。
3-5枚举类型 enum 常量应以大写字母开头或全部大写
3-6 命名中若使用了特殊约定或缩写则要有注释说明。 说明: 应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进 行必要的注释说明。
3-7 规则:自己特有的命名风格 ,要自始至终保持一致不可来回变化。说明: 个人的命名风格,在符合所在项目组或产品组的命名规则的前提下,才可使用
3-8 规则:对于变量命名,禁止取单个字符 ,建议除了要有具体含义 外,还能表明其变量类型、数据类型等,但 i、j、k 作局部循环变量是允许的 说明: 变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如 i 写成 j),而编译 时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。
3-9 建议:除非必要,不要用数字或较奇怪的字符来定义标识符。
3-10:类、结构、联合、枚举的命名须分别以 C、S、U、E 开头,其他部分遵从一 般变量命名规范
4.可读性
4-1用括号明确表达式的操作顺序避免使用默认优先级。 说明: 防止阅读程序时产生误解,防止因默认的优先级与设计思想不符而导致程序出错
4-2 建议:不要编写太复杂多用途的复合表达式。
4-3 规则:涉及物理状态或者含有物理意义的常量避免直接使用数字必须用有意义的枚举或常量来代替
4-4 规则:禁止使用难以理解,容易产生歧义的语句。
5.变量、结构
5-1 尽量少使用全局变量 尽量去掉没必要的公共变量。说明: 变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。
5-2 变量,特别是指针变量被创建之后应当及时把它们初始化以防止把未被 初始化的变量当成右值使用。 说明:在 C/C++中引用未经赋值的指针,经常会引起系统崩溃。
5-3 仔细设计结构中元素的布局与排列顺序使结构容易理解、节省占用空间并减少引起误用现象。 说明: 合理排列结构中元素顺序,可节省空间并增加可理解性。
5-4留心具体语言及编译器处理不同数据类型的原则及有关细节。 说明: 如在 C 语言中,static 局部变量将在内存“数据区”中生成,而非 static 局部变量将 在“堆栈”中生成。这些细节对程序质量的保证非常重要。
5-5尽量减少没有必要的数据类型默认转换与强制转换说明:当进行数据类型强制转换时,其数据的意义、转换后的取值等都有可能发生变化, 如下结构中的位域排列,将占较大空间,可读性也稍差
5-6 规则当声明用于分布式环境或不同 CPU 间通信环境的数据结构时 CPU 间通信环境的数据结构时必须考虑机器的字节顺序、使用的位域及字节对齐等问题
6.函数、过程
6-1调用函数要检查所有可能的返回情况不应该的返回情况要用 ASSERT 来确认。
6-2编写可重入函数时,应注意局部变量的使用(如编写 C/C++语言的可重入函 C/C++语言的可重入函数时,应使用 auto 即缺省态局部变量或寄存器变量 auto 即缺省态局部变量或寄存器变量)。
6-3调用公共接口函数时,调用者有保障调用参数符合要求的义务。
6-4 建议:函数的规模尽量限制在 100 行以内。
6-5 一个函数仅完成一件功能。 说明多功能集于一身的函数,很可能使函数的理解、测试、维护等变得困难。
6-6不能用ASSERT 代替必要的安全处理代码,确保发布版的程序也能够合理地处 ,确保发布版的程序也能够合理地处理异常情况
6-7 尽量写类的构造、拷贝构造、析构和赋值函数 析构和赋值函数,而不使用系统缺省的 。 说明: 编译器以“位拷贝”的方式自动生成缺省的拷贝构造函数和赋值函数 ,倘若类中含 有指针变量,那么这两个缺省的函数就隐含了错误。
6-8对于不需要拷贝构造函数时,应显式地禁止它,避免编译器生成默认的拷贝构造函数。 6-9谨慎使用与程序运行的环境相关的系统函数
6-10 禁止编写依赖于其他函数内部实现的函数。 说明: 此条为函数独立性的基本要求。由于目前大部分高级语言都是结构化的
6-11检查函数所有参数与非参数的有效性。 说明: 1)函数的输入主要有两种:一种是参数输入;另一种是全局变量、数据文件的输入,即非参数输入。函数在使用输入之前,应进行必要的检查。 2)不应该的入口情况要用 ASSERT 来确认。 3)有时候不处理也是一种处理,但要明确哪些情况不处理。try…catch 是一种常 用的不处理的处理手段。
6-12 函数实现中不改变内容的参数要定义成 const。
7.C++专用规范
7-1在高警告级别下干净地编译使用编译器的最高警告级别。
7-2确保资源为对象所占有,使用显式的 RAII 和智能指针 RAII 和智能指针。 C++在语言层面强制的构造/析构恰好与资源获取/释放这对函数相对应,在处理需要 调用成对的获取/释放函数的资源时,应将该资源封装在对象中,并在对象的析构函数中 释放该资源,这样就保证了获取/释放的匹配指针
7-3主动使用 const,避免使用宏.应该尽可能的使用常量而不用变量,另外在定义数值的时候,应该把 const 做为默 认的选项。
7-4 合理使用组合(composition)和继承(inheritance)。继承是 C++中耦合度最强的关系之一。软件工程的一条重要原则是尽量减少耦合,在 组合和继承都能均可适用的情况下,应该优先考虑使用组合。组合的意思是将一种类型 以成员变量方式嵌入相关类型中。组合有如下优点: 1)在不影响调用代码的同时也更灵活。 2)编译期绝缘性好,编译时间也能缩短。 3)代码不可预测程度降低(有些类不适合作为基类)
7-5尽可能局部地声明每个变量,这通常是在程序具备了足够的数据来初始化变量之后, 并紧接着首次使用该变量之前
7-6 通过值指针,或引用适当地取得参数对仅用于输入的参数来说: 1)始终给仅用于输入的指针或引用参数加上 const 限定符。 2)最好是通过原始类型(例如:char,float)和可以通过值来复制并且复制成本 低的值对象(例如:Point,complex)来取得参数。 3)对其它自定义类型的输入,最好是通过 const 引用来取得。 4)如果函数需要参数的复本,那么可以考虑用传递值来代替传递引用
7-7 不要在头文件中定义具有链接属性的实体重复导致膨胀包括名字空间层级的变量或函数,需要占用内存。把此类实 体定义在头文件中会导致编译错误或内存浪费。应该把具有链接属性的实体放在实现文 件中。
7-8 与错误码相比,要尽量用异常来报告错误。对一些无法使用异常的错误,或者一些 不属于错误的情况,可以用状态码(status code,例如:返回码,errno)来报告。如 果不可能或不需要从错误中恢复,那么可以使用其它方法,比如正常或非正常地终止程 序。 在 C++中,和用错误码来报告错误相比,用异常来报告错误具有许多明显的优势,所 有这些都使得编出来的代码更健壮.
java
1 .缩进
1-1程序块要采用缩进风格编写,缩进只使用TAB键,不能使用空格键(编辑器中请将,TAB设置为4格);
1-2方法体的开始、类的定义、以及if、for、do、while、switch、case语句中的代码都
要采用缩进方式;
2.对齐
2-1程序块的分界符左大括号”{” 和右大括号”}”都另起一行,应各独占一行并且位于同
一列,同时与引用它们的语句左对齐;
2-2对齐只使用TAB键,不使用空格键;
2-3不允许把多个短语句写在一行中,即一行只写一条语句;
2-4 if、for、do、while、case、switch、default等语句自占一行。
3.换行
一行的长度超过80个字符需要换行,换行规则如下:
3-1在一个逗号后面断开;
3-2在一个操作符前面断开;
3-3长表达式要在低优先级操作符处划分新行;
3-4新行缩进2个TAB。
4.间隔
4-1类、方法及相对独立的程序块之间、变量说明之后必须加空行;
4-2关键字之后要留空格, 象if、for、while 等关键字之后应留一个空格再跟左括号”(”, 以突出关键字;
4-3方法名与其左括号”(”之间不要留空格, 以与关键字区别;
4-4二元操作符如 ” =”、” +=” ” >=”、” <=”、” +”、”、” %”、”&&”、” ||”、” << ,” ^” 等的前后应当加空格;
4-5一元操作符如” !”” ~”、”++”、” –”等前后不加空格;
4-6象”[ ]”、” .” 这类操作符前后不加空格;
4-7 for语句中的表达式应该被空格分开,如:
4-8强制转型后应该跟一个空格,如:
5.注释
5-1 文件注释:所有的源文件都应该在开头有一个注释,其中列出文件的版权声明、文件名、功能描述以及创建、修改记录:
5.2 类或接口注释
采用JavaDoc文档注释,在类、接口定义之前应当对其进行注释,包括类、接口的描述、最新修改者、版本号、参考链接等:注:JavaDoc文档注释:描述Java的类、接口、构造方法、方法、以及字段。每个文档注释都被置于注释定界符/…
/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前。文档注释的第一行(/)不需缩进,随后的文档注释每行都缩进1格(使星号纵向对齐)。
5-3 字段注释:采用JavaDoc文档注释,定义为public的字段必需给出注释,在类的(静态)
变量、实例变量定义之前当对其进行注释,给出该字段的描述等.
5-4方法注释 采用JavaDoc文档注释,在方法定义之前当对其进行注释,包括方法的描述、输入、输出及返回值说明、抛出异常说明、参考链接等:
5-5 其它注释(非文档注释):单行代码注释一律使用注释界定符
6.命名
6-1 基本规则:使用可以准确说明变量、字段、类、接口、包等完整的英文描述符;采用大小写混合,提高名字的可读性;采用该领域的术语;尽量少用缩写,但如果一定要使用,当使用公共缩写和习惯缩写等;避免使用相似或者仅在大小写上有区别的名字。
6-2 包命名:包名一律小写, 少用缩写和长名;采用以下规则:[基本包].[项目名].[模块名子模块名]…基本包:com.tencent或 com.qq;不得将类直接定义在基本包下,所有项目中的类、接口等都应当定义在各自的项目 和模块包中;
6-3 类或接口命名:类或接口名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免用缩写词(除非该缩写词被更广泛使用.
6-4变量命名:采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写;变量名不应以下划线或美元符号开头;尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,对不易清楚识别出该变量类型的变量应使用类型名或类型
名缩写作其后缀;组件或部件变量使用其类型名或类型名缩写作其后缀;集合类型变量,例如数组和矢量,应采用复数命名或使用表示该集合的名词做后缀:
6-5 常量命名:全部采用大写,单词间用下划线隔开.
6-6 方法命名 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写;取值类可使用get前缀,设值类可使用set前缀,判断类可使用is(has)前缀。
7.声明
7-1类或接口声明 类、接口定义语法规范:
7-2方法声明:良好的程序设计应该尽可能减小类与类之间耦合,所遵循的经验法则是:尽量限制成员函数的可见性。如果成员函数没必要公有 (public),就定义为保护 (protected);没必要保护 (protected),就定义为私有 (private);方法定义语法规范:[可见性][‘abstract’] [‘static’] [‘final’][‘synchronized’][返回值类型]method_name(参数列表)[(‘throws’)][异常列表];声明顺序:构造方法静态公共方法静态私有方法 公共方法 友元方法 受保护方法 私有方法main方法;方法参数建议顺序:(被操作者,操作内容,操作标志,其他)
7-3变量声明:一行一个声明;声明局部变量的同时初始化(在变量的初始值依赖于某些先前发生的计算的特殊情况下可以不用同时初始化);只在代码块的开始处声明变量,(一个块是指任何被包含在大括号”{“和”}”中间的代码)不要在首次用到该变量时才声明;避免声明的局部变量覆盖上一级声明的变量,即不要在内部代码块中声明相同的变量名;公共和保护的可见性应当尽量避免,所有的字段都建议置为私有,由获取和设置成员函数(Getter、Setter)访问定义一个变量或者常量的时候,不要包含包名(类似java.security.MessageDigestdigest =null),而要定义成下面的格式,除非是两个包有相同的类名字段定义语法规范: 数组声明时应当将”[]”跟在类型后,而不是字段名后:声明顺序:常量 类变量 实例变量: 公有字段 受保护字段 友元字段 私有字段
8.异常
8-1捕捉异常的目的是为了处理它。
8-2多个异常应分别捕捉并处理,避免使用一个单一的catch来处理。
9.习惯
9-1 if、for、do、while等语句的执行语句部分无论多少都要加括号”{}”;
9-2每当一个case顺着往下执行时(因为没有break语句),通常应在break
语句的位置添加注释;
9-3尽量避免在循环中构造和释放对象;
9-4在使用局部变量的过程,按就近原则处理。不允许定义一个局部变量,然后在很远的地方才使用;
9-5相同的功能不允许复制成N份代码;
9-6在处理 String 的时候要尽量使用 StringBuffer 类。
百度编码风格:

猜你喜欢

转载自blog.csdn.net/qq_43815240/article/details/88622406