引言:
很多java规范,内容偏向于对排版的要求,对java语言特性使用上的注意事项描述较少,为了能帮助我们合理的使用java语言,规避语言陷阱,特发此专题博客。
代码总体原则:
1:清晰第一。清晰性是易于维护,易于重构的程序必须具备的特征;
2:简洁唯美。简洁就是易于理解并且易于实现;
3:选择合适的风格,团队保持一致;
除此之外,java编程还应注意一下几个方面;
1:正确使用java
面向对象技术使得程序结构清晰,简单,提高了代码的重用性,但又隐藏了很多内部实现细节;很容易陷入陷阱。使用许多java特性时,要注意正确使用。比如:多线程并发,泛型,装箱数据类型,异常处理,对象克隆等;
2:安全高效。
核心内容:JAVA-编码规范-代码风格-命名
代码风格:
原则一 为包,类,方法,变量 取一个好名字,使代码易于理解
好的命名,特征如下:
(1)能清晰的表达意图:使用完整的描述性单词,避免使用单个字母,未形成惯例的缩写来命名。例如:int elapsedTimeInDays要比int d好得多;
(2)避免造成误导:有误导的名字比表达不清的名字更有危害性,比如String accountList其实并不是一个List,a=1;是数字1还是字母l;TTLCONFUSION于TTLC0NFUSION名称太相似;
(3)避免不必要的编解码:代码被人阅读的次数会很多,因此要注意可读性,避免不必要的人脑编解码,比如在JAVA中不建议采用匈牙利命名法,Java是强类型的语言,且IDE已经很先进,在编译时就能发现类型错误,因此匈牙利命名法无用武之地,况且它可能导致错误信息,比如PhoneNumber strPhone当类型变更后,名称未变更导致提供错误信息;
(4)能区分出意思:比如以下名称,product,productInfo,productDate表达的意思差不多,让人从名称并不能区分出它们各自代表的东西有什么不同,因此建议不要在变量/类名后加info,data,object等一般意义的词;
(5)不用或少用缩写:小于15个字母的一般不用缩写。超过15个字母的,可以采用去掉原因字母的方法或者行业内约定俗成的缩写,且缩写保持驼峰格式,不要编造不符合习惯的缩写。比如serviceDataPoint,可以缩写为svcDataPnt,不可缩写成SDP.如果要用缩写,仅第一个字母大写其余小写,例如:getHTTPRequest改为getHttpRequest;
规则1:禁止使用魔鬼数字
说明:直接使用数字造成代码难以理解,也难以维护。应采用有意义的静态变量或枚举来代替。
例外情况:有些情况下,如循环或比较时采用数字0,-1,1,这些情况可采用数字;
示例
不好:int doorState = 5;
推荐:static final int CLOSE = 3; int doorState = CLOSE;
enum Signal
{
GREEN,YELLOW,RED
}
public class TrafficLight
{
Singal color = Signal.RED;
public void change()
{
switch(color)
{
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
default:
color = Signal.RED;
}
}
} 规则2 常量命名,由全大写单词组成,单词间用下划线分割,且用static final修饰;示例:
错误:static int MAXUSERNUM = 200; static String s = "Launcher"
推荐:static final int MAX_USER_NUM = 200; static final String APPLICATION_NAME = "Launcher"
规则3 变量,属性命名,使用名词,并采用首字母小写的驼峰命名法;
说明:驼峰命名是指第一个单词字母使用小写,剩余单词首字母大写其余字母小写的大小写混合发。含有
几个意义的属性,名称尽量包含复数;
示例:
不好:String customername; List<String> u = new ArrayList<String>;
推荐:String customerName; List<String> users = new ArrayList<String>;
规则4:方法的命名,用动词和动宾结构,并采用首字母小写的驼峰命名法;
说明:格式如下
get+非布尔属性名();
is+布尔属性名();
set+属性名();
has+名词/形容词
动词()
动词+宾语()
其中动词()主要用在动作作用在对象自身上,如document.print();
示例:不好:
public String type();
public boolean Finished();
public void visible(boolean);
public void DRAW()
public void KeyListener(Listener);
推荐:
public String getType();
public boolean isFinished();
public void setVisible(boolean);
public void draw();
public void addKeyListener(Listener); 规则5:类和接口的命名,采用首字母大写的驼峰命名法;说明:类的命名不应用动词,而应用名词,比如Customer,WikiPage,Account,避免采用类似Manager,
Processor,Data,Info这样模糊的词;
示例:不好:public class info{}
推荐:public class OrderInformation()
规则6:包的命名,由一个或若干个单词组成,所有的字母均为小写;
说明:包名采用域后缀倒置的加上自定义的包名,采用小写字母,都应该从com.taobao开头(除一些特殊原因),再加上产品名称和模块名称,部门内部应该规划好包名 的范围,防止产生冲突;
示例:com.taobao.mobilecontrol.views;
本文探讨了JAVA编程中的代码风格和命名规范,强调清晰性和简洁性的重要性,并提出了选择合适风格以保持团队一致性。核心内容涵盖如何正确使用JAVA特性,避免陷阱,以及在命名上应遵循的原则,如表达清晰意图,避免误导,提高可读性,区分意思,以及谨慎使用缩写。同时,文章指出禁止使用魔鬼数字,提倡使用有意义的静态变量或枚举替代,以提升代码可理解和可维护性。

6765

被折叠的 条评论
为什么被折叠?



