编程活动中几个不良现象

    良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病
这些毛病在一些从业时间不是很长的程序员的身上表现的特别突出。
1. 搭棚子
   搭棚子顾名思义就是拿到一个任务的时候,既不做更详细的需求分析,也不作详细设计,一开始就打开编程工具,噼里啪啦的定义
了一堆的模块,我不说是定义类,是因为这样代码里根本就找不到对象,然后就在这些模块的基础上进行工作,结果整个程序看起来就
象胡乱搭起来的棚子,虽然有个程序的样子,而且似乎也实现了所要的功能,但是这样的程序往往是逻辑混乱,不仅理解困难,维护起
来也是十分的困难。既然是个棚子,在风雨飘摇之日自然难以久长。
   出现搭棚子的现象暴露出几个方面的问题。
   1)管理的混乱。管理者有职责去检查这样的代码,并及早给予纠正和提供指导。
   2)不重视设计。如果一个软件组织不重视设计,出现这样的现象是自然而然的事情。
   3)实用主义。在项目实施的过程中,有些人的口号就是实现功能就好,满足用户的需求就好,因而在编程的过程中总是匆匆上马,
     表面上是加快了进度,实际为项目的后期维护埋下了炸药,严重的会严重影响项目的进度和质量。
2. 钉钉子
   钉钉子的表现为代码维护或者程序实现的时候,硬生生的往程序中添加不必要或者与对象和逻辑相关的代码。这样的代码往往表现
在多层体系的系统中,有些人为了偷懒,不愿意从下层将代码维护好,而是从上层开始修改,如用户需要做一个报表程序,那么有的程
序员的做法就是将SQL语句直接在界面层进行调用,破坏了系统的层次和封装。还有的做法就是在不相干的对象中添加对其他对象操作
的代码。
3. 甩锤子
   有的人刚学了一个新的技术,或者一个得到一个好的点子,不管这个点子是否使用于当前的程序,就到处应用。颇有“手上拿了个
锤子就看到什么都是钉子”的架势。应用新的技术或者点子是好的,但是也要看时机和场合。
4. 糊窗子
   窗子破了的时候,如果没有地方配玻璃或者懒得去搞一块玻璃,一些人的做法就是弄一张报纸或者美女的图片帖子破了地方,以期
遮风挡雨。在我们的程序中出现BUG的时候就如同窗户破了一个洞。有的人不是从源头上进行解决,或者不是寻找合理的解决方案,而
是就地将一个漏洞堵上。其后果可能真的堵上了,但是也可能是因为其改动带来了更多的问题,也可能是堵住了一个地方,回头发现又
有其他的漏洞,然后不停的往程序身上帖报纸。这样的程序看起来将不知道有多难看。
5. 拉肚子
   拉肚子,我想每个人都拉过,相信每个人都会承认其滋味实际上是不怎么好受的,但实际上在编程活动中有的人偏偏喜欢这样。我
曾发现有的人一个函数居然超过3000行,以一屏幕25行来计算,要翻100多屏才能将一个函数的代码看完,My God!我想这样的代码
拿给谁谁都要捏着鼻子,更不要说去维护了。还有一个表现是一行往往写的很长,自己将滚动条滚过来滚过去不知道是否曾经感到过累
的慌。
6. 遛狗子
   狗子是动物,随地大小便是控制不住了,一个是它们没有文明的意识,另外一个是人无法控制它们的意识。然而我们有的程序员在
维护旧代码的过程,就仿佛如果遛狗。每修改一个程序就留下一些隐患,结果弄的一个原本好好的代码到处都是隐患。
   以上是我的一些总结,一是提醒,而是警醒。要杜绝这样的现象,除了要加强管理,程序员的自我修炼也显得尤其重要。其实很多
人并不是故意要这样,而是受自身的限制。作为管理者要不断的教育和敦促程序员,程序员也要注意不断的学习,培养自己的编程意识
和素质,同样要培养自己对产品负责,对项目负责,对同事负责,对自己的工作负责的态度和荣誉感。
posted @ 2007-12-15 16:54 皇帝的新装 阅读(5401) 评论(42)  编辑 收藏 所属分类: 项目管理

  回复  引用  查看    
#1楼 2007-12-15 17:00 | jillzhang      
不错,总结的很好
  回复  引用  查看    
#2楼 2007-12-15 18:06 | 戏水      
善喻 。强
  回复  引用  查看    
#3楼 2007-12-15 18:51 | dudu      
精彩而形象的总结!
  回复  引用  查看    
#4楼 2007-12-15 19:25 | 金色海洋(jyk)      
一时兴起,望原谅。

