西西河

主题:【原创】地主编程之剑走偏锋 -- landlord

共:💬21 🌺65 新:
全看分页树展 · 主题
家园 【原创】地主编程之剑走偏锋

科经版的爱版主让俺为其版面写点儿啥,看着那里一把一把的学术高人、程序大牛,这不是让俺在关公门前耍大刀么。咬咬牙,轻轻地丢个编程经验的破砖头吧。。。

要说咱辛辛苦苦地写出程序来,一般不是为了让自己个儿自娱自乐的,还是希望能得到用户的欣赏和肯定。就像发个帖子,如果没人搭理,也挺郁闷的不是?

再琢磨琢磨,这和发帖子还不太一样,咱做出来的这个东东是让别人用的,更像是推销员推销自己的产品。那怎么才能让人家选你的产品呢?先说很明显的俩点(排名不分先后):

• 产品本身功能要好――比如前一段搞24、玩递归的那几位。那程序一定是速度倍儿快、算法精妙。

• 产品包装精美――对编程来说就是用户界面(GUI)让人一看就是专业水准。

可碰上俺这样数学水平一般(没法太追求算法了)、艺术细胞难寻(界面一复杂就跟开染坊赛的)的俗人,是不是就该破罐子破摔了呢?咱不能这么快就自暴自弃,俗话说:不蒸馒头还得蒸(争)口气不是。咱曲线救国、剑走偏锋吧!

咋叫“剑走偏锋”呢,当然不是给人家高手使绊子了,虽然“那个啥场如战场”,咱也得费厄泼赖不是?俺的笨法子就是――“讨好用户”。

当然咱这个“讨好”不是向贿赂那些黑哨似的给用户送东西,咱也不能那么堕落。咱这个“讨好”是想用户所想,急用户所急,把劲儿使在程序上。下面让俺用实际工作中的经历说明一下。

急用户所急,帮着用户少走一步:

程序启动之后的缺省值有时会被大家忽略,俺对这个可始非常重视的。用户最常用的输入值是什么?是不是有时需要保留上次的输入?输入和输入之间是不是有什么内在的逻辑关系?某些输入是否能用程序(或者根据产品自身)自行产生?这些问题在程序设计中或者程序发行之前应该争取和用户直接交流,得到解答。

有些程序输入数量比较大,都放在界面上看着眼晕(其实主要还是俺的界面设计水平不过关),干脆就把某些不怎么改变的输入放在某些文件里或另加个特别窗口选项去修改。

根据这样设计出的程序,尽量做到用户一打开程序,几乎可以立刻完成设定,进行下一步――忘了提了,俺是搞自动测试的,对于这行来说,那就是用户可以打开程序,看一眼当前设定,动一俩下鼠标或者不动(缺省值正是所需),就点击那个“运行”(RUN)键,然后该干嘛去干嘛,回来以后结果就摆在眼前。

就凭这个,俺的“简单”程序就淘汰了公司原来功能强大(输入极大丰富、速度大概可能也许快一点点)的老程序。原来只有工程师或者受过专门培训的技工才能操作的程序,现在随便找个非文盲就成了,至少大多数的测试情况都能测了。

勤快的用户当然有,但大多数群众还是有惰性的。。。

想用户所想,为了用户多走一步:

这个其实说起来方方面面的就太多了。这就跟两口子过日子似的,你得猜出那些言外之意,甚至是人家没想到的,你给想到做到了,这不才显出咱的关心来么。。。

举个例子吧,俺们的测试里有一项叫做“精度测试”(Accuracy)。说起来也不复杂,输入值是A(例如10.00),精度要求是B(例如1.00),测出一堆返回值,如果90%的返回值在A+_B的区间内(即9.00~11.00)就算“通过”(PASS)了。

以前的程序就是这么做的,先把那个区间算出来,然后拿返回值去一个一个比,统计总数看看是不是小于90%。看着不错啊,可咱得“讨好”用户啊,不行,咱得多想想。。。

首先,得搞明白用户是啥人,这个程序的用户不是那些生产车间的技工,他们是工程师!对那些技工来说,产品“通过”了就大功告成了,可这些搞设计的工程师呢,他们可不仅仅满足于过没过,他们要数字!要量化!咱头衔里也有个“工程师”称号,当然也明白啦,于是,咱改!

先明确那个90%是雷打不动的死数,那咱就给用户算个实实在在的数:把返回值都减去输入值,取绝对值然后按大小个儿排序,排完后把那个站在90%位置的数C揪出来(至于从左往右还是从右往左排,正好在俩位之间选那个的细节就不提了),看看是不是比那个精度值B小,那个C也一起送给用户赏玩。

算法很简单,也算不上最佳,但是对于一个几分钟的测试,多花几个毫秒咱不在乎。

这个程序一给那些设计工程师,他们挺喜欢,万一达不到要求的精度值可以知道该改成啥了。

可能又要准备面试了(有备无患么),胡思乱想了这点东东,正好也算完成个任务,您看了觉着有道理俺就算没白忙活。有啥批评建议俺更是求之不得。

谢谢先

关键词(Tags): #工作纪事#地主编程#缺省值#自动测试元宝推荐:爱莲,

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河