http://tech.sina.com.cn/s/2008-12-25/1008933342.shtml
作者:火之光
【IT168 技术文章】
最近在公司做开发的时候,需要开发一个自动备份的功能,于是我想到了SQL
SERVER备份调度功能,于是打开SQL SERVER 备份调度界面,想照样画葫芦做一个,然
后20分钟就把该功能做出来。30分钟过去了,我的界面依然还没有做完,原来打算
很快做完的界面却总是离目标遥遥无期,当把所有功能做出来时竟然花了45分钟,
于是,我仔细地研究了该功能,居然从中发现了该功能的3个秘密:
(1) 该功能为我们提供了快捷键,即使是LABEL上也提供了快捷键,使该软件能
够适应不同的用户习惯操作。
(2) 开发该功能的工程师确实很细心,什么样的日期以及时间备份都帮你考虑到
了,你根据该功能,选择适合你的程序的备份时间。
(3) 软件在给出的每一个提示都很中肯,不会误导用户。
从这一个小功能中,微软在软件的细节上做得很投入,功能也很人性化,每次
使用微软的软件时,总是感觉到很贴心,也许这就是我一直选择微软.net开发平台
的原因。确实,开发软件的时候注意软件的细节将会使软件给用户更好的体验,我
们学习微软的技术,更要学习微软的细心以及全面为用户考虑的精神,而不是满足
于“软件可以使用”或“功能能够实现”的情况,多关注一些细节,将会使你的软件更
完美。
回头再看看自己开发的软件,发现自己开发的软件竟然还有很大的提升空间,
于是,对之前开发过程中一些可以改进的细节列出,进行总结,在今后的开发中将
进行改进。
(1) 软件每一个打开的窗体都应该写上标题,而不能是默认的标题。
(2) 软件的功能都加上快捷键,使它适应不同操作习惯的用户。
(3) 每一个窗体都加上“关闭”快捷键,当用户需要关闭窗体时,只需要点“ESC”
键就可以退出,方便用户的操作。
(4) 所有输入文本框都必须按照用户的业务要求进行排列,使用户可以更快更好
地输入数据。
(5) 由于之前习惯使用了DropDownList,现在使用ComboBox时,如果不允许用户
输入,应该修改为DropDownList模式。
(6) 进入系统以及退出系统时,应该加上Splash窗口。
(7) 如果程序执行比较耗时的代码,应该给出个提醒,而不能让用户傻等,最好
放到线程中处理,不能让主线程出现假死状态。
(8) 界面的各种TabIndex应该按照顺序排列,另外,当每个控件获得焦点时,应
该改变控件的颜色,让用户清楚当前获得焦点的控件。
(9) 如果用户习惯操作了EXCEL,应该将录入功能做成:录入一个项后,点“回
车”焦点跳到下一个录入项。
(10) 弹出的提示(MessageBox)窗体应该加上标题。
(11) 用户登陆的窗口,应该自动帮用户记住用户名,用户可以自己确定是否要
记住密码。
(12) 系统中的各种提示必须要合理,不能有误导用户的情况。
当然,还有许多需要注意的技术和非技术的细节问题,往往我们技术人员觉得
不重要的东西偏偏是用户觉得最重要的。我相信,在软件开发的过程中,多关注开
发过程中的细节,将会使我们的软件更加完美,当然付出得越多,得到的越多。
在一些软件公司中,总存在着一些“高人”,他们写代码从来不写文档,不做设
计,代码不写注释,跟用户瞎扯几句之后就开始动手写代码了,他们的代码一般人
都看不懂,经过无数次改BUG之后,他们做开发的系统居然也上线了,再经过用户
无数次的蹂躏,系统也越跑越稳定。该系统成为了该公司至高无上的产品,普通人
如果想看懂该系统,必须在它的代码上摸索个10年8年的,什么“设计模式、分层结
构”的思想,在这些公司里都是瞎扯,只要能把用户搞定,一切就搞定了。
每次新项目开始的时候,老板总是苦口婆心地对项目组说“咱们的那套系统,
那可是金宝山,花了公司那么多的资源,经过用户多层的考验,都是精华,你们项
目中如果什么模块跟它相似的,就直接拿来用好了。” 程序员B不听老板的话,设
计了一套很牛的算法解决了业务的问题,最后,由于系统中存在了一个小BUG,被
老板骂了一顿,闹到不得不离职,辛苦工作了一年,年终奖都没有了。程序员A听
从了老板的话,一切按照那套旧系统的模式做,即使用户不满意,也由老板通过一
些其他的手段去解决,最后,程序员A当上了项目经理,在公司里当起了“九千
岁”,每次遇人就说,那套旧系统真是好东西啊!从此之后,大家都学乖了,什么
算法和机构,都按照旧系统的方法做,即使是错了,也不是自己的责任,大家都不
再思考了,反正按照旧系统做准没错,年底的奖金肯定多。
经过了许多年,由一个习惯变成了一个传统,再由一个传统变成一个文化,在
每个系统中总是有旧系统的影子,老板总是对人说“咱们的系统就要超印度了,所
有的程序员写的代码都差不多了”,翻开每一份代码,你总是会看到这样的代码文化:
(1) 写SQL 时,SELECT 后面总是跟着*的,也没有人会思考为什么。
(2) 写SQL时,如果需要两个表连接,一定使用LEFT JOIN,也没有人会使用
INNER JOIN 或RIGHT JOIN。
(3) 定义一个对象时,总是一定要实例化(比如 DataTable obj_dt = new
DataTable)。
(4) 执行100句SQL 时,总是要连接100次数据库。
(5) 系统的所有方法,总是使用Public的,哪怕是类里面自己调用的。
(6) 代码总是加密过的(变量都定义的千奇百怪,即使别人拿到原代码也看不懂)。
(7) 存储过程是从来不用的,只在代码中用字符串拼SQL,然后再执行。
(8) 代码,没有摸个3-5年是看不懂的。
(9) 数据库的索引总是不用的(如果客户觉得慢,就让客户换一部好的机器去)
当然,这只是一个普通的笑话,或许在现实中并不存在,但很多开发人员在开
发的时候,或多或少会有一些定势思维,把自己已知的东西当作是全部,从来也不
去思考为什么,也不去思考更好的方法去解决问题。如果整天只是吃自己的老本开
发系统,不去学习新的东西,总有一天会被社会所淘汰!
罗嗦了这么多,主要的目的也是提醒自己,开发的时候应该自己多想想这种方
案是否最好的方法?是否有更好的解决方案我不知道,这样的方案有没有什么缺
陷?平时应该多学习别人写的优秀代码,多学习一些新的知识,让定势思维从我的
字典里删去,也与园子里的兄弟共勉之!
经常听到身边有很多搞开发的朋友说,“哎,程序员不好混,等到30岁后就要没有
什么公司要了”、“计算机技术更新得太快了,过了30岁如果我的学习能力下降了,
就跟不上了,到时候该怎么办”、“我的那些同学刚出来做其他行业每个月拿1000
元,现在都每个月上万了,房子和车子都有了”、“如果有机会,我一定要转行”,”
做技术在外国可以,但在中国行不通,国情不允许“,整天发这些牢骚的情况在我
身边大有人在,尤其是一些入门不久的朋友,其实说到底,都是源于他们内心的恐
惧,内心对于未来不可知的恐惧。
其实,我们每个人的内心中基本都有过相同的经历,随着自己的认识不断提高,视
野扩大了,于是也就慢慢克服自己心中的恐惧了。从表面上讲,恐惧来源于对计算
机行业的现状,但这些只是外因,它不起决定性作用,只不过是自己安慰自己的借
口,从本质上讲,恐惧实际上来源于自己能力不足以及性格上的缺陷。
(1)“哎,程序员不好混,等到30岁后就要没有什么公司要了”,有着这样思想的
人主要是对自己缺乏自信,加上长时间对着电脑,自己的沟通能力、表达能力都有
所下降了,所以,不得不对未来充满恐惧,其实,也不用过分担心。如果没有什么
公司要了,大不了自己出来创业,只要你现在开始准备,等有了足够的资金、人
脉、能力,加上宏观经济允许的话,出来创业也不是不可能的,但是如果只是一味
地抱怨,自己不提高自己的能力,不做好准备,那么可能不用到30岁就被社会淘汰
了。再退100步讲,即使是个普通的民工,也不会闹得没有饭吃,我们怎么说也是
个高智商的民工。
(2)“计算机技术更新得太快了,过了30岁如果我的学习能力下降了,就跟不上
了,到时候该怎么办”,有着这样思想的人多半是自己的技术还有很大的提升空
间,所以,学习任何东西都当成新的东西,当然会觉得吃力了,不过不用担心,随
着技术的提高,学习会越来越容易,如果平时多做些积累,做了一段时间后,自己
就有一个代码库,如果要做项目的时候,把它拿出来,很快就把项目搞定,绝对比
新手拉着控件摸半天强。
(3)“我的那些同学刚出来做其他行业每个月拿1000元,现在都每个月上万了,房
子和车子都有了” 这种情况确实在现实中是存在的,但是,我们往往只是看到比我
们混得好的,没有看到那些比我们混得差的。其实,在每个行业都不容易,我们往
往只关注到别人辉煌的一面,却没有关注到别人辛苦的一面,我们开发人员,不也
是很多外行人向往的职业吗?外行人总是以为我们坐在空调房里,轻松地敲敲键盘
就可以拿钱了。如果你把你的技术和其他方面的能力提高了,而且得到了行业的认
可,你得到的也会越来越多,只是抱怨不会改变什么,与其临渊羡鱼,不如退而结网。
(4)“如果有机会,我一定要转行”,存在着这样的思想的人也不少,但是,如果
你在计算机行业混得不好,在其他行业就混得好吗?重新做回其它行业,一切都要
从头,可能面临着的是更大的挑战和困难。如果确实对想转行,首先就要把自己本
位的工作做好,只有在本行业混得好了,做其他行业才更容易成功,当然也要做好
一些准备,包括知识、金钱以及人脉。
(5)”做技术在外国可以,但在中国行不通,国情不允许“ 这个就更好办了,你学
好外语,准备好金钱和技术,大可以出国去搞技术,不过我个人觉得“30年河东,
30年河西”,我深信中国的IT业一定会好起来的,只要自己的水平提升了,有的是
机会。
每一个开发人员都应该对自己负责,我个人觉得,如果想真正克服心中的恐惧,建
议从以下入手:
1、好好规划一下自己的职业生涯,清楚自己需要什么,适合什么,只有目标明确
了,才有可能到达成功的彼岸。
2、努力学习技术的同时,也要多学点其它对自己有用的东西,比如经济、历史
等,不但在技术细节上可以很好地与其他人沟通,其他方面也可以很好地沟通。这
一点,多向我们园子里的高手学习是不会错的,每次跟他们聊天的时候,总是让我
觉得自愧不如,总会让我感觉到多花个10年8年及不上他们的一半,在技术上就不
用说了,但很多高手们不但技术强,而且对历史、经济、政治、文学、外语都很熟
悉,通常能够给你讲个2个小时,而且口才都十分好,能够说得你心服口服。
3、认真学习理财。每月都定期存一下钱或拿一点钱来投资买基金什么的,或许几
年之后,你已经积累了大量的钱,有了钱以后,能干的事情就多了,千万不能每个
月赚多少花多少。
4、最重要的一点:立即行动。
> 子和车子都有了" 这种情况确实在现实中是存在的,但是,我们往往只是看到比我...
>
> 阅读更多 >>