一个优秀的上位机软件的标准是什么?很多人认为上位机软件只要功能没问题,哪怕软件界面编得再丑,只要使用者习惯了,那就可以了。就这么一个简单的“共识”,让现在很多上位机程序员写出来的东西,仅仅就是“能用而已”!
我对于软件设计是有“洁癖”的,我在写一套上位机软件的时候,我会考虑很多东西,比如说界面配色舒适度、操作难度、理解难度等等,在时间充足的情况下,我还会考虑如何增加上位机软件的科技感,因为从某种角度来说,甲方也有甲方,一个纯素上位机软件和一个科技氛围十足的上位机软件,可以让我的甲方在他的甲方那里更加自信!因为大多数人都是“外貌协会”的,即使他们看不懂这个上位机软件的操作流程,但是从外貌上也可以看出这家公司的审美、品味和技术含量!
你想,在给你的甲方介绍园区布局的时候,你是拿一张平面图纸介绍会让客户眼前一亮还是直接搞个数字孪生系统给客户介绍有“逼格”呢?
但是,我们公司另外一个上位机软件程序员则不同!
之前,我俩共同开发一条产线上的上位机,上位机软件框架是我搭的,我几乎已经封装好了他可以用的任何组件,他只需要拼接页面,然后写好业务逻辑就可以了。
但是,我以为我已经帮他铺垫好了一切,可他写出来的东西不光被客户拒收,连我们公司总部的研发总监都看不下去了。可就在此之前,我还苦口婆心地劝他,让他把他写的软件界面好好整理整理,我甚至把我写好的给他看,已经教他怎么做了,但是他还是认为他写的东西没有毛病,坚持不改!
其实,当时我俩开发的功能是差不多的,都是涂胶机,区别在于,他开发的涂胶机是通过机械手控制的,而我开发的涂胶机是通过电机+龙门轴控制的,其他的,在功能上并没有明显的区别。
在业务逻辑上,我是这么设计的:
通过CAD导入涂胶轨迹,涂胶轨迹有两种显示模式,第一种就是纯表格形式的轨迹坐标列表,第二种是图形化的形式,相当于把CAD里面的涂胶轨迹信息复刻在了上位机上。
然后,可以通过选择某个点,给某个点添加各种事件,比如打开胶阀、关闭胶阀、轴抬起、轴停止、等待、暂停(可以换胶后续走)等等。
这样做的好处就是整个涂胶过程控制非常灵活,可以应对各种场景。
其实这种设计在后来的甲方工艺评审中也起到了一定的作用,因为甲方在验收时,发现开胶太慢了,导致涂胶轨迹前面将近10mm的地方有无胶和少胶的情况,而轨迹最后收胶也收慢了,导致最后会产生堆胶的情况。
这些其实是设计缺陷,因为我们公司的供胶系统在底层逻辑上会有大约100毫秒的延迟。
当时甲方看到这个情况其实已经有些生气了,觉得我做的这套上位机系统还有些缺陷,当场就要求我们整改。
我见状立马跟他解释,其实软件很灵活地,之所以开头少胶,末尾堆胶,其实是涂胶轨迹的点位事件没设置好。
紧接着,我在轨迹的第一个点增加了一些延迟时间,然后在轨迹的倒数第一个点后面隔了一定的距离,提前关胶,最后成功解决了这个问题。
客户看完我的操作,态度立马就变了,然后问我除了可以等待和提前关胶,我这套系统还能不能更加灵活。
于是,我跟他详细解释了这个涂胶事件的逻辑,并且告知他,我已经把我尽可能想到的可以灵活配置的场景全部写进事件里面去了,他们在使用的时候,只需要选指定的涂胶轨迹点并且将需要的事件绑定进去即可。
客户听完以后,非常满意的点点头,而且我并没有见好收,我继续跟他介绍,告诉他,软件在涂胶的时候会以图形的形式展示实时涂胶轨迹,以及每个轨迹点绑定的事件,因为我们的涂胶设备是半封闭式的,中间只留了一扇可以开合的棕色亚克力板,因此,在软件设计之初我就想到了观察涂胶进度这件事情,因此,我将轴轨迹和事件以图形的方式实时显示在软件主界面上,离老远都能看清楚涂胶进度。
客户听完更加满意了,还连夸我的这种方式看起来还挺有科技感的!
可能是我这边给的太多了,到了我另外一个同事那里,客户在那愣了半天,指着主页面,问:“这堆东西是啥?”
其实,客户问的东西就是我同事写的涂胶轨迹点,纯列表形式的,几百上千个点,没有任何图形界面。
客户刚开始也没说什么,但是在我那发生的事情,在这里同样也发生了!其实就是开胶慢了,以及关胶堆胶这个常见问题。
客户以为我同事写的东西也可以绑定事件,因为上位机框架是我写的,从主界面上看,除了我是图形,他是列表,其他别无二致。
于是,就让我同事在开胶后等待一段时间再执行机械手运动,结果我同事还没意识到危机已然来临,想都没想就回答:“这个得在代码里加!”
“那提前关胶呢?”
同事回:“也得在代码里重新定位置!”
“那如果中途胶水没了,我需要先暂停,然后换完胶继续走呢?你这边怎么处理?”
同事回:“这个处理不了,只能重新走!”
结果客户一刷脸,直接走,顺便丢了一句:“什么东西!”
最后同事写的上位机被客户要求整改,此时同事还不服气,仍然觉得他写的没问题,因为验收没过,公司总部研发总监闻讯赶来,看了看他写的软件也直摇头,也劝他改成我这样的,并且我已经告诉他了,各种控件我都封装好了,包括图形界面和事件绑定。
但是,怎么说,他都雷打不动,我虽然没仔细看他的代码,但是我知道,即使控件什么的我给他封装好了,但是想要达到我写的那种效果,他的业务逻辑改动不会太小!
所以,无论研发总监怎么说,他都不想改,我们公司总部的研发总监其实脾气很好的,但是就是这么一个人,也被他给搞毛了,当场就对他发了火!
最后,他只得乖乖地去改成我的那种效果!
我承认,他的项目被拒收,有我的一部分因素在里面,如果我写的东西没有给客户太多的惊喜,在他那里可能就没有更多的期望值,这种落差感,可能是客户拒收他写的上位机的原因之一。
但是,作为软件编写者,尤其是上位机软件,在大多数公司里面都缺少软件原型设计的情况下,上位机软件写出来好不好看、好不好用其实早就成了一个上位机软件程序员水平高低的、除代码水平外的另一个标准。
所以,“能用就行”只不过是过去相关人才稀有,客户和公司对上位机软件的妥协而已,但是,现在我国相关从业者已经有一定规模了,再拿过去那种老思想去写上位机,就不合适了!
最后补充一句:现在很多上位机程序员,连最基本的布局排版都不注意,处在同一行的按钮可能都不对齐!这种上位机程序员,你们见过吗?
热门跟贴