重新设计令人费解的用户界面的技巧

问题描述:

我相信你们都看过他们。具有以下逻辑的业务线用户界面:“选择ComboA时,根据该选择查询值并填充文本框B”或“按下ButtonC时,禁用文本框C和D”等等。当你可以有上述逻辑的多个排列时,它会变得特别糟糕。重新设计令人费解的用户界面的技巧

如果带有重新设计这些可​​爱的屏幕之一的机会,你会如何处理它?你会在界面上放置一个向导吗?你会保持单屏幕模式,但使用其他模式,使UI状态的逻辑可维护吗?您将使用什么过程来确定如何理想地呈现和实施?

不是我认为这对应答很重要,但我目前只提供了这个“机会”,它是一个ASP.NET网页,它使用javascript响应用户的选择,禁用控件并使ajax需要额外的数据。

东西是否是一些人的依赖并不意味着,虽然看起来相似,服务这些内容应该在相似但实际上是不同的多个页面被分割出相同的功能。有人可能会将它们分组到页面上,因为它们有足够的相似性。

如果你可以尝试看问题就好像它是不是在所有实施,你将如何构建用户界面,如果你现在已经实现了。如果情况太不同而且现有用户会遇到重大问题,则可能需要妥协。但正如Elie所说,从用户的角度来看它。他们是那些必须与你的产品合作的人。

从KISS原则开始,并从那里开始工作。不要过度设计解决方案,并尝试从用户的POV中思考问题。对于什么可以构成良好的布局,您的第一印象可能与您应该构建的接近,因为良好的用户界面非常直观。

话虽这么说,单屏与多屏JavaScript或AJAX,它其实并不重要。如果它看起来很好,很容易理解,并且在幕后,它是很好的评论和写明确的代码,它的工作原理。它应该是可维护的,所以要针对具有明确功能的模块化代码块。你可能想看看

我认为最重要的是用户体验,并在较小程度上的代码的可维护性。在网络上,我尝试尽可能减少往返次数,所以我不确定我会采用向导方法,因为这会导致用户通过多个页面或需要通过AJAX替换几乎整个页面(这似乎是错误的) 。我通常与我的客户合作捕捉他们需要的功能,但我的目标是功能,而不是实现。我可能会嘲笑几个例子来向他们展示替代品,或者只是在白板上画出他们的想法。如果结果是大大改进的用户界面,我不介意在应用程序中执行“硬”或“复杂”的事情。当然,我尽可能简单地做到这一点,并且绝对使用良好的做法,即使在Javascript中也是如此。

我会模拟一个对象上整个UI的状态。该对象应该跟踪每个UI对象应该处于的状态,包括组合框的选项列表(当然选择哪个选项)。

这意味着,有一个状态对象,你可以正确地重新绘制整个屏幕,并在破碎的状态不是最终的用户界面。当然,每次更改任何内容时都刷新所有组件并不是要走的路,所以我会通过状态对象中每个setter的回调来刷新它们。如果你想要的话,这也可以让你在同一个状态下拥有两个UI。