【问题标题】:Web Pages That Just Do Too Much Stuff [closed]做太多事情的网页[关闭]
【发布时间】:2010-10-14 12:53:03
【问题描述】:

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

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

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

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

我的问题是:

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

【问题讨论】:

    标签: asp.net web-applications application-design


    【解决方案1】:

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

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

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

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

    所以,

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

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

    首先,制定您自己的愿景,并在页面和应用中保持一致。

    第二,不要害怕simplicity

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

    当您进行走廊(或正式)可用性测试时,您应该忽略几乎所有建议,即“您应该让那个更加突出”。如您所见,它很快就会变成“和那个、“和那个、“和另一个”。如果你遵循这个建议,由于 Brittingham 的第一条设计规则,你最终会一团糟:如果一切都比什么都重要。(你去吧:当你解释为什么你不能做有人更突出,告诉他们“它违反了布里廷汉的第一条设计规则!”)

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我同意。我对多个页面的唯一问题是逐页保存和检索页面数据。这会产生相当多的代码噪声。你如何解决这个问题?
      • 根据必须来回传递的数据量,我通常将其存储在 Sessions 中。如果太多,那我就去数据库一趟,再取一次。
      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        • 错误和重写。保持所有部分有效/同步时会出现问题,
        • 过度管理用户的期望(“我在此处输入了一个账单编号并在此处单击了“查找人员”,但它给出了错误消息。为什么?”)当两者在逻辑上是分开的.如果只有有效选项可见,则不会出现这些问题,
        • 格式/布局问题:在 ASP.NET 页面中,尝试对独立的用户控件进行布局是一场噩梦(“但我们真的希望所有按钮垂直对齐!”在单独的用户控件中. 祝你好运。)

        只有当目标受众由领域专家组成时,我才会考虑具有多个功能的网页,即需要在一个页面上显示大量功能以提高生产力的人(想想具有大量变量的数据输入或财务软件)。

        即便如此,大多数时候,还是可以将页面分成单个单元。

        【讨论】:

          【解决方案5】:
          1. 没有
          2. 是的 - 我
          3. 我发现最好的方法是使用 Masterpages,并以 IFrame 熟悉的方式使用它。我可以将很多功能很好地结合在一起。使用 WPF/Silverlight 有一种更有趣的方法,称为 Prism

          【讨论】:

            【解决方案6】:

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

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

            • 将所有业务代码移至另一个应用层。
            • 使用ObjectDataSource 向数据绑定控件提供数据,例如ListViewGridViewRepeater、...文件。

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

            【讨论】:

            • 在我看来,“客户”没有特定的设计要求。他们一概而论,我必须弄清楚。这就是为什么我必须确定页面之间的位置。
            • 我同意 Ronnie 的观点,客户知道他们的最终目标是什么,但我们的工作是使实施尽可能简单易用。话虽如此,UI 有时需要更复杂,但这完全取决于手头的工作和使用它的人的类型。
            • 在这种情况下,我会首先为您的网站创建一个 html 模型,以向客户展示它的外观。尽早让他们参与进来。您不想建立一个网站只是为了让您的客户说:“这不是我们想要的”。
            【解决方案7】:

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

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

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

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

            【讨论】:

              【解决方案8】:

              也许您应该询问使用您网站的人。或者更好的是,只是看着人们使用您的网站。我想这会告诉你你的网站是否设计得很好,或者你是否需要改变它。

              【讨论】:

                猜你喜欢
                • 2015-11-02
                • 2014-02-25
                • 1970-01-01
                • 2013-08-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-05-20
                相关资源
                最近更新 更多