垃圾代码应该怎么写?GitHub这份垃圾代码书写准则,请收好!

本文列举了一些编写代码时应避免的不良习惯,如命名不规范、不写注释、过度使用全局变量、忽视错误处理等,并提供了一些好的编程实践,如使用代码规范插件、保持代码简洁和一致。同时,强调了代码可读性和团队合作中代码风格统一的重要性。
摘要由CSDN通过智能技术生成

好的代码可以像诗一样优雅,然而并非人人都能写的一手好代码!老实说,想写一手不被同事吐槽的代码确实不容易,

特别是有的小伙伴在工作中公司都没有明确的代码规范,或者仅仅只是一些口头约定,这样就更难养成一些良好的代码书写习惯了。

不过 IDEA 中有一个 Alibaba 代码规范插件,可以自己装着起一个约束提醒自己的作用。

 

最近小编在 GitHub 上看到一个开源项目,还挺有意思的,作者罗列出了什么样的代码是垃圾代码,仓库地址如下:

> > > h删ttp删s://删git删hub删.com删/trek删hleb/删stat删e-of-th删e-art-s删hitc删ode

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

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

Good

inta =42;

Bad

intage =42;

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

为风格不统一干杯。

Good

intwWidth =640;

intw_height =480;

Bad

intwindowWidth =640;

intwindowHeight =480;

不写注释

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

Good

intcdr =700;

Bad

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

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

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

intcallbackDebounceRate=700;

使用母语写注释

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

Good

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

toggleModal(false);

Bad

// 隐藏错误弹窗

toggleModal(false);

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

声明变量的风格不统一

再次为风格不统一干杯。

Good

String[] i1 = {"沉","默","王","二"};

Stringi2 [] = {"沉","默","王","三"};

Bad

String[] wanger = {"沉","默","王","二"};

Stringwangsan [] = {"沉","默","王","三"};

尽可能把代码写成一行

Good

IntStream.range(1,5).boxed().map(i -> { System.out.print("Happy Birthday ");if(i ==3)return"dear NAME";elsereturn"to You"; }).forEach(System.out::println);

Bad

for(inti =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

intx =5;

void multi() {

x = x *2;

}

multi();// 现在 x 是 10

Bad

intx =5;

int multi(int num) {

returnnum *2;

}

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

声明根本不会使用的变量

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

Good

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

inttimeout =1300;

intresult = a + b;

returna + b;

}

Bad

int sum(int a, int b) {

returna + b;

}

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

Good

//享受便捷的快乐

List list =newArrayList();

list.add("沉默王二");

list.add(18);

Bad

List nameList =newArrayList();

// 编译出错

nameList.add(18);

没鸟用的代码

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

Good

Integermulti(Object num){

if(!(numinstanceofInteger)) {

returnnull;

}elseif(num !=null) {

return(Integer) num *2;

}

returnnull;

}

Bad

Integer multi(Object num) {

if(numinstanceofInteger) {

return(Integer) num *2;

}

returnnull;

}

大量的 if-else 嵌套

Good

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

if(a >0) {

if(b >0) {

if(c >0) {

intresult = a / b / c;

}

}

}

}

Bad

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

if(a <0|| b <0|| c <0) {

return;

}

intresult = a / b / c;

}

参差不齐地缩进

参差不齐乃幸福本源。

Good

String[] wanger = {"沉",

"默","王","二"};

String[] wangsan = {"沉","默","王","三"};

Arrays.asList(wanger).stream().

forEach(System.out::println);

Arrays.asList(wangsan).

stream().

forEach(System.out::println);

Bad

String[] wanger = {"沉","默","王","二"};

String[] wangsan = {"沉","默","王","三"};

Arrays.asList(wanger)

.stream()

.forEach(System.out::println);

Arrays.asList(wangsan)

.stream()

.forEach(System.out::println);

如果你在学习C/C++的过程中遇到了问题,可以来加入小编的企鹅圈问小编哦~小编很热情的(●’◡’●)

 

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

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

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

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

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

不要测试你的代码

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

 避免代码风格统一

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

不要写文档

从一开始就不要。

不要删除废弃掉的代码

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值