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

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

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

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

复制代码
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;
   }
复制代码

 

posted @   挑战者V  阅读(612)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2018-04-05 MyBatis之反射技术+JDK动态代理+cglib代理
2018-04-05 MyBatis之动态sql
点击右上角即可分享
微信分享提示