|
【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、最重要的一点:立即行动。
【文章出处】