【编写可读代码的艺术】读书小记 二: 简化循环和逻辑

目录

1.把控制流变得易读

2.拆分超长的表达式

3.变量与可读性


1.把控制流变得易读

  • 注意条件语句中参数的顺序

一般遵循以下的规则易于理解和阅读。不过在有些语言中,因为可以把赋值语句放在条件中,可能会导致一些bug,所以会调换参数位置,写成

if(NULL == obj) ...

称之为“尤达表示法”,不过在现代编译器中会给出警告,因此这种表示已经是过时的事情了。

  • if/else语句块的顺序

通过考虑条件的反方面来简化块的大小。

默认情况下使用if/else,三目运算符只有在最简单的情况下使用。

  • 避免do/while循环
  • 从函数中提前返回
  • 避免使用goto
  • 减少嵌套的层数

2.拆分超长的表达式

  • 使用用作解释的变量进行拆分
if line.split(':')[0].strip() == "root":

//
username = line.split(':')[0].strip()
if username == "root":
  • 使用总结变量

即使一个表达式不需要解释(从命名中能看出意思),使用新的变量去包装它也是有效的,我们把这种变量叫做总结变量。

它的目的是用一个短很多的名字代替一大串代码,便于管理和思考。

  • 使用德摩根定理

  • 拆分巨大的语句

在c++等中可以使用宏来简化语句。

3.变量与可读性

通常情况下,变量越多越难跟踪它们的动向,变量作用域越大跟踪它的动向所需时间更久,变量改动得越频繁越难以跟踪它的当前值。

  • 减少变量

如果一个变量没有拆分任何复杂的表达式,没有对表达式做进一步的解释,或者压缩任何冗余代码,我们可以去除这样的中间变量。

  • 减少中间结果
  • 减少控制流变量
  • 缩小变量的作用域

让变量对尽量小的代码行可见。

只写一次的变量更好。那些只设置一次的变量(const,final,...)使得代码更容易理解。

发布了35 篇原创文章 · 获赞 5 · 访问量 430

猜你喜欢

转载自blog.csdn.net/qq_33776188/article/details/101017163