减少if条件判断句提高代码可读性

过多的条件判断导致可读性差

过多的if条件判断不仅可读性差,写出来的代码也不整齐。一个解决方法是不断优化自己的代码,每次不使用if重写自己的一小部分代码。这意味着你要学习新的组织代码的方式。

尽管不使用条件判断会让代码可读性变高,但这并不意味着你绝对不允许使用if语句。以下介绍两种方式提高条件判断语句的可读性:

将代码拆分成多个个方法:

  1. 一个方法包含了条件判断分支,以及调用其他方法的语句
  2. 真正执行逻辑的犯法,供1种的方法调用

栗子:

function updateOrInitializeOrder(order, updates) {
  if(order == null) {  
    order = new Order();
    order.subtotal = updates.subtotal || 0;
    order.items = updates.items || [];
    // etc
  } else {
    order.subtotal = updates.subtotal || order.subtotal;
    // etc
  }
}

按照上面的原则重新组织方法:

function updateOrInitializeOrder(order, updates) {
  if(order == null) {
    return initializeOrder(updates)
  } else {
    return updateOrder(order, updates)
  }
 }
 
function initializeOrder(updates) {
  // …etc
}
 
function updateOrder(order, updates) {
  // …etc
}

后面的写法很容易看清楚各种情况下进行什么样的操作(前提是被调用方法的方法名足够准确)。
重构前的代码需要你在大脑中“单步阅读”才能知道代码逻辑,不仅速度慢,而且容易出错。

条件扁平化,把多层条件判断改为单层

original code:

if (a) {
  if(b) {
    foo();
  }
  bar();
} else {
  baz();
  if(c) {
    qux();
  }
}
qaz();

嵌套使得代码阅读起来比较费劲,重写判断逻辑如下,虽然代码行数变多,但是分支变得更加清晰。

if (a && b) {
  foo();
  bar();
  qaz();
} else if(a) {
  bar();
  qaz();
} else if(c) {
  baz();
  quz();
  qaz();
} else {
  baz();
  qaz();
}

参考文章:https://revelry.co/coding-without-if-statements/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,207评论 0 13
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,860评论 2 9
  • 将荻港和陈果夫故事写成小文《故乡是一块桂花年糕》。 同事谢芳KK上谈做一个有趣的人,很有意思。我说,有趣的人不多,...
    黄叶村人阅读 418评论 5 2
  • 看到一篇文章《一代知识分子的爱与死》,谈到傅雷先生与陈梦家先生。因为这两位先生,都是在1966年9月3日这一天选择...
    Andylee阅读 484评论 1 2
  • 今天要去学校听武际金校长的教育讲座,所以早上五点半就起床了。孩子们六点也起床了。本来打算让爸爸去听课的,但是...
    相宜霏妈妈阅读 144评论 0 1