九折技术 九折技术
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

HoldDie

长期有耐心,一切才刚刚开始!
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 代码整洁

    • 命名和注释
      • 命名
        • 命名多长最合适?
        • 利用上下文简化命名
        • 命名要可读、可搜索
        • 如何命名接口和抽象类?
      • 注释
        • 注释到底该写什么?
        • 注释是不是越多越好?
    • 代码风格
    • 编程技巧
    • 代码质量
  • 重构

  • 设计模式

  • 架构
  • 代码整洁
holddie
2020-08-24

命名和注释

# 命名

大到项目名、模块名、包名、对外暴露的接口,小到类名、函数名、变量名、参数名,只要是做开发,我们就逃不过“起名字”这一关。

# 命名多长最合适?

  • 在足够表达其含义的情况下,命名当然是越短越好。
  • 对于一些默认的、大家都比较熟知的词,推荐用缩写,这样一方面能让命名短一些,另一方面又不影响阅读理解。
    • 比如,sec 表示 second、str 表示 string、num 表示 number、doc 表示 document。
  • 对于作用域比较小的变量,我们可以使用相对短的命名,比如一些函数内的临时变量。
  • 对于类名这种作用域比较大的,更推荐用长的命名方式。
  • 命名的时候,我们一定要学会换位思考,假设自己不熟悉这块代码,从代码阅读者的角度去考量命名是否足够直观。

# 利用上下文简化命名

  • 在 User 类这样一个上下文中,我们没有在成员变量的命名中重复添加“user”这样一个前缀单词,而是直接命名为 name、password、avatarUrl。
  • 在使用这些属性时候,我们能借助对象这样一个上下文,表意也足够明确。
  • 除了类之外,函数参数也可以借助函数这个上下文来简化命名。

# 命名要可读、可搜索

  • 所说的“可读”,指的是不要用一些特别生僻、难发音的英文单词来命名。
  • 我们在命名的时候,最好能符合整个项目的命名习惯。
    • 大家都用“selectXXX”表示查询,你就不要用“queryXXX”;
    • 大家都用“insertXXX”表示插入一条数据,你就要不用“addXXX”

# 如何命名接口和抽象类?

  • 对于接口
    • 一种是加前缀“I”,表示一个 Interface。比如 IUserService,对应的实现类命名为 UserService。
    • 另一种是不加前缀,比如 UserService,对应的实现类加后缀“Impl”,比如 UserServiceImpl。
  • 对于抽象类
    • 一种是带上前缀“Abstract”,比如 AbstractConfiguration;
    • 另一种是不带前缀“Abstract”。

# 注释

# 注释到底该写什么?

  • 注释的内容一般包含三部分:做什么、为什么、怎么做。对于一些复杂的类和接口,我们可能还需要写明“如何用”。
  • 函数和变量如果命名得好,确实可以不用再多写注释,但对于类来说,包含的信息就比较多,一个简单的命名就不能够全面详尽,这时候需要注释写做什么就合情合理了。
  • 关于具体的代码实现思路,我们可以写一些总结性的说明、特殊情况的说明,让阅读的人不用看代码大致知道实现思路。
  • 对于逻辑复杂不好提炼较短名称的函数,可以借助总结性的注释来让代码更清晰、更有条理。

# 注释是不是越多越好?

  • 类和函数一定要写注释,而且要写得尽可能全面、详细,而函数内部的注释相对少一些,一般都是靠好的命名、提炼函数、解释性变量、总结性注释来提高代码的可读性。
编辑
#编程规范#命名#注释
上次更新: 2020/08/24, 10:08:00
代码风格

代码风格→

最近更新
01
行为型-访问者模式
11-24
02
行为型-备忘录模式
11-24
03
行为型-命令模式
11-24
更多文章>
Theme by Vdoing | Copyright © 2019-2020 HoldDie | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式