ITPub博客

首页 > 应用开发 > Java > 垃圾代码书写准则(有意思)

垃圾代码书写准则(有意思)

Java 作者:喝水会长肉 时间:2021-12-21 14:46:29 0 删除 编辑

 开门见山地说吧,在逛 GitHub 的时候,发现了一个非常有意思的项目,地址如下所示:

github.com/trekhleb/st…

名叫“ 垃圾代码书写准则”,瞧这名字,我真的是服了。作者也是良苦用心,从反面教材的角度来阐述正确书写代码格式的重要性。作者使用 JavaScript 编写的代码示例,我把它重制成了 Java 版,并且用我自己的语言风格翻译成了中文,希望小伙伴们能够喜欢。

💩 以一种容易造成代码混淆的方式命名变量

命名越短,就需要越多的时间去思考代码逻辑等问题。

Good 👍🏻

int a = 42;

Bad 👎🏻

int age = 42;

💩 变量/方法命名风格不统一

为风格不统一干杯。

Good 👍🏻

int wWidth = 640; int w_height = 480;

Bad 👎🏻

int windowWidth = 640; int windowHeight = 480;

💩 不写注释

反正没人能读懂你的代码。

Good 👍🏻

int cdr = 700;

Bad 👎🏻

注释应该包含一些“为什么”,而不是一些“是什么”。如果代码连是“什么”都表达不清楚,那代码也太烂了。


// 700ms 的数量是从 UX A/B 测试结果中得到的一个经验值。

// @查看: <详细解释 700 的一个链接>
int callbackDebounceRate = 700 ;

💩 使用母语写注释

如果你的母语是英语,那么请忽略这条准则。

Good 👍🏻


// Закриваємо модальне віконечко при виникненні помилки.

toggleModal ( false ) ;

Bad 👎🏻


// 隐藏错误弹窗 

toggleModal ( false ) ;

PS:如果英语书写能力不是很强的话,建议还是用母语吧。毕竟说清楚总比说不清楚要强。

💩 声明变量的风格不统一

再次为风格不统一干杯。

Good 👍🏻

String 
[
] i1 
= 
{
"1"
, 
"2"
, 
"3"
, 
"4"
}
;

String i2 [ ] = { "1" , "2" , "3" , "4" } ;

Bad 👎🏻

String 
[
] wanger 
= 
{
"1"
, 
"2"
, 
"3"
, 
"4"
}
;

String wangsan [ ] = { "1" , "2" , "3" , "4" } ;

💩 尽可能把代码写成一行

Good 👍🏻

IntStream
.
range
(
1
, 
5
)
.
boxed
(
)
.
map
(i 
-
> 
{ System
.out
.
print
(
"Happy Birthday "
)
; 

if (i == 3 )
  return "dear NAME" ;
else
  return "to You" ;
} ) . forEach (System .out : :println ) ;

Bad 👎🏻


for 
(int i 
= 
1
; i 
< 
5
; i
++
) 
{

   System .out . println ( "Happy Birthday " + (i == 3 ? "dear NAME" : "to you" ) ) ;
}

💩 对错误信息不管不顾

无论什么时候发现错误,都没有必要让其他人知道。

Good 👍🏻


try 
{

  // 意料之外的情况。
} catch (error ) {
  // tss... 🤫
}

Bad 👎🏻


try 
{

  // 意料之外的情况。
} catch (error ) {
  // and/or
  logError (error ) ;
}

💩 使用大量的全局变量

全球化的原则。

Good 👍🏻

int x 
= 
5
;


void multi ( ) {
 x = x * 2 ;
}

multi ( ) ; // 现在 x 是 10

Bad 👎🏻

int x 
= 
5
;


int multi ( int num ) {
  return num * 2 ;
}

x = multi (x ) ; // 现在 x 是 10

💩 声明根本不会使用的变量

万一以后用了呢?以备不时之需。

Good 👍🏻

int 
sum
(
int a
, int b
, int c
) 
{

 int timeout = 1300 ;
 int result = a + b ;
  return a + b ;
}

Bad 👎🏻

int 
sum
(
int a
, int b
) 
{

  return a + b ;
}

💩 如果条件允许的话,从不指定类型。

Good 👍🏻


// 享受便捷的快乐

List list = new ArrayList ( ) ;
list . add ( "Hello World" ) ;
list . add ( 18 ) ;

Bad 👎🏻

List
<String
> nameList 
= 
new 
ArrayList
<String
>
(
)
;

https://shimo.im/docs/v6pJqdKvhhXWXRCJ/ 《java学习上遇到问题该如何解决?》
// 编译出错
nameList . add ( 18 ) ;

💩 没鸟用的代码

看起来更严谨,其实很多余。

Good 👍🏻

Integer 
multi
(
Object num
) 
{

    if ( ! (num instanceof Integer ) ) {
        return null ;
    } else if (num != null ) {
        return (Integer ) num * 2 ;
    }
    return null ;
}

Bad 👎🏻

Integer 
multi
(
Object num
) 
{

    if (num instanceof Integer ) {
        return (Integer ) num * 2 ;
    }
    return null ;
}

💩 大量的 if-else 嵌套

Good 👍🏻


void 
someMethod
(
int a
, int b
, int c
) 
{

    if (a > 0 ) {
        if (b > 0 ) {
            if (c > 0 ) {
              int result = a / b / c ;
            }
        }
    }
}

Bad 👎🏻


void 
someMethod1
(
int a
, int b
, int c
) 
{

    if (a < 0 || b < 0 || c < 0 ) {
        return ;
    }
   int result = a / b / c ;
}

💩 参差不齐地缩进

参差不齐乃幸福本源。

Good 👍🏻

String 
[
] wanger 
= 
{
"1"
, 

        "2" , "3" , "4" } ;
String [ ] wangsan = { "1" , "2" , "3" , "4" } ;
Arrays . asList (wanger ) . stream ( ) .
        forEach (System .out : :println ) ;
Arrays . asList (wangsan ) .
        stream ( ) .
                forEach (System .out : :println ) ;

Bad 👎🏻

String 
[
] wanger 
= 
{
"1"
, 
"2"
, 
"3"
, 
"4"
}
;

String [ ] wangsan = { "1" , "2" , "3" , "4" } ;
Arrays . asList (wanger )
        . stream ( )
        . forEach (System .out : :println ) ;
Arrays . asList (wangsan )
        . stream ( )
        . forEach (System .out : :println ) ;

💩 代码行数多的方法的比少的好

不要把代码逻辑分成可读的部分。

  • 一个类中的代码行数超过 10000 行。

  • 一个方法中的代码行数超过 1000 行。

  • 一个方法里既做减法处理又做加法处理,还做乘除的处理。

💩 不要测试你的代码

代码测试是测试工程师的事,关我屁事。

💩 避免代码风格统一

随心所欲地编写代码,特别是在一个团队中有多个开发人员的情况下,我崇尚“自由”。

💩 不要写文档

从一开始就不要。

💩 不要删除废弃掉的代码

代码尽管已经废弃了,注释掉就行了,没必要删掉。

好了,小伙伴们还有需要补充的吗?


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70010294/viewspace-2848679/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-11-19

  • 博文量
    199
  • 访问量
    86383