做了一年多新的项目,好几个,有的是部分参与,有的相当于全程参与,有的好,有的坏,关于交互设计这一部分,我实在是要吐槽一下。公司要是没有UE,就请一个好的PM;要是没有足够经验的PM,那么,请尊重程序员的建议。学历固然重要,经验也很重要。主管者不想听,自然,下次别人也不会多说。公司要求每个人都为大局着想,基层员工倒是提意见了,结果把PM惹烦了,绩效都不好了。结果却是谁都不知道他是想为大局着想了,还以为他就是怠工。里外不讨好,又有什么意义呢?若搭建好了队伍,就做好专人负责专项。我简单说一下工业软件中交互的一些注意点吧。
Model的创建,最好要在弹出框中做。即使很想不使用弹出框,先创建UI并占位,后保存,也一定要控制好不能保存就离开页面;即使离开,也要狠心放弃未保存的操作。像Polyworks与Gom这样的老牌软件,都是弹出框创建Model,这样是为了保证操作的原子性。交互过程中产生的对象可能是临时的,如果没有保存在model中,就不能留在view上。
由于工业软件应用范围很小,用户基本上必需经过培训,所以,完全不需要考虑操作引导的流程。培训手册作用是啥?填写信息时,一步一步跳转的方式尤不可取。即使是为电脑小白准备的电脑管家,迅雷等工具,也只会在新手阶段弹出一些框体用于流程教学,而非把这些简单的步骤直接做到页面上。除非每一步都有明确的业务上对应的操作逻辑,且前后步骤之间有严格的逻辑关系,否则,不要分步骤。对于Model的编辑操作,如果不涉及到业务的分步操作,那么就应该尽量放在一起。
填写信息的页面不要弄很大的图标,不要分页。对于管理系统这样的软件,不分页填写数据,才是交互友好。对于工业软件,看起来普通,用起来普通,我想,就做到了80分。
不要把业务的逻辑和UI展现绑定在一起。UI可以被创建出来,但是,UI上的业务逻辑可以允许是失败的。如果因为业务逻辑错误或者是没有准备好,就不准UI被创建出来,这是不合理的,也不方便给与信息提示。
工业软件,最重要的特性,就是稳定性。所以,设计者一定要考虑到此点。比如,一些页面的业务需要严格确保一些资源处于可用状态。若不满足,一定要提前阻止进一步的操作。比如,彻底禁用掉这些页面。不能到最后关键点,才去提示用户,资源未准备好。
对于标签式窗口,需要谨慎对待。很重要的一个原因,就是多个view 同时存在,model层的更改,如何通知到多个view。虽然有信号槽机制,比起严格按照model每次构造临时的view,维持多个view之间的一致性,还是更容易出错的。我之前参与的项目,实践起来,因为怕局部更新view的麻烦,最终还是选择重新构造tab view,也不管view初始化的资源耗费了(其实也没有啥计算量)。而且,标签式窗口还有一个很重要的问题,80%的操作都集中在一两个tab上,其他的tab该如何自处?这是产品经理或者UE应该深入考虑的问题。web程序里,天然的允许多个tab存在,所以,在web中的controller需要做很多检查工作,冗余的检查。
对于输入的检查,一定要多,要全,要严谨。尽早的在view层面就过滤到大部分的操作问题。
对于设计团队成员,也要尽量学习一下开发者技术。投入几十个小时的时间去学习,并不为过吧。我见过几个Web UI设计师,业余时间还会自学HTML+JS+CSS,这样做的设计师,一般来说更受开发团队喜欢。因为他知道如何做出对于设计团队、开发团队达到均衡的选择。