清除代码异味:我们需要有质量的代码

2011-05-19 00:22:57  来源:外刊IT评论 

WebjxCom提示:今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的一些他的话。

今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的一些他的话。

为什么我们需要有质量的代码?

  • 敏捷开发方法是用来应付那些要求代码做大量改动的反馈信息的方法。
  • 如果程序没有用一种好的表达方式来表现,那程序会很难读,难维护,难修改。

什么是代码异味?

  • 代码异味是一种由写的很差的代码引起的一种有臭味的感觉,一种程序什么地方会有问题的感觉
  • 异味更多的是来自一种直觉,而不是一种有据可查的标准,当你看到有味的代码时你就“感觉”到了
  • 如果你不把异味清除,不久之后你就会习惯这种气味,不再对它有察觉
  • 用任何语言都能写出有异味的代码:即使最简单安全的语言,你也能做出天才才能想出的蠢事:)
  • 我们经常会意识不到自己在写很臭的代码,经常需要外人为我们指出这点
    • 边注:如果你不想刻意去批评某人的程序,不要说“太愚蠢了”,要说“哦,这很有意思…。可有一种更好的方法你知道吗

重复的代码

  • 会引起程序里面多个地方相同的错误
  • 印度小伙:每两个月我们都会把这相同的错误修改一次
  • Venkat:你们去掉了重复的代码了吗?
  • 印度小伙:你说的这个方法不错!

不必要的复杂

  • 程序员本质上讲高兴去处理复杂的问题
  • 复杂最恐怖

异常处理

  • 问:有什么比一个空的异常捕捉代码更糟糕的?
    • try { ... } catch (Exception e) { }
  • 答:一个带有注释的空异常捕捉代码!
    • try { ... } catch (Exception e) { // is this required? }
  • Java的异常检查:好还是不好?
  • 如果你不想处理一个异常,就把它传递下去
  • 如果你想捕捉两个异常,使用两个catch代码,不要只写一个而用If条件处理

Switch语句 & 按类型的条件判断

  • Switch语句和按类型的条件判断通常可以用多形性来代替

长方法

  • 你不能在一屏上看到整个方法
  • 这通常意味着一个方法承担这多重任务
  • 难于调试
  • 不可测试
  • 难于重用 -> 导致程序员从方法的其它地方拷贝粘贴出重复的代码
  • 复杂的条件语句 -> 挑战大脑的逻辑分析能力
  • 方法长度:组织归纳水平比控制代码行数更重要

共2页: 上一页 1 [2] 下一页
更多