代码之丑(零)

  看到下面这段代码,你会做何感想?

   
   
   
   
if (db.Next()) {
return true ;
}
else {
return false ;
}

  有的人会想,怎么写得这么笨啊!但是,请放心,绝对会有人这么想,挺好的,实现功能了。这并非我臆造出的代码,而是从一个真实的codebase上找到。

  成为一个咨询师之后,我有机会在不同的项目中穿梭。同客户合作的过程中,我经常干的一件事是:code diff。也就是用源码管理工具的diff功能把当天全部修改拿出来,从编码的角度来分析代码写得怎么样。

  因为这个工作,我看到了许多不同人编写的代码,我的编码底线不断受到挑战。许多东西,我以为是常识,但实际上不为许多人所知,比如上面那段代码。

  我把在看到的问题总结成一个session,与客户的程序员分享。结束之后,有人建议,为什么不能把这些问题写下来,与更多人分享。于是,我产生了写下《代码之丑》念头,以此向《代码之美》致敬。

  最后要说的是,开始那段代码可以写成这样:

   
   
   
   
return db.Next();

你可能感兴趣的:(重构)