什么样的代码是可读性强的代码?

简介: 什么样的代码是可读性强的代码?者不仅仅是一个新手开发者焦虑的问题,也是多年开发经验的老鸟也会焦虑的问题。下面我就从代码命名 、代码注释、设计文档等几个方面说说我的理解。

代码命名


以 Java 开发者来说,代码命名是一个头疼的问题,因为名字这个东西 “仁者见仁智者见智”。不同的人有不同的理解。如何鉴别是一个比较好的命名呢?我的答案就是: “见名知意、通俗易懂”,用最常用的单词然后合理的组合即可。


类名


咱们类名通常是驼峰命名,首字母大写。例子:


ForceCode // 正例
forceCode // 反例


方法名和变量名


方法名,和变量名采用首字母小写的驼峰命名风格,例子:


localValue / getHttpMessage


包名


包名注意全部小写,分割符之间采用单词单数,例子:


org.springframework.beans


各层命名参考


A) Service/DAO 层方法命名规约


1) 获取单个对象的方法用 get 做前缀。

2) 获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects。

3) 获取统计值的方法用 count 做前缀。

4) 插入的方法用 save/insert 做前缀。

5) 删除的方法用 remove/delete 做前缀。

6) 修改的方法用 update 做前缀。


B) 领域模型命名规约


1) 数据对象:xxxDO,xxx 即为数据表名。

2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。

3) 展示对象:xxxVO,xxx 一般为网页名称。

4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。


代码注释


动手设代码之前,大家一定要先把对应的需求逻辑先梳理一遍,最好形成文档或者流程图之类的再来开发,要做到“想好了做”。不然做好了后面忘记了前面,代码就越堆越多。


可以把这些关键的的点都在注释中备注一下,记住:“注释只是代码关键逻辑的补充描述”,我不建议在代码中进行长篇大论。这些应该放在设计文档中或者或者写在 wiki 中。


注释分为三种:文档注释,行注释,多行注释,标记。


怎么算是一个合格的注释呢?我觉得应该是能够辅助代码让读者快速掌握开发者真正表达的意图的注释就是合格的注释;简而言之就是说能够在关键的代码位置进行补充描述让读者更加容易理解代码逻辑。


文档注释


对于一个 Java 文件首先需要有文档注释, 文档注释我觉得主要是说清楚这个类是做什么的;这个类是谁写的,或者多个人写的;以及创建时间,修改记录等。


/**
 * 测试类
 * 
 * @auther xx
 * @date 2021-08-17
 */
public class Test {
}


行注释


方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。


行注释是咱们用得最多得注释。在注释得时候一定要注意用词一定要简单,如果英文不是特别标准尽量使用中文,以免误导读者。最后自己写的注释在 code review 中一定要看一下看自己能否读懂,或者互相阅读代码的时候判断是否注释能够帮助读者更好地阅读代码。


特殊注释标记


特殊标记最常用的就是 todofixme 对于这类标记需要写清楚标记的原因、标记人、预计处理时间即可。例子:


// todo 这里还有补充的订单回退逻辑 xx 2021-08-17
// fixme 这里订单处理逻辑无法异常回退 xx 2021-08-17


设计文档


我觉得大多数开发者和我有类似的情况,“让我写代码没问题,让我写文档完全为难我了”。为什么有这样的问题因为我们觉得自己写的逻辑要么本身就比较乱,或者是在以前的功能上拓展的不愿意去梳理以前的逻辑,或者就是说这块功能比较简单。其实我们开发过程中其实有很多文档是必不可少的。


  1. 需求文档(PRD)


  1. 数据库设计文档(E-R 图)


  1. 设计文档(核心功能流程图,数据约束,外部依赖)


  1. 代码


  1. 代码审查日志


  1. 测试用例


  1. 运维日志


参考资料




相关文章
|
2月前
|
JavaScript 前端开发 开发者
提高代码可读性与维护性
【8月更文挑战第28天】
37 6
|
2月前
|
JavaScript 前端开发 开发者
提升代码可读性和维护性
【8月更文挑战第27天】
27 9
|
3月前
|
测试技术
代码可读性问题之使用代码生成工具帮助我们提升代码可读性,如何解决
代码可读性问题之使用代码生成工具帮助我们提升代码可读性,如何解决
|
3月前
|
开发者
代码可读性问题之避免代码中的“副作用”,如何解决
代码可读性问题之避免代码中的“副作用”,如何解决
|
3月前
|
运维
提升代码可读性问题之通过控制流提高代码的可读性如何解决
提升代码可读性问题之通过控制流提高代码的可读性如何解决
|
5月前
|
存储 缓存 运维
如何写好代码?一个提升代码可读性的小技巧
如何提高代码的可读性,使得代码变得整洁,甚至赏心悦目。本文会从“控制流”的角度分享一下作者对提高代码可读性的一些思考。
|
设计模式 人工智能 Java
一个可读性高的代码对程序员有多重要
人们都以为编写任何程序员都能够阅读和理解的代码是软件开发人员的固有技能。事实上只有20%的程序员具备这种能力。
|
5月前
|
开发者
在实际项目中,如何使用装饰器来提高代码的可读性和可维护性?
【2月更文挑战第18天】【2月更文挑战第54篇】在实际项目中,如何使用装饰器来提高代码的可读性和可维护性?
29 0
|
5月前
|
程序员 开发者
为什么强调代码的“可读性”
为什么强调代码的“可读性”
|
11月前
|
Arthas NoSQL 安全
一文聊聊代码的可读性
作者通过本文聊聊自己写代码的要求及代码的可读性。