编程活动中几个不良现象

作者:edream 来源:沉寂博客 时间:2008-09-01 12:23:00 

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

1. 搭棚子

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

出现搭棚子的现象暴露出几个方面的问题。
   1)管理的混乱。管理者有职责去检查这样的代码,并及早给予纠正和提供指导。
   2)不重视设计。如果一个软件组织不重视设计,出现这样的现象是自然而然的事情。
   3)实用主义。在项目实施的过程中,有些人的口号就是实现功能就好,满足用户的需求就好,因而在编程的过程中总是匆匆上马,表面上是加快了进度,实际为项目的后期维护埋下了 * ,严重的会严重影响项目的进度和质量。

2. 钉钉子

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

3. 甩锤子

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

4. 糊窗子

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

5. 拉肚子

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

6. 遛狗子

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

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

标签:编程,sql,程序
0
投稿

猜你喜欢

  • python探索之BaseHTTPServer-实现Web服务器介绍

    2023-06-03 03:14:34
  • 基于js里调用函数时,函数名带括号和不带括号的区别

    2023-08-24 05:05:41
  • ASP从数据库中获取下载文件

    2007-10-06 21:17:00
  • asp.net微信开发(永久素材管理)

    2023-07-21 13:02:45
  • Python爬虫实例扒取2345天气预报

    2021-09-27 22:38:12
  • Python字典简介以及用法详解

    2023-12-05 04:23:52
  • Python学习之字典和集合的使用详解

    2022-11-01 19:54:21
  • flask 框架操作MySQL数据库简单示例

    2024-01-16 12:48:10
  • MySQL 查看链接及杀掉异常链接的方法

    2024-01-27 00:29:40
  • jsp学习之scriptlet的使用方法详解

    2023-06-27 11:06:37
  • 浅谈python中的__init__、__new__和__call__方法

    2023-01-05 21:21:03
  • 在pandas多重索引multiIndex中选定指定索引的行方法

    2023-07-07 22:04:16
  • ASPError(err)对象的相关基础知识

    2008-03-24 20:23:00
  • golang网络通信超时设置方式

    2024-05-09 09:39:27
  • python控制台打印log输出重复的解决方法

    2021-02-23 04:05:17
  • 详解Python数据结构与算法中的顺序表

    2023-12-31 01:47:04
  • phpStorm2020 注册码

    2024-05-11 10:07:19
  • Google开源的Python格式化工具YAPF的安装和使用教程

    2023-02-02 12:32:16
  • 删除重复数据的算法

    2024-05-13 09:36:14
  • PHP格式化显示时间date()函数代码

    2023-06-10 17:55:01
  • asp之家 网络编程 m.aspxhome.com