Java编码风格 华为

Java
1.代码书写
1-1程序块要采用K&R代码风格编写,缩进的空格数为4个, 不能使用Tab说明:不同的缩进风格对代码的可读性影响很大,以tab为缩进单位在不同的tab step下可读性也相差很多,所以将缩进定为一个soft tab即4个空格,这样在所有环境下缩进都会保持一致。
1-2if、while、for、do语句的执行体总是用”{“和”}”括起来,即使单条语句也是并且在较长(超过一屏)的判断或者循环语句的结尾应该有注释语句做出标识。
1-3每行仅包含一条语句.说明: 这样做可读性更好。
2.命名要求
2-1Package 的名字应该都是由一个小写单词组成
2-2类(class)命名规则:类名是个一名词,大写开始,采用骆峰命名规则。使用完整单词,避免缩写词
2-3参数和变量的名字必须用一个小写字母开头,后面的单词用大写字母开头, 只允许使用字母和数字, 使用骆峰命名方式常量和枚举的属性必须全部使用大写,并且使用完整含义的单词,每个单词之间使用“_”分割
3.注释
3-1要求类、接口、公有方法都必须添加注释类、接口的注释, 说明该类或者接口的主要作用。
3-2方法注释采用标准的javadoc注释规范,注释中必须提供方法说明,参数说明和返回值和异常说明
4.常量与变量
4-1具有全局性逻辑功能的常量值需要定义为常量类型且相同含义的常量只能定义在一处。一行一个声明,避免在一个语句中给多个变量赋值。只在代码块的开始处声明变量,内外层的代码声明不要重名。
4-2对于固定且编译时可列的对象,如Status,Type等,应采用enum而非自定义常量实现。enum的好处是类型更清楚,不会在编译时混淆
5.空格
5-1一个紧跟着括号的关键字应该用空格分开
5-2空格应该位于参数列表中逗号的后面
5-3所有的二元运算符,除了”.”,都必须用空格与操作数分开
5-4for语句中的表达式应该被空格分开强制转型后应该跟一个空格
6.方法
6-1方法行数不能超过500行, 类的行数不能超过3000
6-2方法的参数个数不能超过7个参数过多但导致方法的使用和理解上增加难度,也会导致使用量容易弄混顺序。针对需要使用到过多参数时,可以抽取对象方式进行传递。
6-3方法内调用的嵌套不能超过5层过多的嵌套会加大代码阅读的难度,
6-4判断方法入口参数的合法性,特别是public,一定要检查入口参数是否合法。不要在方法中对方法的参数进行赋值。
6-5方法返回值,不能返回null;除非需要通过null表达特殊含义,同时必须在方法注释中加说明。返回布尔值的方法,需要以is打头。
6-6不用的方法直接删除,不建议使用的方法加Deprecated进行保留。
7.编码规则
7-1尽量使用接口而不是一个具体的类。
7-2异常捕获后必须处理,不能吃掉异常同一个异常,只在一处打印,log时需要打印异常的stack trace
7-3为了避免重复打印相同的异常日志,同一个异常,只在一处打印
7-4未使用的import和变量必须删除
7-5使用一个由其他方法返回的对象之前,先判断是否为null,以免产生NullPointerException 异常
7-6字符串比较时,将常量置于equals之前,避免null异常。
7-7如果涉及10个以上字符串的拼接,应该使用StringBuffer 或 StringBuilder,避免使用“+”号拼接产生大量中间对象线程上下文ThreadLocal变量的使用必须配必须手动清除,否则可能导致脏数据、内存溢出等问题。
7-8防止下标越界,在使用数组下标之前先判断下标的合法性,比如数组类型,集合类型。8.多线程并发
8-1对重要业务对象,需要防止对过时数据的修改
8-2对资源加锁时必须保证一致的加锁顺序,否则可能导致死锁。
8-3如果使用了静态工具类或单例,必须确保是线程安全的。Jdk自带的一些工具类也未必线程安全,比如DateFormat,每次请求使用时必须重新构造
8-4避免直接使用Thread,建议使用Concurrent包。
个人编码模板
1、代码的可读性至上
代码要能可阅读和可理解,就需要格式化成一致的方式。对函数和变量的命名应有意义,注释的表达应该简洁而准确。并且,准确地记录代码中所有棘手的部分是十分重要的。你必须清楚软件程序为什么能工作以及为什么能在所有可能的情况下顺利工作的原因。
2、 遵循正确的命名约定
当需要给类、函数和变量命名时,需要遵循以下指南:
1)、确保特定类名的第一个字母大写;
2)、使用大小写分离多个单词的命名;
3)、大写常数名,并使用下划线分离单词;
4)、确保特定功能和变量名的第一个字母小写;
5)、注意正确使用缩写。例如,用max而不用maximum。
3、必要时可使用空格
虽然空格对编译器是没有意义的,但是可用于提高代码的可读性。举个例子,你可以在函数间留三个空行。你还可以在函数内使用单独的空行用于分离关键的代码段。
4、确保代码有一定的可维护性
我们需要确保写出来的代码,换成另一个程序员来调整功能、修复bug,也是明确易懂的。要将函数中关键值用常量来标记,这样我们就可以随时根据需要来改变这些常量值。总而言之,代码必须坚固,能够处理任何类型的输入,然后在不崩溃的前提下,提供预期结果。
5、注释必须易于理解
注释应该是有意义的,能够清晰地解释所有关于软件程序的内容。注释的数量多少无所谓,质量才是关键。你需要使用/ 注释 /的风格来写注释,以确保位于每个源文件的顶部。此外,你也可以选择在注释中包括你的名字,编写代码的日期,以及简明扼要地说明程序的实际用途。不过,你可以选择省略一些功能明显的注释。你需要遵循的行内注释格式为//注释。
6、正确使用函数
每一个函数所包含的代码片段,必须既短又能够完成特定的任务。不妨将函数当作是“黑盒子”——独立,又可以有效处理任何类型的输入。不要忘记这样一条经验规则——即所谓的“Ten Line Rule”,也就是说,一个函数,通常说来,如果超过10行,那就需要以最精炼的方式去简化。并且,任何重复性的代码片段都应该被设置为一个单独的函数。上述做法不但可缩短程序的长度,还能大大提高其可读性。
7、整体的代码缩进
缩进在软件程序的流程控制上起着至关重要的作用。每一个新的while、for、if语句,以及switch结构,都需要缩进代码。这也可用于一行语句中括号已被省去的情况。例如,假设有if语句,那么相应else语句必须一齐缩进

猜你喜欢

转载自blog.csdn.net/qq_43815240/article/details/88622431
0条评论
添加一条新回复