Java高级代码规范优选Word文档格式.docx

上传人:b****6 文档编号:21526138 上传时间:2023-01-31 格式:DOCX 页数:27 大小:33.03KB
下载 相关 举报
Java高级代码规范优选Word文档格式.docx_第1页
第1页 / 共27页
Java高级代码规范优选Word文档格式.docx_第2页
第2页 / 共27页
Java高级代码规范优选Word文档格式.docx_第3页
第3页 / 共27页
Java高级代码规范优选Word文档格式.docx_第4页
第4页 / 共27页
Java高级代码规范优选Word文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Java高级代码规范优选Word文档格式.docx

《Java高级代码规范优选Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java高级代码规范优选Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

Java高级代码规范优选Word文档格式.docx

四:

尽量不要在变量后面加魔法数字,英文单个字母和没有实际意义的英文数字单词来区分变量

StringOne;

命名一个英文数字的变量

Useruser1=newUser();

Useruser2=newUser();

UseruserAdd=newUser();

UseruserUpdate=newUser();

这样会降低代码的可读性,并且不容易日后开发人员的维护

五:

包,类,变量命名不要加下划线(常量除外)

com.tag_test.dao.jdbc_impl 

有下划线的包名

intuser_age;

带下划线的变量名

publicclassClass_{} 

带下划线的类名

com.tag.test.dao.jdbc.impl

intuserAge;

publicclassClasses{}

一种习惯性的用法,默认的规范

六:

常量命名要大写,单词之间要用下划线分开.

publicstaticfinalStringteamAdd="

teamAdd"

;

小写且没有下划线

publicstaticfinalStringTEAM_ADD="

容易区分变量和常量

七:

方法名第一个字母小写(构造方法除外).

publicvoidFunction(){} 

大写的方法名

publicvoidfunction(){}

习惯用法,默认的规范

八:

两个单词以上的变量名要驼峰命名

intuserage;

age单词'

a'

小写

intuserAge;

能够更清晰的看懂变量所带代表的意思

九:

每个变量要用看得懂的词语来描述,尽量不要省略.

privateStudengstu;

把student简写成stu

privateStudentstudent;

使代码看起来清晰使人易懂

十:

一个类的命名一般是名词(有些ing的动词,形容词除外),变量名也是一样.函数的命名必须是动宾短语(构造词除外).

publicclassManage{} 

动词类命

publicclass 

UserManage{}

能使别人一看到类名就知道这个类大概是做什么的。

十一:

数据库连接对象的生成不能跟Model层混搅,必须将其放在一个单独的类里,用单例模式来实现数据库的连接.