在一个棚子里面,发现窗子破了,于是就拿一个锤子乱钉钉子。

最后棚子塌了。

无奈只好替人遛狗狗,狗狗拉肚子,到处放水。


  回复  引用    
#5楼 2007-12-15 19:35 | 业精于勤 [未注册用户]
深有体会!我天天在制造和修改垃圾代码,我们做的项目没有一个说是顺利漂亮的完事的
  回复  引用    
#6楼 2007-12-15 20:02 | 看客 [未注册用户]
不同的项目 有不同的开发方式
个人的观点, 100w以下的项目 SQL语句直接写在界面层 都不为过

SQL语句直接在界面层 并不意味着没有层次和封装

做项目,不能太要求完美

一个处处要求完美的项目,注定要失败!
一个处处要求做到分层、封装、面向对象的项目,也许可以成功,但代价是沉重的!

SQL语句直接在界面层进行调用,在大部分做项目的软件公司都是这样,
特别是针对需求变更频繁、开发时间紧迫、公司人员变动频繁、人员水平参差不齐的情况下


我刚毕业的时候 也是极其讨厌SQL语句直接在界面层的做法,但经过几年的项目实战,发现以前的观点是错误,目前的公司经手的2个50w的项目 1个400w的项目(业务极其复杂的一个项目,光表就300多个),都是SQL语句写在界面上的
系统运行到现在,中间出现过一次问题,但和sql无关,其它倒是没出现过什么大问题,相反优点倒是体现出来了

  回复  引用  查看    
#7楼 2007-12-15 20:05 | 金色海洋(jyk)      
要提高每一个组员的能力才是最重要的。

但是怎么提高呢?

公司里的高手是义不容辞的。

看来让高手带新手是重要的。

那么怎么带呢?

培养高手(也包括其他人)的团队意识是必须的。

看来要多讲课了。


那么有谁来讲?怎么讲,讲课的效果 又如何判定。

讲团队意识,讲高手的经验,讲程序技巧。


怎么样,乱了吧。

  回复  引用  查看    
#8楼 2007-12-15 21:35 | kiler      
@看客

只能说你还停留在asp时代,SQL语句直接在界面层进行调用,并不见得方便。

  回复  引用  查看    
#9楼 2007-12-15 21:58 | 老刀把子      
说得有道理。。
如果刚加玩班回来,明天还要加班。。
就只想糊窗子了
  回复  引用  查看    
#10楼 2007-12-15 22:29 | leoxu      
感受中。。。
学习中。。。
改进中。。。

一起进步
  回复  引用  查看    
#11楼 2007-12-15 22:33 | Mainz      
挺形象的,总结的挺好
  回复  引用  查看    
#12楼 2007-12-15 22:40 | pk的眼泪      
不要强奸别人.
自己做好就行了.
  回复  引用  查看    
#13楼 2007-12-15 23:23 | DavyJ      
不是最严重的,最严重的是上面要你做的时候,你根本不知道是什么,上面也不知道做什么,“看到效果再说”,当你完成一个版本的时候,上面“发现”了一个更好的思路............
  回复  引用  查看    
#14楼 2007-12-15 23:47 | circd      
精典的总结,顶!
  回复  引用  查看    
#15楼 2007-12-16 09:22 | 绿蚂蚁      
这些情况,大多时候都是被逼出来的。
  回复  引用  查看    
#16楼 2007-12-16 09:28 | cumt吴波      
这个总结不错,呵呵
  回复  引用  查看    
#17楼 2007-12-16 10:37 | 蛙蛙池塘      
说的有理。
  回复  引用  查看    
#18楼 2007-12-16 13:15 | ServerLandon      
听起来像政府文件
  回复  引用    
#19楼 2007-12-16 14:08 | 11112222 [未注册用户]
听起来像政府文件
  回复  引用  查看    
#20楼 2007-12-16 14:23 | 无忧浪子      
总结的好.
  回复  引用    
#21楼 2007-12-16 15:37 | 士大夫 [未注册用户]
就是不回才那样的啊
  回复  引用  查看    
#22楼 2007-12-16 17:32 | 周银辉      
哈哈哈,写得好啊
  回复  引用  查看    
#23楼 2007-12-16 22:57 | *Alacky      
比喻很形象.

Sql语句直接写在界面层,那对于数据库变更这种情况,只有痛苦了
另:
'一个函数居然超过3000行' 我见到上帝了````
  回复  引用  查看    
