专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
目录
相关文章推荐
芋道源码  ·  5.6K ... ·  15 小时前  
ImportNew  ·  亚马逊程序员破防:AI ... ·  2 天前  
芋道源码  ·  面试官:为什么数据库连接很消耗资源? ·  2 天前  
芋道源码  ·  我用这11招,让接口性能提升了100倍 ·  2 天前  
51好读  ›  专栏  ›  芋道源码

公司新来了个同事,代码写得是真优雅呀!代码如诗!

芋道源码  · 公众号  · Java  · 2025-04-30 09:30

正文

请到「今天看啥」查看全文



工作多年后,越发觉得代码整洁真的是太重要了!尤其是在团队开发中,写出优雅工整的代码,能让同事更乐于跟你合作。

下面,将通过命名、类、函数、测试这四个章节,使我们的代码变得整洁。

1.为什么要保持代码整洁?

不整洁的代码随着时间的增加而增加时,生产力会随之降低. 导致的结果就是:

  • 代码不易扩展或扩展容易引发其他问题
  • 程序崩溃
  • 加班
  • 增加公司成本(加人) 甚至可能造成公司倒闭 一图胜千言

1.1 所以从一开始就要保持整洁

所以在一开始就要写整洁的代码,如果有不整洁的代码就要及时的整改. 绝对不要有以后再改,以后再说的想法, 因为!

later equal never

想想是不是这个道理,你有多少以后再说、以后再改的东西都抛诸脑后了.

如果是一定要做的事情,那就趁早做!

1.2 如何写出整洁的代码?

那么现在的问题就是,怎样的代码才算是整洁的代码呢:

  • 可读性要高: 代码要像散文一样优雅易读,见码知意

  • 拒绝重复代码

  • 满足设计模式原则

    • 单一职责
    • 开闭原则
    • 里氏替换原则
    • 依赖倒转原则
    • 接口隔离原则
    • 迪米特法则
    • 合成复用法则

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

2.命名

好的命名可提高代码的可读性,让人见码知意, 降低理解成本,提高效率, 减少加班.

2.1 不好的命名方式

  1. 没有任何意义的命名方式
public interface Animal {
    void abc();
}

现在我们有一个动物的接口, 里面有一个方法abc(),看了让人一头雾水, 调用这个方法的人也完全不知道这个方法是干什么的,因为他的命名毫无意义

有意义的命名方式:

public interface Animal {
    void cry();
}

我们将方法名命名为cry(喊叫,呼喊),调用的人就知道这个方法的作用是什么了.

所以命名一定要有意义且让人见码知意.

  1. 命名前后不一致 这种情况体现在明明是同一行为,但是却有不同的命名,前后不一致,让人造成混淆.
public interface StudentRepository extends JpaRepository<AlertAllString{
    Student findOneById(
            @Param("id")
 String id
    )
;

    List queryAllStudent(
    )
;

}

上面两个方法都是查询 xxx, 但是命名一会叫 query 一会叫 find,这种情况应该加以规范,保持一致, 修改后:

public interface StudentRepository extends JpaRepository<AlertAllString{
    Student findOneById(
            @Param("id")
 String id
    )
;

    List findAll(
    )
;

}
  1. 命名冗余 体现在命名有很多没必要的成分在里面, 并且这些"废话"并不能帮助区分它们的区别, 例如在变量命名中添加了 Variable 这个词, 在表名中添加了 Table 这个词. 所以命名中不要出现冗余的单词 , 并且提前约定好命名的规范.
// 获取单个对象的方法用get做前缀
getXxx();
//获取多个对象用list做前缀
listXxxx();

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

3.类

整洁的类应满足一下内容:

  • 单一职责
  • 开闭原则
  • 高内聚性

3.1单一职责

类应该短小,类或模块应有且只有一条加以修改的理由 , 如果一个类过于庞大的话,那么说明它承担的职责过多了.







请到「今天看啥」查看全文