戏说维护代码中的六大问题

开发 项目管理
维护代码是程序员的日常工作,这个工作做得好坏与否直接关系到一段代码的生命周期。本文列举了程序员在维护代码时常犯的六大错误,以便大家参考学习。

代码的可维护性对于任何一个程序而言都是十分重要的。如果一个人写的代码,另一个人来维护的时候感到不知所措,那么对于整个系统的生命力有极大的制约。我们有的程序员在维护旧代码的过程,就仿佛如果遛狗。每修改一个程序就留下一些隐患,结果弄的一个原本好好的代码到处都是隐患。

良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病,这些毛病在一些从业时间不是很长的程序员的身上表现的特别突出。

1. 搭棚子式维护代码

搭棚子顾名思义就是拿到一个任务的时候,既不做更详细的需求分析,也不作详细设计,一开始就打开编程工具,噼里啪啦的定义了一堆的模块,我不说是定义类,是因为这样代码里根本就找不到对象,然后就在这些模块的基础上进行工作,结果整个程序看起来就象胡乱搭起来的棚子,虽然有个程序的样子,而且似乎也实现了所要的功能,但是这样的程序往往是逻辑混乱,不仅理解困难,维护起来也是十分的困难。既然是个棚子,在风雨飘摇之日自然难以久长。

出现搭棚子的现象暴露出几个方面的问题:

◆管理的混乱。管理者有职责去检查这样的代码,并及早给予纠正和提供指导。

◆不重视设计。如果一个软件组织不重视设计,出现这样的现象是自然而然的事情。

◆实用主义。在项目实施的过程中,有些人的口号就是实现功能就好,满足用户的需求就好,因而在编程的过程中总是匆匆上马,表面上是加快了进度,实际为项目的后期维护埋下了炸药,严重的会严重影响项目的进度和质量。

2. 钉钉子式维护代码

钉钉子的表现为代码维护或者程序实现的时候,硬生生的往程序中添加不必要或者与对象和逻辑相关的代码。这样的代码往往表现在多层体系的系统中,有些人为了偷懒,不愿意从下层将代码维护好,而是从上层开始修改,如用户需要做一个报表程序,那么有的程序员的做法就是将SQL语句直接在界面层进行调用,破坏了系统的层次和封装。还有的做法就是在不相干的对象中添加对其他对象操作的代码。

3. 甩锤子式维护代码

有的人刚学了一个新的技术,或者一个得到一个好的点子,不管这个点子是否使用于当前的程序,就到处应用。颇有“手上拿了个锤子就看到什么都是钉子”的架势。应用新的技术或者点子是好的,但是也要看时机和场合。

4. 糊窗子式维护代码

窗子破了的时候,如果没有地方配玻璃或者懒得去搞一块玻璃,一些人的做法就是弄一张报纸或者美女的图片帖子破了地方,以期遮风挡雨。在我们的程序中出现BUG的时候就如同窗户破了一个洞。有的人不是从源头上进行解决,或者不是寻找合理的解决方案,而是就地将一个漏洞堵上。其后果可能真的堵上了,但是也可能是因为其改动带来了更多的问题,也可能是堵住了一个地方,回头发现又有其他的漏洞,然后不停的往程序身上帖报纸。这样的程序看起来将不知道有多难看。

5. 拉肚子式维护代码

拉肚子,我想每个人都拉过,相信每个人都会承认其滋味实际上是不怎么好受的,但实际上在编程活动中有的人偏偏喜欢这样。我曾发现有的人一个函数居然超过3000行,以一屏幕25行来计算,要翻100多屏才能将一个函数的代码看完,My God!我想这样的代码拿给谁谁都要捏着鼻子,更不要说去维护了。还有一个表现是一行往往写的很长,自己将滚动条滚过来滚过去不知道是否曾经感到过累的慌。

6. 遛狗子式维护代码

狗子是动物,随地大小便是控制不住了,一个是它们没有文明的意识,另外一个是人无法控制它们的意识。然而我们有的程序员在维护旧代码的过程,就仿佛如果遛狗。每修改一个程序就留下一些隐患,结果弄的一个原本好好的代码到处都是隐患。

以上是我的一些总结,一是提醒,而是警醒。要杜绝这样的现象,除了要加强管理,程序员的自我修炼也显得尤其重要。其实很多人并不是故意要这样,而是受自身的限制。作为管理者要不断的教育和敦促程序员,程序员也要注意不断的学习,培养自己的编程意识和素质,同样要培养自己对产品负责,对项目负责,对同事负责,对自己的工作负责的态度和荣誉感。

【编辑推荐】

  1. 深入浅出.NET接口:阿猫阿狗和程序员
  2. 程序员如何选择入门编程语言?
  3. 程序员最常犯的五大非技术性错误
  4. Java程序员的知识架构浅析
  5. 专家级程序员的“饲养”心得
责任编辑:yangsai 来源: 百度空间
相关推荐

2010-04-13 11:36:01

2010-09-03 10:26:54

IT人

2012-02-20 10:11:53

PhoneGap

2019-07-31 07:08:59

物联网企业IOT

2011-04-06 14:42:25

Delphi

2010-07-02 11:17:47

绘制UML图

2012-03-01 13:17:40

Java

2019-09-02 08:12:49

物联网IOT技术

2015-11-05 11:20:14

2011-03-17 08:48:01

数据精简

2020-05-06 14:27:19

物联网垃圾分类技术

2018-05-30 08:10:34

智慧农业物联网物联网应用

2023-08-31 22:12:51

低代码隐患技术

2019-09-05 08:17:24

2012-05-21 23:59:58

Java

2023-09-06 08:30:00

低代码自动化开发

2011-05-19 14:16:29

网页设计

2015-04-22 12:08:16

JAVAMap问题

2018-08-03 05:41:13

数据隐私数据安全加密

2010-03-11 16:42:31

Python语言开发
点赞
收藏

51CTO技术栈公众号