#24楼 2007-12-17 08:26 | 驿路梨花      
楼主提出的问题挺好,但只是提出了问题,而没有给出解决的办法。最好能提出问题,然后解决问题,那样对大家的行动才会有个指导。
  回复  引用  查看    
#25楼 2007-12-17 08:31 | 驿路梨花      
@看客
我不完全同意看客的说法,确实一个项目要完全实现面向对象需要付出一些代价,但绝不是沉重的代价。在项目开始之前项目负责人拿出一个好的解决问题的标准,然后大家就都按着这个标准去写代码,那样怎么会乱呢。
“SQL语句直接在界面层进行调用,在大部分做项目的软件公司都是这样,
特别是针对需求变更频繁、开发时间紧迫、公司人员变动频繁、人员水平参差不齐的情况下”这句话我比较同意。
  回复  引用    
#26楼 2007-12-17 09:16 | 乱糟糟 [未注册用户]
楼主不改回车的地方乱回车,这个习惯就是非常不好!!!
多花点时间改自己的毛病,少说些酸溜溜的话。。。

花两分钟改改吧
  回复  引用  查看    
#27楼 2007-12-17 09:50 | BlackCat      
我现在在擦屁股,做收尾工作,这帮人干的活太LJ了,以上6点都要做!!!
  回复  引用  查看    
#28楼 2007-12-17 10:49 | 风海迷沙      
400w的项目....光表就300多个....
____________
不能说你们的程序NB,只能说你们的市场人员NB


  回复  引用    
#29楼 2007-12-17 11:29 | henry_2007 [未注册用户]
看项目 吧

大项目 就得多吹点
  回复  引用    
#30楼 2007-12-17 12:59 | 明年今天 [未注册用户]
注意养成良好的编程习惯,这个自然没话说.
项目要不要花时间去设计分析,这个很大程度上是公司管理上的问题,国内公司都存在这个问题,还是一切从实际出发吧
  回复  引用  查看    
#31楼 2007-12-17 17:30 | 林骄      
我们都是被逼的
  回复  引用  查看    
#32楼 2007-12-17 22:23 | SZW      
有道理
  回复  引用    
#33楼 2007-12-18 10:32 | 念时11 [未注册用户]
人有时候总是被习惯性思维束符 为什么不能打破固定思维模式的限制 从事情本身的角度去思考解决的办法 有时候事情就是那么简单 只是我们做着做着 想着着 就越来越复杂了
  回复  引用    
#34楼 2007-12-18 11:41 | cody.y [未注册用户]
@看客

完全支持你的观点。。事实上就是这样,
  回复  引用  查看    
#35楼 2007-12-20 15:50 | 罗嗦——.net学习之路      
我觉得lz说的这些问题或多或少的存在与每一个项目内;但是这些问题lz是看到了,能够有一些切实的做法来避免这些情况的发生吗?我在文章里面看不见。项目是由资源、质量、资金三部分组成的,片面地强调质量是不现实的;拿多少钱做多少事便是这个道理。
  回复  引用  查看    
#36楼 2007-12-25 21:09 | 孙晓东      
sql语句写在界面层,维护起来不觉得太麻烦了吗.封装起来,以后在维护的时候不就方便些了啊.
  回复  引用  查看    
#37楼 2007-12-27 23:24 | 优哉@游哉      
说的比较有道理, 一个大型项目, 如果没有一个优秀的设计, 写

代码将是一件痛苦的事情, 不过这还不算最痛苦, 最痛苦的是那些

后来维护这些垃圾代码的程序员.
  回复  引用    
#38楼 2008-01-11 15:18 | GODAA [未注册用户]
写程序就像做人,当然我们不能追求完美,但是我们也要尽力走得规范.
我现在的习惯在小的项目也要认真设计,我希望得到的是对得起自己的一双
手,辛苦的敲了这么多代码,我必须每一次都感觉更上一层楼.

我们必须要认识到,学习永远不能停止.
  回复  引用  查看    
#39楼 2008-01-15 09:37 | 蓝天旭日      
呵呵
非常经典哦
值得借鉴和深思
  回复  引用  查看    
#40楼 2008-01-19 20:55 | Blue Sky      
总结的很好!!
  回复  引用  查看    
#41楼 2008-06-15 12:00 | 凋落的雪      
我刚刚参加革命,楼主说的毛病我发现我有好多,
我这个人不善于交际,只能之际摸索,好多东西也不知道什么是对什么是错,
哎!
。。。
。。。
  回复  引用  查看    
#42楼 [楼主]2008-06-15 19:28 | 皇帝的新装      
@凋落的雪
多学习就好。


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-12-15 16:56 编辑过


相关链接: