6

关于构建 Web 应用程序的页面:

最近,我发现自己创建的网页比以前更简单。以前,我会尝试将尽可能多的功能塞进一个页面中,以防止出现大量页面。

我开始意识到这只是让事情变得比它必须的更复杂、令人费解和令人困惑。为什么没有更多的页面?我认为我这样做的原因是因为我不希望用户必须浏览其他页面;只是为了在一个页面上拥有他们需要的所有功能。

好吧,这些良好的意图变成了对用户来说过于混乱的界面和非常难以管理的源代码。我是一名新开发人员,我正在努力反思我正在做的事情,以便我可以改进。如果它有所作为,我正在 ASP.net 中开发(尽管这些可能是任何平台的考虑因素)。

我的问题是:

  • 我是不是在想这些事情?
  • 有没有其他人发现自己这样做?
  • 快乐的媒介在哪里?
4

8 回答 8

5

没有专家可以给你一个在任何时候都适用于所有地方的规则。多年来,我在行业中以“简单”的界面而闻名,我们为此赢得了大量业务(以及 5 个“同类最佳”奖)。我公司内部和外部的人也告诉我——多年来——他们喜欢我的工作,但希望我能用更多的图形等“让它变得活跃”。总是让我感到惊讶的是,人们看到两者之间的联系是如此之少。

所以......一些经验法则:

  1. 一个页面应该做一件主要的事情。
  2. 一个页面可能有多个与主要内容相关的链接
  3. 菜单和链接布局应在页面之间保持一致
  4. 简单比复杂好
  5. 页面应该具有视觉吸引力和吸引力
  6. 规则 4 比规则 5 更重要。

例如,我的产品提供了一个界面,让人们可以定义要在日历中显示的类和事件。我可以有一页让您查看、添加、更新、删除和编辑课程。事实上,在一些更简单的领域,我使用了 gridview 来让人们管理网格中的所有内容。然而,类有太多的信息来做到这一点,仍然遵循上述规则。

所以,

  1. 主要思想是:“这是该位置的类列表”
  2. 链接是上方和网格右侧显示的“添加新”,更改和删除是每行中的链接。这在整个应用程序中是一致的。
  3. 整个系统的菜单始终位于右侧/顶部。除了所有页面共有的标准元素(徽标、页眉、页脚)外,类/事件页面上没有其他内容。
  4. 网格的样式很好,但没有虚假的图形 (4,5,6)

关于 UI 和图形设计的最后几件事。

首先,制定自己的愿景,并在页面和应用程序之间保持一致。

第二,不要害怕简单

接下来,在向他人征求建议时,请记住,您不需要他们的建议——您需要他们的印象:您想了解他们对界面的看法。建议有时是好的,但更多时候实际上是有害的。根据我的经验,每个人都认为自己是 UI 专家。

当你进行走廊(或正式)可用性测试时,你应该忽略几乎所有的建议,大意是“你应该让它更加突出”。如您所见,它很快就会变成“and that ”、“and that ”、“and the other ”。如果你遵循这个建议,由于 Brittingham 的第一条设计规则,你最终会陷入混乱:如果一切都很重要,那么什么都不重要。(你去吧:在解释为什么你不能让某人更加突出时,只需告诉他们“这违反了 Brittingham 的第一条设计规则!”)

希望这可以帮助!

于 2009-03-20T13:30:31.543 回答
3

你击中了要害。使用 KISS 原则。(保持简单愚蠢)我过去也这样做过,它不仅使用户界面变得丑陋,而且由于功能太多,您可以在页面上执行哪些操作令人困惑。我在测试中经常发现,我没有足够的检查来查看用户是否可以根据数据的状态执行某个操作。

在 ASP.Net 中很容易编写几个执行简单任务的页面,然后将它们与 Response.Redirect 或 Server.Transfer 链接在一起。现在,我试图在任何给定页面上实现的只是设计规范所说的。所以如果我的页面只是一个搜索页面,这就是我给出的全部。如果用户想要查看在搜索中返回的项目的详细信息,那么我会将它们发送到 itemDetails.aspx 页面。

于 2009-03-20T12:50:12.437 回答
1

您已经打破了大多数软件开发人员所拥有的一堵墙,这堵墙之前阻碍了您对可用性的看法。许多开发人员并没有真正考虑它,而是试图通过在一个窗口、网页或其他任何东西中填充功能来让他们更容易。

问题是一旦你开始从用户的角度设计软件,即让它变得更容易,几件事情开始变得清晰。一个是代码维护问题,如果你不把所有东西都塞进一个巨大的类或者你一直在做的任何讽刺中,那么代码更容易处理。另一个是可用性本身,您开始思考用户如何通过图形界面实际使用您的应用程序。第三是避免停止开发用户不需要的功能的需求或范围蔓延。

我们作为用户想要简单,部分原因是我们不想花大部分时间在糟糕的 UI 上蒙混过关,因为我们可以通过简单而流畅的 UI 更快地完成工作。这让我们的软件开发人员做正确的事,从各个层面思考你的设计……那和规格总是在说谎

于 2009-03-20T13:00:03.940 回答
1

绝对同意:大多数尝试编写过多的页面/表单都导致

  • bugs and rewrites. Problems occur with keeping all parts valid/synchronized,
  • excess managing of users' expectations ("I've entered a bill number here and clicked "find person" there but it gives an error message. Why?") when the two are logically separate. These questions cannot arise if only the valid options are visible,
  • Formatting/layout issues: In ASP.NET pages, trying to layout independent User Controls turns out to be a nightmare ("But we really want all the buttons vertically aligned!" in separate user controls. Good luck with that.)

I'd consider webpages with more than one functionality only if the target audience consists of domain experts, i.e. people that need lots of functionality on one page for better productivity (think data-entry or financial software with lots of variables).

Even then, most of the time, it's possible separate pages into single units.

于 2009-03-20T14:00:24.047 回答
0
  1. 是我
  2. 我发现快乐的媒介是使用 Masterpages,并以 IFrame 熟悉的方式使用它。我可以将很多功能很好地结合在一起。使用 WPF/Silverlight 有一种更有趣的方法,称为Prism
于 2009-03-20T12:52:37.437 回答
0

页面上的功能数量通常不是由您决定,而是由您的客户决定。如果客户需要一个页面来更新 some VeryComplexObject,那么您最终可能会得到一个包含大量行的 aspx 页面。主要原因是您对页面上的所有操作都有很多事件处理程序。

该页面是否复杂完全取决于您。您应该始终尝试使您的代码隐藏文件尽可能简单和干净。在这个方向上的一些建议:

  • 将所有业务代码移至另一个应用层。
  • 用于ObjectDataSource向数据绑定控件提供数据,例如ListView, GridView, Repeater, ... 将数据加载委托给专用对象可防止您的 aspx.cs 文件中出现大量开销。

另一个建议是使用用户控件来实现页面的某些部分。通常只有在可以重用用户控件时才这样做,但它也可以极大地帮助降低页面复杂性(包括代码隐藏文件和 aspx)。

于 2009-03-20T12:55:34.340 回答
0

有时我认为我们都为忘记了我们为谁开发应用程序而感到内疚。作为开发人员,能够退后一步并像用户那样查看您的应用程序并不总是那么容易。这就是为什么大公司雇佣数百人为他们做这件事,但他们并不总是做对。

可用性是一个庞大的主题,但它绝对是所有开发人员都需要牢记的事情。我花了很长时间来学习这一点,但是在处理任何开发任务时,我总是尝试考虑我的用户将如何与我正在编写的内容进行交互。这将对您的所有发展水平产生影响。

我建议阅读Steve Krug 的 Don't Make Me Think。这本书不会花你很长时间才能阅读,它提出了一些奇妙的想法,可以帮助你开发更容易使用和理解的应用程序。

我总是发现,一旦我考虑了用户体验,关于我的网页将要做什么以及它们将如何交互的决定就容易得多。

于 2009-03-20T13:13:53.877 回答
0

Maybe you should ask the people who are using your site. Or better yet, just watch people use your site. I think that would tell you if your site is designed well, or if you need to change it.

于 2009-03-20T14:35:41.137 回答