美文网首页CWIKIUS
聊聊那些奇葩的代码规范 —— 滥用静态导入

聊聊那些奇葩的代码规范 —— 滥用静态导入

作者: HoneyMoose | 来源:发表于2023-06-08 00:20 被阅读0次

因为有些要求感觉实是太过奇葩,收集下来娱乐下大家。

代码规范要求

要求如果代码可以静态导入的话,就必须要静态导入。

所有的代码如果不静态导入,就直接 PR 拒绝合并。

举例:

equalsAnyIgnoreCase("test","test");这个必须要使用import static org.apache.commons.lang3.StringUtils.equalsAnyIgnoreCase;

如果我们写成:

StringUtils.equalsAnyIgnoreCase("test","test");

奇葩的架构师,要求这个必须要修改为静态导入。

奇葩解读

Java 的静态导入 (import static) 是从 JDK 1.5 版本开始提供的,其目的是为了减少字符输入量,提高代码的可阅读性,以便更好地理解程序。

用于导入指定类的某个静态成员变量、方法或全部的静态成员变量、方法。如果一个类中的方法全部是使用 static 声明的静态方法,则在导入时就可以直接使用 import static 的方式导入。

滥用静态导入会使程序更难阅读,更难维护。

静态导入后,代码中就不用再写类名了,但是我们知道类是“一类事物的描述”,缺少了类名的修饰,静态属性和静态方法的表象意义就会被无限方法,这会让阅读者很难弄清楚其属性或方法代表何以,甚至是哪一个类的属性(方法)都要思考想一下,特别是在一个类中有多个静态导入的时候还使用了通配符(*)这个静态导入简直是个噩梦。

还是用 StringUtils 来举例。

不是只 Apache Commons 才有 StringUtils 的。

随便拉个项目,你看看就有多少个 StringUtils,同时 equalsAnyIgnoreCase 这个方法名也不是在一个包使用的。

可能在很多包中都用了这个方法名。

这种奇葩的强制使用静态导入的要求,简直是令人发指,在特定阶段的时候破坏了程序的可读性。

在实际使用的时候,对于一些公共方法名,尽量不要使用静态导入。

但是针对测试的一些测试类中使用的断言,还是可以使用静态导入的。

importstaticorg.hamcrest.CoreMatchers.instanceOf;importstaticorg.hamcrest.MatcherAssert.assertThat;importstaticorg.junit.Assert.assertEquals;

如果上面我们常用的一些测试中使用的断言。

相关文章

  • React 代码分割&错误边界(6)

    代码分割 import 静动态导入 静态导入:static import import xxx from 'xxx...

  • SyleCop

    场景 StyleCop可以检查代码中的各类静态编程规范错误,从代码注释、代码布局、可维护性、命名规范、可读性等各个...

  • android 变量命名规范

    google aosp 标准 google aosp java 代码命名规范 遵循字段命名规范: 非公开且非静态字...

  • 11. CSS综合

    我写代码时所遵守的代码规范 HTML 标签有始有终(闭合) 尽量遵循语义化,不滥用div 命名尽量通过功能命名,使...

  • 静态导入|增强for循环|可变参数|自动装箱/拆箱

    1.1 静态导入(了解) JDK 1.5 增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化...

  • 前端Husky+lint-staged+eslint实现自动化工

    目标: 研发团队公用一套静态代码检测规范; 一套代码提交规范; 利用自动化工具完成检测,提高编码规范性和revie...

  • Espresso的详细使用

    本篇详细介绍了Espresso的使用方式. Espresso 测试代码位置和静态导入 Espresso 测试代码必...

  • jdk1.5新特性: 静态导入 & 增强for循环 &a

    静态导入 静态导入可以作用一个类的所有静态成员。 静态导入的格式 : import static 包名.类名.静态...

  • QT中dll的生成及使用

    C++中的库分为三种:静态库、动态库和导入库 1、静态库:     静态库扩展名为.lib,静态链接(即代码会直接...

  • java static关键字的几种用法

    static:java静态修饰关键字 一:可修饰的对象包括 变量,代码块,方法,内部类,内部接口,静态导入包。二:...

网友评论

    本文标题:聊聊那些奇葩的代码规范 —— 滥用静态导入

    本文链接:https://www.haomeiwen.com/subject/wxboedtx.html