1、代码重复;
2、过长的方法(太多的上下文信息,如大量临时变量,使代码不容易理解);
3、过大类(往往是一个类承担了太多的职责所致);
4、过长参数列(方法参数一般不要超过7个);
5、发散式变化(一个类受多种变化的影响);
6、散弹式变化(一种变化引发多个类的相应修改);
7、依恋情结(类的某个方法“身在曹营心在汉“);
8、数据泥团(总是绑在一起的数据);
9、基本类型偏执(过份依赖于语言内置的类型);
10、Switch语句(容易导致重复);
11、平行继承体系(散弹式变化的特例);
12、冗赘类(一个类承担的职责过少);
13、夸夸其谈未来性(过分追求代码的灵活性导致很多不必要的事情,增加了系统理解难度和可维护度);
14、令人迷惑的暂时值域(值域“招聘了临时工”);
15、过度耦合的消息链(对象之间玩起了“击鼓传花”);
16、中间转手人(一个类里有过多“不干实事”的方法);
17、狎昵关系(两个类过于亲密);
18、异曲同工的类(“马甲”类);
19、不完美的程序库类;
20、纯稚的数据类(“哑类”,“只吃粮食不干活”的类);
21、被拒绝的遗赠(这个气味一般不强烈);
22、过多的注释(感觉需要添加注释前试着让所有注释都变得多余)。
posted on 2007-07-11 21:23  Sam Zhang  阅读(273)  评论(0编辑  收藏  举报