编程中几个不良现象

然而我们有的程序员在维护旧代码的过程,就仿佛如果遛狗。每修改一个程序就留下一些隐患,结果弄的一个原本好好的代码到处都是隐患。

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

1. 搭棚子

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

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

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

2. 钉钉子

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

3. 甩锤子

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

4. 糊窗子

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

5. 拉肚子

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

6. 遛狗子

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

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

时间: 2024-08-23 10:21:17

编程中几个不良现象的相关文章

淘宝曝光台全新上线,定期公布店铺不良现象

本报讯(实习记者 王江泓 实习生 虎颖)3月8日,http://www.aliyun.com/zixun/aggregation/7656.html">淘宝网曝光台(bgt.taobao.com)全新上线,该平台不仅会定期公布淘宝网店铺处罚名单及网购中的一些不良现象,同时,用户也可以通过曝光台这一入口对伪劣商品和不良商家进行举报. 淘宝网表示,"曝光台将成为一个面向消费者和社会公众的曝光平台,定期公布网购中的一些不良现象和淘宝网近期的店铺处罚情况,将淘宝网的处罚和抽检结果完全公开

淘宝网曝光台正式上线,定期公布网购不良现象

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; [亿邦动力网讯] 3月8日消息,淘宝网曝光台(bgt.taobao.com)今天上线,该平台将会定期公布淘宝网店铺处罚名单及网购中的一些不良现象,同时,用户也可以通过曝光台这一入口对伪劣商品和不良商家进行举报.

C++程序设计实践学材系列(11)——1.2.3 见识编程中的“低级”错误

回到系列文章的目录--[系列文章目录] 回到本章目录--[第1章目录] 1.2.3 见识编程中的"低级"错误 在自己编程序时,缺个符号,错个表达,这很常见.介绍一个学习方法--撞错.刚学编程,在已经能正确运行的程序基础,故意捣乱,将对的改错了观察一下,这是个非常好的学习方法. 用这种故意捣乱的方法,会见识到各种低级的错误.以后编程中真的出现了一时的疏忽,你可以给出轻蔑的一撇:"小样,见过你了." 不少问题,只是初学者初涉编程才会遇到,是属于积累"常识&qu

编程中的“末行效应”

我研究过数百个因"拷贝-粘贴"导致的错误.可以肯定的是,程序员常常会在一大段代码的最后一段里犯错.好像还没有任何编程书讨论过这种现象,因此我决定自己写点什么.我称之为"末行效应". 拷贝粘贴 我叫Andrey Karpov,我的工作有点不寻常:我借助静态分析工具研究各种应用程序代码,并描述从中找到的错误或者缺陷.我这么做既有实际效益也因为工作需要.使用的方法正是基于我们公司所推广的PVS-Studio和CppCat工具的原理.套路很简单:找bug,然后写文章分析bu

解析Java的JNI编程中的对象引用与内存泄漏问题_java

JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互--在 Java 程序中调用 native code:在 native code 中嵌入 Java 虚拟机调用 Java 的代码. JNI 编程在软件开发中运用广泛,其优势可以归结为以下几点: 利用 native code 的平台相关性,在平台相关的编程中彰显优势. 对 native code 的代码重用. native code 底层操作

Android编程中的消息机制实例详解_Android

本文实例讲述了Android编程中的消息机制.分享给大家供大家参考,具体如下: 在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListener { private TextView stateText; private Button btn; @Override public void onCreate(Bundle savedInstanceState)

解析Java线程编程中的线程安全与synchronized的使用_java

一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,这种资源可以是各种类型的的资源:一个变量.一个对象.一个文件.一个数据库表等,而当多个线程同时访问同一个资源的时候,就会存在一个问题: 由于每个线程执行的过程是不可控的,所以很可能导致最终的结果与实际上的愿望相违背或者直接导致程序出错. 举个简单的例子: 现在有两个线程分别从网络上读取数据,然后插入一张数据库表中,要求不能插入重复的数据. 那么必然在插入数据的过程中存在两个操

《C++编程规范:101条规则、准则与最佳实践》——2.3编程中应知道何时和如何考虑可伸缩性

2.3编程中应知道何时和如何考虑可伸缩性 摘要小心数据的爆炸性增长:不要进行不成熟的优化,但是要密切关注渐近复杂性.处理用户数据的算法应该能够预测所处理的数据量耗费的时间,最好不差于线性关系.如果能够证明优化必要而且非常重要,尤其在数据量逐渐增长的情况下,那么应该集中精力改善算法的O(N)复杂性,而不是进行小型的优化,比如节省一个多余的加法运算. 讨论本条款阐述了第8条"不要进行不成熟的优化"和第9条"不要进行不成熟的劣化"之间的一个重要的平衡点.所以,这个条款非常

Android编程中的消息机制实例详解

本文实例讲述了Android编程中的消息机制.分享给大家供大家参考,具体如下: 在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListener { private TextView stateText; private Button btn; @Override public void onCreate(Bundle savedInstanceState)