糟糕的系统设计与编码风格
1、毛病之一:重复代码
重复代码,不仅仅是指由于在项目中Ctrl+C、Ctrl+V所导致的完全相同的重复代码,而且也指同一功能在同一项目中用不同的代码实现。
问题产生的原因:
- 软件架构设计不合理。当程序员发现要实现某一功能时,想起某处有类似的代码,于是直接Ctrl+C + Ctrl+V,重复的代码就产生了。(反思:嗯,1年多以前的我就是这么干的,嘿嘿,当时觉得简单、效率高啊,结果后面维护的时候,头都大了,现在没这个问题了,进步了哦......)
- 程序员总是高度自信的,当看到别人写的代码时,总是抱着一种“挑剔”的态度,态度1:“我是牛人,干嘛要用菜鸟写的代码”,态度2:“读他的代码太麻烦了,还不如自己写一个。于是乎,根本不觉这个代码是否在项目中出现了多处,这就造成了“不同的代码完成同一功能”的问题。(反思:我们现在的团队中这个问题出现得比较严重,除了以上两种态度以外,更主要是整个团队沟通不够好。即浪费了时间,还好在这方面我的态度还可以,表扬一下先.....)
2、毛病之二:过长的函数
- (反思:这个问题太普便了,想想在学校的时候,俺一两个函数就能干很多事,乱七八糟,一塌糊涂,这个问题已经改变得差不多了。)
3、毛病之三:过大的类
- 原句:请牢记“按职责设计类”的基本原则,让每个类都拥有一个明确的职责,只干职责内必须干的事,绝不允许一个类“兼职”过多,干些超越其职责范围外的事!
- 具体来说,对付过大的类主要有两种方法:
- (1)将其拆分成多个相互独立的类;
- (2)引入继承,把一些公有的代码上移到基类中,或者将一些特殊的方法和代码下移到子类中。
- (反思:记得开始工作的时候,这种错误犯得太多,现在已经改正不少。但是对面向对象理解还是不够深刻,特别当工作量大,时间紧迫的时候,对每个类的职责分析较少,导致虽然类不过大,但是职责比较混淆,这个问题以后需要特别注意)
4、毛病之四:过长的参数
- (反思:因为一直以来使用持久层开发,传入参数一般主要使用主键字段或者对象,我这个问题基本不存在。)
5、毛病之五:原子弹的链式反应:
- 主要现象为:一个变化引发多个类修改代码,或者一个类的代码受多种变化的影响。
- (反思:这个问题倒是遇到过,主要因为类的职责不够明确,有时候增加功能随心所俗,不仔细分析就下手导致,通过这段时间的积累,基本上能避免这个问题的出现了)
6、毛病之六:滥用技巧:
- 当某些程序员掌握了一些高级的编程技术,比如“委托”、“多态”、“多线程”等,还学习了一些“高级”理论,比如设计模式,就开始在项目中卖弄起技巧,不顾场合,乱用这种技术。
- (反思:这个问题一针见血啊,是我现在最严重的问题,虽然不致于将Hello World用上上面的技巧,但的确存在这样的问题,需要注意啊)
7、毛病之七:暴光隐私:
- (反思:写什么都用public,这方面我倒是一直比较注意的,估计也会少量存在这样的问题,但因为都是忙中出错。)
8、毛病之八:乱起名字
- (反思:乱起名字倒还不致于,就是英语太差啊,每次想个方法名字都想一头撞死。)