代码格式之什么样的代码格式才是正确的

应该说是最近,因为代码格式的问题被同事指出,虽然说我主观上不是很乐意接受,但是以后如果我要带徒弟的话,首先自己要做到不好的地方,有则改之,否则怎能服人。

代码格式问题主要体现是代码空行太多,一个类的代码行一千多行,其中不必要的空行就多了三四百行。

以我之前写的博客系统其中的代码例子来说(确实看起来不美观):

public SelfUserEntity getUserInfo(String username) {

       QueryWrapper<Users> userWrapper = new QueryWrapper<Users>();


       //邮箱正则表达式
       String expr = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$";

       //是否为邮箱
       if (username.matches(expr)) {
           userWrapper.eq("user_email", username);
       } else {
           userWrapper.eq("user_login", username);
       }


       Users userInfo = usersDao.selectOne(userWrapper);

       if (userInfo == null) {
           throw new NullPointerException(
                   "用户不存在");
       }


       SelfUserEntity selfUserEntity = new SelfUserEntity();

       if (userInfo.getId() != null) {

           selfUserEntity.setUserId(userInfo.getId());
           selfUserEntity.setUsername(userInfo.getUserLogin());
           selfUserEntity.setPassword(userInfo.getUserPass());
           selfUserEntity.setStatus(userInfo.getUserStatus().toString());
       }

       return selfUserEntity;
   }

换言之,我为什么喜欢代码空行这么多?
原因是因为我不喜欢代码看起来太过拥挤、密密麻麻。

参考Java开发手册-编程规约-代码格式第一条如下:
【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:

  • 1) 左大括号前不换行。
  • 2) 左大括号后换行。
  • 3) 右大括号前换行。
  • 4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行

修改后,代码格式如下:

public SelfUserEntity getUserInfo(String username) {
       QueryWrapper<Users> userWrapper = new QueryWrapper<Users>();
       //邮箱正则表达式
       String expr = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$";
       //是否为邮箱
       if (username.matches(expr)) {
           userWrapper.eq("user_email", username);
       } else {
           userWrapper.eq("user_login", username);
       }
       Users userInfo = usersDao.selectOne(userWrapper);
       //条件判断(等于null)
       if (userInfo == null) {
           throw new NullPointerException(
                   "用户不存在");
       }
       //数据装载
       SelfUserEntity selfUserEntity = new SelfUserEntity();
       if (userInfo.getId() != null) {
           selfUserEntity.setUserId(userInfo.getId());
           selfUserEntity.setUsername(userInfo.getUserLogin());
           selfUserEntity.setPassword(userInfo.getUserPass());
           selfUserEntity.setStatus(userInfo.getUserStatus().toString());
       }
       return selfUserEntity;
   }

 

上一篇:Bristol的第23篇密码学


下一篇:电商系统适配最新小程序授权登录方案