变量命名

一个变量的名称应该做到名副其实,应该是非形式的、简练的、容易记忆的。变量的作用域越大,携带的信息就应该越多。

全局变量使用具有说明性的名字, 局部变量用短名字. 给每个全局变量声明附一个简短注释也非常有帮助.

变量命名时应该考虑不要有歧义,具有一定的区分度,便于搜索等。不需要给变量添加类型前缀。阅读代码的人一定是程序员,因此方向使用计算机领域的专有名词。

  • 按常规方式使用的局部变量可以采用极短的名字. 例如用 i、j作为循环变量, p、q作为指针, s、t表示字符串等.
  • 人们常常鼓励程序员始终使用长的变量名. 这种认识完全是错误的, 清晰性经常是随着简洁而来的.

表达式和语句

  • 应该以尽可能一目了然的形式写好表达式和语句. 例如, 通过给运算符两边加空格的方式说明分组.
  • 用加括号的方式排除二义性. . 括号表示分组, 即使有时并不必要, 加了括号也可能把意图表示得更清楚.
  • 在混合使用互相无关的运算符时, 多写几个括号是个好主意.
  • C语言以及与之相关的语言存在很险恶的优先级问题, 在这里很容易犯错误.
  • 我们的目标应该是写出最清晰的代码, 而不是最巧妙的代码.

一致性与习惯用法

  • 一致性带来的将是更好的程序. 如果相同计算的每次出现总是采用同样方式, 任何变化就预示着是经过了深思熟虑, 要求读程序的人注意.
  • 如果你工作在一个不是自己写的程序上, 请注意保留程序原有的风格. 当你需要做修改时, 不要使用你自己的风格, 即使你特别喜欢它.
  • 程序的一致性比你本人的习惯更重要, 因为这将使随你之后的其他人生活得更容易些.
  • 一个判断应该尽可能接近它所对应的动作. 也就是说, 一旦做过了一个测试, 马上就应该去做某些事情. (而不是先去嵌套其他语句)

函数

函数应该保持短小,每个函数都应该只做一件事,做好这一件事。

为了保证函数只做好一件事,需要对函数的内容进行合适的抽象,使得不同抽象层次的内容分布在不同的函数中,而每个函数仅处理自己所在层次的内容。

为了完成任务1,我们需要先执行步骤A,如果满足条件B,则执行步骤C。
为了完成步骤A,我们需要先执行步骤F,再执行步骤G

给函数起一个合适的,有描述信息的名称。一个函数越是集中做一件事情,越是能够起一个这样的名字。

不要重复,一定要尽可能的消除重复的代码。

抽离try-catch代码块。处理异常就是一件事情,因此需要一个单独的函数完成。而不要将异常处理和业务逻辑耦合到一起。

使用异常代替错误码和枚举。如果使用枚举,会导致所有地方都依赖这个枚举类,如果添加新的错误码需要重新编译所有的代码。而吐过使用异常,可以直接派生新的异常类型,因此不用修改其他代码。

函数应该尽量避免副作用,

函数最好没有参数,尽量只包含一个参数或者两个参数。如果函数使用了三个参数,则有必要考虑是否需要重构。

注释

最好的注释是简洁地点明程序的突出特征, 或是提供一种概观, 帮助别人理解程序. 不要在注释中写显而易见的内容,无关的内容。一个合适的函数名能很大程度上代替注释的作用。

最后更新: 2024年04月24日 15:50

版权声明:本文为原创文章,转载请注明出处

原始链接: https://lizec.top/2017/08/31/%E3%80%8A%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%AE%9E%E8%B7%B5%E3%80%8B%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/