publicclassUserDAOImpl(){ 

privatestaticConnectionconnection;

publicstaticsynchronizedConnectiongetConnection(){ 

if(connection==null){ 

try{}catch(SQLExceptione){} 

catch(ClassNotFoundExceptione)

{e.printStackTrace()}

returnconnection;

publicclassDBConnectionTools{

privateDBConnectionTools(){}

publicstaticsynchronizedConnectiongetConnection(){

if(connection==null){

try{

Class.forName(Constants.MYSQL_DRIVER);

connection=DriverManager.getConnection(Constants.MYSQL_URL,Constants.MYSQL_USER_NAME, 

Constants.MYSQL_PASSWORD);

}catch(SQLExceptione){

e.printStackTrace();

}catch(ClassNotFoundExceptione){ 

}

数据库连接应当单独出去出来,以便其它类可以复用

十二:

id一般不用int类型,用long类型

intid;

int类型的关于人员的id

Longid;

随着id的增长,当增长的id超出int的范围的时候就会出现异常

十三:

sql语句一定要用占位符,不能用拼写组成的语句

publicvoidaddUser(Useruser){ 

Stringsql="

insertintostudent(ID,name,sex,address)values("

+user.getId()+"

"

+user.getName()+"

+user.getSex()+"

+user.getAddress()+"

)"

;

//?

则代表占位符 

publicvoidaddUser()

{

sql="

insertintostudent(ID,name,sex,address)values(?

?

则代表占位符

//可用预处理来发送sql语句

很容易出现错误,而且不清晰,不容易让人读懂。

十四:

PreparedStatement最好不要声明为类字段.

publicclass 

UserDAOImpl()

{

privatePreparedStatementpreparedStatement;

publicclassUserDAOImpl{

publicvoidaddUser(){

PreparedStatementpreparedStatement=newPreparedStatement(sql);

虽然很多类都使用到了PrepareStatement对象,但各个方法里用到的PrepareStatement对象都是不同的,

所以不能作为类字段,抽取出来做类字段的话会出现数据混乱的问题

十五:

做主键的列没有任何业务逻辑,没有任何实际意义,而且任何时候都不能修改。

欠规范主键示例:

主键用一个身份证号码,或者学号

规范主键示例:

主键用id,唯一性的,不可改变的。

虽然身份证号码和学号也是唯一性的,但是他们是有意义的列,而且在程序升级时是可以更改的,

而id主要就是用来做主键的

十六:

取记录的时候,拿数据库条件语句去比较,不要自己用Java代码去比较.

publicvoiddeleteById(Longid){

Stringsql="

selectid,name,agefromuser"

//........................

ResultSetresult=ResultSet.executeQuery();

where(result.next()){

if(result.getLong("

id"

)==id){

//..........................................删除

publicvoiddeleteById(Longid)

deletefromuserwhereid=?

"

//删除操作

一旦取出的数据量过大,而用java代码的if判断的话,会影响运行速率,还可能导致内存不足等错误。

十七:

代码提交之前必须写注释,不管什么原因.

暂时无

暂时无

使别人能够很清晰的你知道做了哪些修改

十八:

提交之前先更新代码.

防止出现冲突

十九:

只要系统有红色错误,那么就不能提交,提交前要保证编译错误全部消除.

如果上传了错误的代码,会导致别人因为下载了错误代码而带来开发上的问题

二十:

每个人的代码每天尽量上传,代码在本地的时间不要超过2天.

保持与资源库的同步

二十一:

提交java代码前应该检查是否有没用的语句如:

(System.out.println();

),jsp页面上面是否有alert调试信息.

因为如果保留了有可能会影响到程序正常运行的结果,如:

for(inti=0;

i<

10;

i++)

System.out.println(i);

//如果测试for语句里有没有执行

i++){

System.out.println("

测试代码是否运行到这里"

);

如果没有删除测试语句,则结果就会不一样了, 

二十二:

两个不同的包不能出现相同的文件名

欠规范示例:

packgecom.lxitedu.work.MyWork.java

packgecom.lxitedu.task.MyWork.java

规范示例:

packgecom.lxitedu.task.Work.java

当一个在一个庞大的系统的时候,很可能引起混淆

二十三:

提交代码前如果有TODO标签,要删除掉,如果要标记没有做完的任务或者以后要改进的任务,用LXTODO.

规范代码示例:

二十四:

注释掉的代码提交前要删除。

/*

publicvoidadd(){

if(true){

这段代码已

经给注释掉了,程序中没有用到"

*/

提交前没有删除这段代码

规范代码示例:

删掉就行了

解析:

既然代码在程序中没有用到的话就要删除,以免其他队员看到误解和浪费他人时间来读其代码。

二十五:

代码提交的注释里面不要加自己的名字.

规范代码示例:

因为提交的时候,系统已经帮你提交了用户名。

二十六:

PreparedStatement、ResultSet、Statement.对象用完之后必须进行调用close()将会关闭,立即释放此Statement对象的数据库和JDBC资源,不然会占用系统很多资源.

//此规范可以用适配器模式解决,不必手动去关闭了

二十七:

尽量不要在构造方法里初始化.

Person{

publicPerson(){

Personperson=newPerson();

add();

publicPerson()

Unknownmacro:

//尽量少做些不必要的事情 

}

因为在构造器里初始化没办法控制,构造器多了也容易出现混乱。

如果有反射机制,也许会跳过构造方法。

二十八:

函数的返回值类型(如果有的话)要和其功能相匹配,要符合常规思维.

得到一个用户的姓名

publicStringgetPeopleName() 

return"

userName"

得到一个用户的姓名的方法

publicStringgetUserName(){

是得到一个用户的姓名,而不是得到一个人的姓名,因为人不一定是用户,所以用getUserName更准确一点 

二十九:

内部类的变量不要设为全局变量,尽量少用全局变量.

三十:

如果是布尔型的变量则最好在命名用is或has开头。

例如:

isVisible,isExists等.

booleanisTrue=resultSet.next();

booleanhasNext=resultSet.next();

难懂,且没有任何意义。

三十一:

如果变量命名要加注释,说明命名不是很准确.

三十二:

任何类字段除非必要,否则都要私有化.

publicclassPerson 

Stringname;

Stringsex;

intage;

publicclassClassName 

privateStringname;

privateStringsex;

privateintage;

没有为程序的安全考虑。

可以被其他的类访问

三十三:

尽量减少一个类属性的作用域,在离使用它的最近的地方定义.

intindex=1;

//类似这种情况变量生命离使用地方有点远

insertintostudent(ID,name,password,sex,address)values(?

PreparedStatementpreparedStatement=connection.prepareStatement(sql);

preparedStatement.setString(index++,user.getID());

preparedStatement.setString(index++,user.getName());

preparedStatement.setString(index++,user.getPassword());

preparedStatement.setString(index++,user.getSex());

preparedStatement.setString(index++,user.getAddress());

preparedStatement.executeUpdate();

preparedStatement.close();

当别人维护易引起混淆,容易引发错误

三十四:

单例模式的使用必须要考虑到同步.

//没有使用到同步

publicstaticConnectiongetConnection()throwsClassNotFoundException,SQLException{

if(conn==null){

Class.forName("

com.p6spy.engine.spy.P6SpyDriver"

conn= 

DriverManager.getConnection("

jdbc:

mysql:

//localhost:

3306/test"

root"

"

returnconn;

//最熟悉的得到一个Connection连接

publicstaticsynchronizedConnectiongetConnection()throwsClassNotFoundException,SQLException{

if(conn==null){

Class.forName("

conn= 

returnconn;

当有多个用户并发使用的时候会造成数据的混乱,导致线程不安全

三十五:

方法里面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1