软件开发

概述

风浪转为涌浪,起承转合之绝唱,当场翻云覆雨手。

良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病

这些毛病在一些从业时间不是很长的程序员的身上表现的特别突出。

1. 搭棚子

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

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

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

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

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

2. 钉钉子

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

3. 甩锤子

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

4. 糊窗子

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

5. 拉肚子

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

6. 遛狗子

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

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

参见:

软件开发与写作|

古人言:”史有三长,才、学、识”。

胡适解说如下:

才-写生传神的手笔;=》运用语言文辞的表达能力

学-细密的考证功夫;=》积累丰富的学问和生活经验

识-远大的见识。=》对事务有正确深刻的分析认识

若做类比,好的软件开发人员也需要:

对编程语言的细致了解与熟练运用;

对电脑方方面面知识的了解;

对软件应用领域有正确深刻的分析和认识。

其它还有一些相似之处,如各自的产出再复制的边际成本很低,即是说面临盗版问题,等等。

明星软件工程师的十种特质|

Web开发人员应当知道的15个开源项目|

3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】|

劣质软件背后不只是编程错误

如果程序语言是宗教 : C语言是犹太教,Java是基督教,c++是回教,C#是摩門教,LISP是禪宗佛教,PHP是Cafeteria基督教,Haskell是道 教,Erlang是印度教,Perl是伏都教,Lua是巫术,Ruby是新异教主义,Python是世俗人文主义,COBOL是古异教主义,APL是山达 基教,Visual Basic是撒旦教。

给.Net程序员和WEB程序员的一些工作行为建议。

编码的邪恶: 复制与粘帖

架构设计之性能设计经验

Sybase PowerBuilder9.0创造最佳的开发环境.doc 41k

编程之禅.txt 29k

编程之道.txt 33k

编程书写规则.txt 9k

重构1-6refactoring-ch1-ch6.pdf 2101k

重构1至3章.doc 685k

重构Refactoring 1.pdf 419k

重构Refactoring_中文版_系统重构-改善既有程序的设计.pdf 908k

重构Refactoring系统重构-改善既有程序的设计.pdf 2015k

重构refactoring-gb-ch1-ch6.rar 1954k

BBS用户手册web_bbs.doc 68k

CodeAutoGenerate.pdf 226k

MIS的系统分析.ppt 401k

Messages Sent Based on Mobile.ppt 160k

基于ECO 的UML 模型驱动的数据库应用开发.pdf 1645k

管理信息系统开发方法 .ppt 604k

软件配置管理.pdf 57k