10 个让你的代码变得糟糕的编码错误

2025-06-07

10 个让你的代码变得糟糕的编码错误

我通过研究几个不同的程序、参考一些编程书籍(例如 Andy Hunt 和 Dave Thomas 合著的《程序员修炼之道》以及 Rober C. Martin 的《代码整洁之道》)并进行重构,创建了这个列表。每次修改代码时,我都会思考为什么要这么做。最终,我得到了一份很长的清单,上面列出了我在阅读代码时遇到的十大编程错误。在本文中,我列出了我在阅读代码时遇到的十大编程错误。

1- 冗余注释

如果注释描述的是描述自身的东西,那么它就是多余的。
例如:
i++; // 增加 i

2- 写得不好的评论

慢慢写评论,确保它写得尽可能好。使用正确的语法和标点符号,并简洁明了。
例如:

Public void DisplayTutorial() //使用时,将打开教程窗口显示教程

更正:

Public void DisplayTutorial() //显示窗口

相关文章: 无需学位也能取得成功的五大 Web 开发人员

3-注释掉的代码

你见过多少次几百条代码被注释了?谁知道它有多老?谁知道它是否有意义?然而,没有人会删除它,因为大家都认为别人需要它,或者有计划使用它。
那些代码就放在那里腐烂,一天比一天臭。解决办法???很简单。直接删除它!别担心,如果有人真的需要,可以回去查看之前的版本。

4- 争论太多

函数应该只包含少量参数。最好是没有参数,其次是包含一个、两个和三个参数。超过三个参数就很成问题,应该谨慎避免。

相关文章: 无需学位即可在游戏开发领域找到工作的 10 个人

5- 一个功能,多个任务

理想情况下,每个功能应该只服务于一项任务。

例如:

public void Calculate(float a,float b,float c)
{
if(Add)
{
a=b+c;
}else if (Substract)
{
a=bc;
}else if(multiply)
{
a=b*c;
}
}

更正:
public void Add(float a, float b,float c)
{
a=b+c
}

公共无效减法(浮点数 a,浮点数 b,浮点数 c)
{
a = bc
}

公共无效乘法(浮点数 a,浮点数 b,浮点数 c)
{
a = b * c
}

6- 无效函数

从未调用过的方法应该被丢弃。保留死代码是一种浪费。不要害怕删除函数。记住,你的源代码控制系统仍然会记住它。

相关文章: 睡觉致富

7-不一致

一致性,如果运用得当,可以使代码更易于阅读和修改。
不一致性是指习惯以某种方式做某事。一旦习惯了,就用相同的方式做所有类似的事情。谨慎选择约定,一旦选择,就要注意继续遵循。
例如:
使用变量名“Quit”和“Exit”,而不是坚持使用“Quit”或“Exit”。

8- 重复


重复是一个非常严重的问题。几乎每位撰写软件设计文章的作者都会提到这条规则。Dave Thomas 和 Andy Hunt 称之为 DRY3 原则(不要重复自己)。Kent Beck 将其作为极限编程的核心原则之一,并称之为“一次,且仅一次”。
很简单,尽可能地查找并消除重复。
例如:
在不同的模块中反复使用 switch/case 或 if/else 语句,总是测试同一组条件,就会出现重复。
更正:
考虑使用多态性。

相关文章: 如何获得成功-第3集-布莱恩·格拉

9-责任错位


软件开发人员需要做出的最重要的决定之一就是将代码放在哪里。
例如:
PI 常量应该放在哪里?它应该放在 Math 类中吗?它应该放在 Trigonometry 类中吗?或者应该放在 Circle 类中吗?

修正
代码应放置在读者自然预期的位置。PI 常量应放置在声明三角函数的位置。我们将把它放在一个方便我们理解但读者不一定能理解的函数中。

10-函数和变量名称

函数名应该能够说明其功能。务必选择描述性的名称,并花些时间仔细挑选,这绝对值得。虽然你可能会花一些时间思考,但这绝对能节省你以后的时间,尤其是在一个月或一年后阅读代码时。
看看这段代码:
Date newDate = date.add(5);
你期望它为日期添加五天吗?还是几周,或者几小时?
你无法从调用中看出函数的具体功能。

更正:
如果函数在日期上增加五天并改变日期,那么它应该被称为IncreaseByDays或AddDays。

文章来源:https://dev.to/hussein_cheayto/10-coding-mistakes-that-make-your-code-smell-2dlo
PREV
Rust 在 Web 上的应用
NEXT
如何将 Paypal 与 NextJs 集成