这是一个你的项目应该遵循的垃圾代码书写准则的列表,把称为适当的垃圾代码。
Read this in other languages: English
命名越短,就需要越多的时间去思考代码逻辑等问题。
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 = {"沉", "默", "王", "二"};
String i2 [] = {"沉", "默", "王", "三"};
Bad 👎🏻
String [] wanger = {"沉", "默", "王", "二"};
String wangsan [] = {"沉", "默", "王", "三"};
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("沉默王二");
list.add(18);
Bad 👎🏻
List<String> nameList = new ArrayList<String>();
// 编译出错
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;
}
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 = {"沉",
"默", "王", "二"};
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);
不要把代码逻辑分成可读的部分。
- 一个类中的代码行数超过 10000 行。
- 一个方法中的代码行数超过 1000 行。
- 一个方法里既做减法处理又做加法处理,还做乘除的处理。
代码测试是测试工程师的事,关我屁事。
随心所欲地编写代码,特别是在一个团队中有多个开发人员的情况下,我崇尚“自由”。
从一开始就不要。
代码尽管已经废弃了,注释掉就行了,没必要删掉。