软件的设计有一句常说的话,要把用户当做笨蛋。
但是,过去用户是笨蛋,用户就永远都是笨蛋吗。
为了把用户当做笨蛋,我们用程序把用户控制得死死的,一个年龄的输入框,我们要TextChange的时候判断是不是数字,是不是整数,是不是正整数,是不是在0-120岁之间。界面上控件的Enable,Disable控制得无比精细。一个ID输入框只允许输入数据,然后那天需求变了,能输入字母,客户端又得改。
我们的程序逻辑很大一部分都是在处理这些用户故意做错的情况。
有时我想,我们的程序是给需要用的人,还是故意做错的人。
有人把这叫细节,也有人追求简洁。
在大家的电脑水平都已经提高的情况下,用户需要的是怎样的价值,用户关心的是这些我们精心实现的细节吗。

解决方案 »

  1.   

    现在很多用户使用软件的水平甚至都超过开发人员了。我们把什么都限制的死死的,需求有点变就得改程序。
    我觉得软件客户端可以管得松一些,Server控制得严一些。需求有变,Server改改就行。
    我只是希望软件可以简洁一些。
      

  2.   

    用户不是笨蛋
    用户是傻逼
    你不为这些傻逼做些预防措施,到时候你会遇到这样的事情:
    用户:这是什么傻逼软件,年龄竟然可以输1000岁,我CTMD哪个傻逼程序员写出来的!
      

  3.   

    吧用户当成笨蛋,这是微软赖以生存之道!
    因为这世界聪明人毕竟还是占少数!
    就看看微软开发的wndows操作系统你就会明白!
      

  4.   

    就说年龄吧,用户要是输入一个1000岁,然后用户问你怎么可以这样输入的,
    你觉得委屈,
    你可能会想:难道你是SB吗,哪有年龄是1000的,你怎么输的
    其实用户也在想:难道你们程序是SB吗,哪有年龄是1000的,为什么不提醒我
    骂程序不也就骂写代码的人吗
    你说这种情况到底谁是SB呢
    反正我觉得如果我没有进行控制我就是SB
      

  5.   

    用户输入1000的时候,你就把他当做最大值120存进去。用户已经不愿意输入真实年龄的了,强求用户干嘛呢。
    软件一会儿弹出一个框让用户确定,这是最差的用户体验。用Tip提示还稍微好点。
      

  6.   


    你怎么知道用户是输错了还是真的故意乱输,就像你输IP的时候,输了大于255的数字一样,OK,直接当成255存进去,你知道后果吗?
      

  7.   

    如果抱着这种态度去开发软件,我觉得是开发不出一个好的产品的。
    用户是给软件用的,你就是要让软件给用户舒服的、方便的感觉。
    我们开发的时候要设身处地的为用户着想,这里会不会输错,输错了会怎样
    怎么让用户操作起来如行云流水,尽可能少的减少用户再鼠标和键盘之间的切换等等
    而不是把客户摆在一个傻X的对立位置。我们对程序的一些限定和判定,不是因为用户"傻X"到输入一些不符合规定数值
    而是防止非刻意地错误,没有人会故意做错的。
    而这些情况是我们一般开发很难体会到的。
    比如说银行业务繁忙时,业务员甚至连屏幕都不看。操作完一个步骤就是一个回车。
    而且万一有一些错误数据(比如说不是单纯可以看出来的,而是逻辑上的一些问题)会导致产生业务上的错误
    那损失也是很大的
    现在的UI是很高级了,可以单选多选下拉上拉的,但是你看银行的界面很多还是DOS界面。
    我们是该BS他们落伍吗?
    银行金融对IT的投资向来不吝啬,但是也是要以好用实用为前提。有时候我们操作淘宝,很多用户体验是很棒的,贴切地让我们赞叹
    我想如果淘宝如果把我们用户当做傻X,那他们也断然做不出这样的体验来。前面有朋友说到某软件经理可以水来土掩兵来将挡,确实是有这种情况,但这个只是侥幸罢了。
    如果换了项目,换了客户,是不是还有这种好运气呢。话说回来,不说客户说自己。
    如果明知自己的程序没有经过严格校验,那么自己就不担心客户出问题,甚至产生重大损失吗?
    如果这样,软件交付以后不是完活后的轻松,而是每天更会多了忐忑不安。
      

  8.   

    http://avatar.profile.csdn.net/E/4/C/2_sdfkfkd.jpg
      

  9.   

    也许用户很聪明,知道TextBox是否该填入数字还是字符.可是人回有出错的情况,比如按数字按到了标点上,这时提交了.那你的系统怎么办?等着崩溃吗?如果之前用户做了很多正确的输入,正在存档,因为一个下意识的失误导致系统崩溃了,那怎么办?失误总是难免的,你的系统应该能够保证应对这些失误.不然动不动就崩溃,谁敢用.
      

  10.   

    这么想,换成开发者也成立
    我们是框架和开发工具的用户
    再聪明的开发者也不至于把所有TextChange、Enable之类的方法都自己实现吧
      

  11.   

    这不是态度问题,而是思想问题。
    做软件没有人不希望用户满意。
    校验只是一个举例。是不是所有的校验的要求都是一个级别,银行系统的校验和社交网站的用户信息的校验级别是不是一样,对客户的价值是不是一样的。
    对于细节,我会尽力去让TabOrder符合用户的习惯,让用户不用动鼠标,如果这对用户是有价值的。
    其他人说的崩溃的问题,一个系统如果因为用户输错了个东西就崩溃,那也设计得太差了。
    如果真想搞破坏,用脚本模拟个错误输入还不容易吗。
      

  12.   

    你要这么想,做出来的东西就比较CSDN了
      

  13.   

    天下没有公平可言
    所以这东西也没办法说,只要用户OK,全OK。
      

  14.   

    大家都在说客户不满意什么的,问题是如果是一个社交网站,用户就是想乱填一个年龄,他不Care它的值是多少,他只是要完成注册而已。结果系统一会儿一个提示,这不对那不对的。
    这种用户不关心的价值的地方,用户填错了,给个默认值让它完成注册为什么就不可以呢。
    校验是分级别的,一个Email,你可以校验格式,也可以校验他的真实性。
    但是不是每个地方都需要提示用户,输入真实的邮件地址。
      

  15.   

    真TNND服了  一般这种无聊的话题 总是会吸引那么多"高手"闲的嘛?