代码之丑
代码之丑——开篇
http://www.infoq.com/cn/news/2010/11/ugly-code-0
代码之丑(一)——让判断条件做真正的选择
http://www.infoq.com/cn/news/2010/11/ugly-code-1
代码之丑(二)——长长的条件
http://www.infoq.com/cn/news/2010/11/ugly-code-2
代码之丑(三)——switch陷阱
http://www.infoq.com/cn/news/2010/11/ugly-code-3
代码之丑(四)——代码找茬游戏
http://www.infoq.com/cn/news/2010/11/ugly-code-4
代码之丑(五)——不受欢迎的大心脏
http://www.infoq.com/cn/news/2010/11/ugly-code-5
代码之丑(六)——分家的声明和使用
http://www.infoq.com/cn/news/2010/11/ugly-code-6
代码之丑(七)——你的语言
http://www.infoq.com/cn/news/2010/12/ugly-code-7
代码之丑(八)——不一致的困惑
http://www.infoq.com/cn/news/2010/12/ugly-code-8
代码之丑(九)——退让的缩进
http://www.infoq.com/cn/news/2010/12/ugly-code-9
代码之丑(十)——条件编译那些事儿?
http://www.infoq.com/cn/news/2010/12/ugly-code-10
代码之丑(十一)——封装全局变量
http://www.infoq.com/cn/news/2012/05/ugly-code-11
代码之丑(十二)--无状态方法
http://www.infoq.com/cn/news/2012/06/ugly-code-12
代码之丑(十三)封装代替嵌套容器
http://www.infoq.com/cn/news/2012/06/ugly-code-13
代码之丑(十四)--多个构造函数
http://www.infoq.com/cn/news/2012/07/ugly-code-14