java高级规范之一

  一、不允许使用汉语拼音命名
  不规范示例:
  public void
zengjiaYongHu{}//拼音方法名称
  规范示例:
  public void
addUser(){}
  解析:应该使用国际化语音,拼音使代码难懂

  二、Package名称必须全部小写,尽量使用单个单词
  不规范示例:
  com.Lxit.daoimpl
单词大写了,daolmpl多个单词
  规范示例:
  com.lxit.dao.impl

  解析:这是大家都认同的习惯写法,也是个默认的规范

  三、局部变量及输入参数不要与类变量同名(get/set方法与构造函数除外)
  不规范示例:
  public class
UserDAOImpl{
    private int count;
    public void page(int
count){}
  }
  规范示例:
  public class UserDAOImpl{
    private int
count;
    public void page(int
pageCount){}
  }
  解析:类变量会引起逻辑错误,引起覆盖。

  四、尽量不要在变量后面加魔法数字,英文单个字母和没有实际意义的英文数字单词来区分变量
  不规范示例:
  String
One;命名一个英文字母的变量
  User user1=new User();
  User user2=new
User();
  规范示例:
  User userAdd=new User();
  User userAdd=new
User();
  解析:这样会降低代码的可读性,并且开发人员日后的维护会不容易

  五、包,类,变量命名不要加下划线(常量除外)
  不规范示例:
  com.tag_test.dao.jdbc_impl
有下划线的包名
  int user_age;带下划线的变量名
  public class Class_{}
带下划线的类名
  规范示例:
  com.tag.test.dao.jdbc.impl
  int userAge;
  public
class Classes{}
  解析:一种习惯性的用法,默认的规范

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

  不规范示例:
  public static final String
teamAdd="teamAdd";小写且没有下划线
  规范示例:
  public static final String
TEAM_ADD="teamAdd";
  解析:容易区分变量和常量

  七、方法名第一个字母小写(构造方法除外)
  不规范示例:
  public viod
Function(){}
  规范示例:
  public void function(){}
  解析:习惯用法,默认的规范

  八、两个单词以上的变量名要驼峰命名
  不规范示例:
  int userage;
age单词‘a‘小写
  规范示例:
  int userAge;
  解析:能够更清晰的看懂变量所代表的意思

  九、每个变量要用看的懂的词语来描述,尽量不要省略
  不规范示例:
  private Student stu;
把stundent简写成stu
  规范示例:
  private Student student;
  解析:使代码看起来清晰易懂

  十、一个类的命名一般是名词(有些ing的动词,形容词除外),变量名也是一样。函数的命名必须是动宾短语(构造器除外)
  不规范示例:
  public
class Manage{} 动词命名
  规范示例:
  public class
UserManage{}
  解析:能使别人一看类名就知道这个类大概是做什么的。

  十一、数据库连接对象的生成不能跟Modle层混搅,必须将其放在一个单独的类里,

     用单例模式来实现数据库的连接。
  不规范示例:
  public class
UserDAOImpl{
    private static Connection connection;
    public static
synchronized Connection
getConnecion(){
      if(connection==null){
        try{}catch(SQLException
e){}
            catch(ClassNotFoundException
e){
                e.printStackTrace()
              }
      }
      return
connection;
    }
  }
  规范示例:
  public class
DBConectionTools{
    ptivate static Connection connection;
    private
DBConnectionTools(){}
    public static synchronized Connection
getConnection(){
      if(connection==null){
        try{
          Class.forName(Constants.MYSQL_DRIVER);
          connection=DriverManager.getConnection(Connection.MYSQL,Connection.MYSQL_USER_NAME,Constants.MYSQL_PASSWORD);

        }catch(SQLException e){

          e.printStackTrace();
          }catch(ClassNotFoundException
e){
            e.printStackTrace();
          }
        }
      return
connection;
    }
  }

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

  十二、id一般不要用int类型,用long类型
  不规范示例:
  int
id;int类型的人员id
  规范示例:
  Long
