🏠个人主页:尘觉主页
文章目录
- 前言
- 一、可读性的重要性
- 二、用名字表达代码含义
- 三、避免名字歧义
- 四、良好的代码风格
- 五、注释的价值
- 六、如何编写注释
- 七、提高控制流的可读性
- 八、拆分长表达式
- 九、变量与可读性
- 十、抽取函数
- 十一、一次只做一件事
- 十二、用自然语言表述代码
- 十三、减少代码量
- 😄总结
前言
在软件开发中,
程序员大部分时间并不是在写代码,而是在读代码。我们要阅读自己的代码,也要阅读他人的代码。代码的可读性不仅影响开发效率,还会直接影响项目的长期维护成本。可读性良好的代码能够降低沟通成本,减少理解错误,并且让重构与扩展更加容易。相反,晦涩难懂的代码不仅容易埋下 bug,还会让团队成员不愿意修改它,从而影响整个系统的健康演进。
本篇总结了如何提升代码可读性的实用方法,涵盖命名、注释、风格、控制流设计、变量管理、函数抽取等方面,为开发者提供系统化的参考。
一、可读性的重要性
编程有很大一部分时间是在阅读代码,可读性良好的代码能显著提升效率和质量。只有在极少数性能关键场景下才可暂时牺牲可读性,其余情况下,可读性应当被放在首位。
二、用名字表达代码含义
-
选用语义化单词:
send
→ deliver、dispatch、announce、distribute、routefind
→ search、extract、locate、recoverstart
→ launch、create、begin、openmake
→ create、set up、build、generate、compose、add、new
-
循环迭代器避免
i, j, k
,可改为userIndex
、memberIndex
。 -
名字长度与作用域成正比:作用域大 → 名字长,作用域小 → 名字短。
三、避免名字歧义
- 先思考别人是否会误解这个名字。
- 布尔命名加前缀:
is
、can
、should
、has
。 - 数量范围:
min
、max
;空间范围:first
、last
;排除范围:begin
、end
。
四、良好的代码风格
- 使用空行和缩进组织逻辑。
- 对齐注释,保持整齐:
int a = 1; // 注释
int b = 11; // 注释
int c = 111; // 注释
- 变量定义顺序应与业务对象顺序一致。
五、注释的价值
-
不要为显而易见的代码写注释,如 getter/setter。
-
注释不是名字的替代品,应优先写好变量名。
-
注释可用于:
- 记录设计思路;
- 提醒特殊情况;
- 标记未完成工作:
标记 | 用法 |
---|---|
TODO | 待做 |
FIXME | 待修复 |
HACK | 临时粗糙方案 |
XXX | 危险,需特别注意 |
六、如何编写注释
- 简洁清晰:
// Student's name -> Student's score
Map<String, Integer> scoreMap = new HashMap<>();
- 用示例说明:
// Example: add(1, 2) returns 3
int add(int x, int y) {return x + y;
}
- 使用专业名词缩短解释。
七、提高控制流的可读性
- 条件表达式:变量在左,常数在右。
- 三目运算符仅限逻辑简单的情况。
- 避免使用
goto
。 - 在循环中使用
return
减少嵌套。
八、拆分长表达式
- 使用解释性变量:
username = line.split(':')[0].strip()
if username == "root":...
- 运用逻辑定律简化表达式:
if (!(a || b)) { ... }
九、变量与可读性
- 减少控制流变量:用
break
/return
替代布尔标记。 - 减小作用域:变量应尽量靠近使用点。
- 避免全局变量:JavaScript 中应始终用
var/let/const
声明变量。
优化示例
原始代码:
var setFirstEmptyInput = function(new_value) {var found = false;var i = 1;var elem = document.getElementById('input' + i);while (elem != null) {if (elem.value === '') {found = true;break;}i++;elem = document.getElementById('input' + i);}if (found) elem.value = new_value;return elem;
}
优化后:
var setFirstEmptyInput = function(new_value) {for (var i = 1; true; i++) {var elem = document.getElementById('input' + i);if (elem === null) return null;if (elem.value === '') {elem.value = new_value;return elem;}}
};
十、抽取函数
- 函数应围绕高层目标,次要逻辑可抽取为独立函数。
- 抽取的好处:更容易测试、调试、修改。
- 抽取要适度,避免过度分散。
十一、一次只做一件事
- 单一职责原则:每段代码或每个函数只完成一个任务。
- 若任务过多,应拆分成多个函数或逻辑块。
十二、用自然语言表述代码
- 写代码前先用伪代码描述逻辑,再翻译成代码。
- 能帮助理清思路,提升结构清晰度。
十三、减少代码量
- 避免过度设计。
- 善用标准库与现有工具,减少冗余实现。
😄总结
代码不仅是让计算机执行的指令,更是团队成员之间沟通的语言。可读性优先的原则能够显著降低沟通成本、提高维护效率。
提升可读性的方法包括:合理命名、避免歧义、保持良好风格、合理注释、简化控制流、缩小变量作用域、抽取函数、专注单一任务、借助伪代码、减少冗余实现。
“写给人看的代码,顺便能让机器运行”,应成为每位开发者的信条。
😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
手写机制
微服务组件
spring_尘觉
springMVC
mybits
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持
🤔欢迎大家加入我的社区 尘觉社区
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