程序员需要什么样的质量意识?

    有一次我和市场人员去客户那里开会,由于客户是来自好几个方面的人员,会上他们主要在讨论业务方面的相互配合问题,我听得实在无聊,就打开笔记本继续写程序。
    这是一个B/S结构的系统,其中一个模块供用户对某个时间段内的数据进行统计,因此需要一个在页面上选择日期的功能。当然比较常用的方法是在客户端使用Javascript的日期控件,将日期选取到某个页面控件上,传递给后台程序进行处理。我很快就做好了,初始状态下看起来是下面这个样子:
   
    需要选择时,点击“日历”按钮,调用JS控件,弹出选择界面,如下:
    
    选择完毕之后,将日期取到文本框中,最终界面如下:
    
    这其中,为了便于控制,我限定了文本框为只读的,即日期只能通过控件去选择,不能手工输入。做完之后,旁边市场人员看了,就问:
    “你为什么不让他输呢?”
    我说:“要是输的话太麻烦了,我还得限定输入格式,格式不对还得提示,可能还需要做数据类型转换……选罢,这不也挺方便的。”
    市场说:“这样虽然也不太麻烦,但是不够人性化。这种小地方多了,整个系统用起来很不舒服。我发现搞研发的都这样,A部门那边也是,实现功能就完了,也不管好不好使。”
    我说:“唉呀,要做成那样固然好,可是时间紧啊,只能先实现功能再说了。”

==============================华丽的分割线=================================
   
    什么是质量,对一个程序员来说?
    对于大部分人,代码都写得很漂亮很规范,包括排版、注释、命名、大小写等等,而且在入职的时候,一般公司会在这方面有所要求并进行培训。但是在界面方面未必如此,恐怕很少有公司对研发人员进行界面(UI)方面的培训和要求,告诉他们同样一个功能,什么是好的界面,什么是不好的。当然界面不像代码,很难建立一套规范,而且还会有美工去做美化,这也导致了程序员的依赖心理。(实际上美工很少去改变界面上控件的布局、如何操作,因为美工很难介入里面的业务逻辑。)但是这方面还是有公认的原则,比如Gmail,大家都觉得用起来很方便,很人性化,好用,其他的邮箱也在学习它的风格,我相信GoogleUI方面必定有专人来负责、把关。但国内公司对自己产品在操作方面的便捷性、人性化的要求似乎并没有那么严格,至少我所在的公司是这样的。实际上好的用户体验对一个成熟的软件来说是很重要的,这个论证不需要再做了。如果一个东西操作起来无比的别扭,人们必然去找它的替代品。所以对程序员来说,除了代码的正确性、可读性、高效之外,界面的设计和布局,操作的便捷与否,应该也是衡量他工作质量的一个重要标准。
    导致程序员忽视界面质量的原因我想主要有2个。
    1、太麻烦了
    确实,如果要做出好的界面,考虑如何操作更合理、更方便,有时确实比写完代码更费时间。因此程序员们往往在这方面偷偷懒,我不管你点几个按钮,切换几次焦点,只要一系列操作之后达到目的,OK。他的出发点在于怎么去完成界面后面的代码,而不是为界面伤脑筋,在于怎么给自己减少麻烦,而不是考虑用户的方便和感受。
    2、时间紧啊
    这个理由更客观一些,也更堂皇一些。客户就给了这么多时间,你说怎么办罢,当然得先实现所有功能,至于好用不好用是次要的,可以以后慢慢优化。我们可能经常听见这样的话。(不光是在界面方面,也包括文档、设计...)嗯,确实抓住了主要矛盾,但是不是略显推诿和敷衍呢?想想有多少东西是做完之后再去优化的?没人愿意去改动既有成果,修改代码太痛苦,改不好又担心影响功能性....很多东西如果第一次没做好,以后就永远不会去改了。
 
    其实程序员做东西的终极目的是给人用的,脑中时刻存在这样的质量意识,才能使我们做出来的东西不仅能用,而且好用,敢于这样要求自己,才是一个纯粹的程序员,一个脱离了低级趣味的程序员。
    (唔……写这篇文章,主要是为了鄙视一下自己。)

posted on 2007-08-16 16:54  阿多斯  阅读(5968)  评论(54编辑  收藏  举报

导航