id;
  解析:随着id的增长,当增长的id超出int的范围的时候就会出现异常

  十三、sql语句一定要用占位符,不能用拼写组成的语句
  不规范示例:
  public void addUser(User
user){
    String sql="insert into
student(ID,name,sex,adddress)values("+user.getId()+","

  +user.getName()+","+user.getSex()+","+user.getAddress()+")";
  //?代表占位符
  }
  规范示例:
  public
void addUser(){
    sql="insert into
student(ID,name,sex,address)values(?,?,?,?)";
    //?代表占位符,可用预处理来发送sql语句
  }
  解析:很容易出现错误,而且不清晰,不容易让人读懂。

  十四、PreparedStatement最好不要声明为类字段
  不规范示例:
  public class
UserDAOImpl{
    private PreparedStatement
preparedStatement;
  }
  规范示例:
  public class
UserDAOImpl{
    public void addUser(){
      PreparedStatement
preparedStatement=new
PreparedStatement(sql);
    }
  }
  解析:虽然很多类都能使用到了PreparedStatement对象,但各个方法里用到的PreparedStatement对象都是不同的,所以不能作为类字段,抽取出来做类字段的话会出现数据混乱的问题

  十五、做主键的列没有任何业务逻辑,没有任何实际意义,而且任何时候都不能修改。
  不规范示例:主键用一个身份证,或者学号
  规范示例:主键用id,唯一性的,不可改变的。
  解析:虽然身份证和学号也是唯一性的,但是他们是有意义的列,而且在程序升级时可以更改的,而id主要就是用来做主键的。

  十六、取记录的时候,拿数据库条件语句比较,不要自己用Java代码去比较。
  不规范示例:
  public void
deleteById(){
    String sql ="select id,name,age form
user";
    //........................
    ResultSet reslut
=ResultSet.executeQuery();
    Where(result.next()){
      if(result.getLong("id")==id){
        //.................删除
      }
    }
  }
  规范示例:
  public
void deleteById(Long id){
    String sql="delete from user where id =
?";
    //删除操作
  }
  解析:一旦取出的数据过大,而且用Java代码的if判断的话,会影响运行速率,还可能导致内存不足等错误。

  十七、代码提交之前必须写注释,不管什么原因。
  不规范示例:无文本注释
  规范示例:有文本注释,关键处有单行及多行注释
  解析:使别人能够很清晰的知道你做了哪些修改

  十八、提交之前先更新代码
  不规范示例:没review代码,没更新
  规范示例:review代码,更新
  解析:防止出现冲突

  十九、只要系统有红色错误,那么就不能提交,提交前要保证编译错误全部消除。
  不规范示例:暂无
  规范示例:暂无
  解析:如果上传了错误的代码,会导致别人因为下载了错误代码而带来开发上的问题

  二十、每个人的代码每天尽量上传,代码在本地的时间不要超过2天
  不规范示例:暂无
  规范示例:暂无
  解析:保持与资源库的同步

时间: 2024-07-29 05:43:10

java高级规范之一的相关文章

Java高级规范之四

四十一.控制层不能调用model层除了最顶级的接口外的任何内容.要通过new顶级接口才能调用. 不规范示例: public class UserServiceImpl{ private UserDAOImpl userDAOImpl; private UserServiceImpl(){ userDAOImpl = new UserDAOImpl(); } public void deleteById(Long id){ userDAOImpl.deleteById(id); } } 规范示例:

Java高级规范之三

三十一.如果变量名要加注释,说明命名不是很准确. 不规范示例:暂无 规范实例:暂无 解析:暂无 三十二.任何类字段除非必要,否则都要私有化 不规范示例: public class Person{ String name; String sex; int age; } 规范示例: public class ClassName{ private String name; private String sex; private int age; } 解析:没有为程序的安全考虑,可以被其他的类访问 三十

java高级规范

一:不允许使用汉语拼音命名(类,接口,包,常量,全局变量,局部变量,临时变量,方法名) 欠规范代码示例: public void zengJiaYongHu(){} 拼音方法名称 规范代码示例: public void addUser(){} 解析:应当使用国际化语言,拼音使得代码难懂 二:Package名必须全部小写,尽量使用单个单词 欠规范代码示例: com.lxit.daoImpl 单词大写了,daoImpl多个单词 规范代码示例: com.lxit.dao.impl 解析:这是一个大家都

Java高级规范之二

二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能会影响到程序正常运行的结果,如: for(int i=0;i<10;i++){ System.out.println(i); } //如果测试for语句里有没有执行 for(int i=0;i<10;i++){ System.out.println("测试代码是否运行到这里")

Java注释规范整理

在软件开发的过程中总是强调注释的规范,但是没有一个具体的标准进行说明,通常都是在代码编写规范中简单的描述几句,不能作为一个代码注释检查的标准和依据,做什么都要有一个依据吗:),现在我特整理了一个<Java的注释规范>,内容来自网络.书籍和自己的实际积累. JAVA注释规范 版本/状态 作者 版本日期 1.0 ghc 2008-07-02 一.背景 1.当我们第一次接触某段代码,但又被要求在极短的时间内有效地分析这段代码,我们需要什么样的注释信息? 2.怎么样避免我们的注释冗长而且凌乱不堪呢? 

标准的Java编码规范手册

编码规范体现出一个开发者的基本素质,良好的编码规范可以提高团队编码的效率,避免很多不必要的问题.今天分享一个标准的Java编码规范给大家,希望对于大家今后的开发工作带来帮助. 编码规范的意义 在项目开发维护中,编码规范作为开发规范的一个组成部分,是十分重要和必须的,它不仅仅是为了提高开发效率,也有利于降低后期维护开发的成本.编码规范的根本目的就是要让不仅代码可以一目了然,也可以很容易的理解开发人员所编写的代码程的用途和意义.由此,用来减少项目中因为开发维护人员的更替或由于长时间不维护造成的记忆模

点燃java高级架构师的成长之路!

作者:java高级进阶链接:https://www.nowcoder.com/discuss/72575来源:牛客网 金三银四跳槽旺季,每个人都想有一份高薪资,环境好,且稳定的工作,现在已经是四月份了,跳槽旺季还剩最后一个月,你们都准备好了么?你们吃饭的技术过硬么?你们准备好进名企了么?最主要的是,你们是一名资深架构师么?想成为架构师么?还是继续每天坚持加班的桥写代码??????这些问题,只有你们能明白且自己解决. 现在正是需要我们认真考虑的时候,要如何提高我们的编程能力,要怎样努力才可以成为一

转:成为Java高级程序员需要掌握哪些?

section 1 1.Core Java,就是Java基础.JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合.更高效,这些内容直接看源代码就OK了 2.多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机

怎么成为java高级架构师?图灵学院总结的java架构师学习路线

怎么成为一个java高级架构师呢?相信这是很多java从业者,又或者说是coder/码农们比较感兴趣的问题,要回答这个问题,首先需要明白的是java架构师是什么?简单点说,架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作.主要着眼于系统的"技术实现",工作内容就是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节.扫清主要难点的技术人员,并且需要有良好的组织管理能力.因此应该是特定的开发平台.语言.工具的大师,对常见应用场景能马上给出最