变量命名
一个变量的名称应该做到名副其实,应该是非形式的、简练的、容易记忆的。变量的作用域越大,携带的信息就应该越多。
全局变量使用具有说明性的名字, 局部变量用短名字. 给每个全局变量声明附一个简短注释也非常有帮助.
变量命名时应该考虑不要有歧义,具有一定的区分度,便于搜索等。不需要给变量添加类型前缀。阅读代码的人一定是程序员,因此方向使用计算机领域的专有名词。
- 按常规方式使用的局部变量可以采用极短的名字. 例如用 i、j作为循环变量, p、q作为指针, s、t表示字符串等.
- 人们常常鼓励程序员始终使用长的变量名. 这种认识完全是错误的, 清晰性经常是随着简洁而来的.
表达式和语句
- 应该以尽可能一目了然的形式写好表达式和语句. 例如, 通过给运算符两边加空格的方式说明分组.
- 用加括号的方式排除二义性. . 括号表示分组, 即使有时并不必要, 加了括号也可能把意图表示得更清楚.
- 在混合使用互相无关的运算符时, 多写几个括号是个好主意.
- C语言以及与之相关的语言存在很险恶的优先级问题, 在这里很容易犯错误.
- 我们的目标应该是写出最清晰的代码, 而不是最巧妙的代码.
一致性与习惯用法
- 一致性带来的将是更好的程序. 如果相同计算的每次出现总是采用同样方式, 任何变化就预示着是经过了深思熟虑, 要求读程序的人注意.
- 如果你工作在一个不是自己写的程序上, 请注意保留程序原有的风格. 当你需要做修改时, 不要使用你自己的风格, 即使你特别喜欢它.
- 程序的一致性比你本人的习惯更重要, 因为这将使随你之后的其他人生活得更容易些.
- 一个判断应该尽可能接近它所对应的动作. 也就是说, 一旦做过了一个测试, 马上就应该去做某些事情. (而不是先去嵌套其他语句)
函数
函数应该保持短小,每个函数都应该只做一件事,做好这一件事。
为了保证函数只做好一件事,需要对函数的内容进行合适的抽象,使得不同抽象层次的内容分布在不同的函数中,而每个函数仅处理自己所在层次的内容。
为了完成任务1,我们需要先执行步骤A,如果满足条件B,则执行步骤C。
为了完成步骤A,我们需要先执行步骤F,再执行步骤G
给函数起一个合适的,有描述信息的名称。一个函数越是集中做一件事情,越是能够起一个这样的名字。
不要重复,一定要尽可能的消除重复的代码。
抽离try-catch代码块。处理异常就是一件事情,因此需要一个单独的函数完成。而不要将异常处理和业务逻辑耦合到一起。
使用异常代替错误码和枚举。如果使用枚举,会导致所有地方都依赖这个枚举类,如果添加新的错误码需要重新编译所有的代码。而吐过使用异常,可以直接派生新的异常类型,因此不用修改其他代码。
函数应该尽量避免副作用,
函数最好没有参数,尽量只包含一个参数或者两个参数。如果函数使用了三个参数,则有必要考虑是否需要重构。
注释
最好的注释是简洁地点明程序的突出特征, 或是提供一种概观, 帮助别人理解程序. 不要在注释中写显而易见的内容,无关的内容。一个合适的函数名能很大程度上代替注释的作用。
最后更新: 2024年04月24日 15:50
版权声明:本文为原创文章,转载请注明出处