2

我有更多的“你会做什么”的问题,而不是一个实际的编码问题。它与我目前正在从事的一个项目有关。在这个项目中,我们的任务是将多个市场 API 组合到一个界面中。每个 API 都有自己独特的产品分类方式。我们正在查看的所有 API 的顶级父类别或多或少是相同的,但有一些变化。但是,子类别大不相同。

例如,一个 API 需要很长的面包屑路径来选择一个类别,例如:体育 > 球类运动 > 新英格兰 > 足球 > 活跃球队 > 爱国者 > 大事记。而另一个 API 有两级分类:体育 > 爱国者纪念品。在许多情况下,有些子类别与其他 API 的子类别没有任何关系。

所以,问题是——设计界面时最好的方法是什么?我们目前在两种可能性之间挣扎:

1) 在客户端设计一个自定义类别 UI,然后将逻辑构建到服务器中,该逻辑能够根据用户选择的选项对各种 API 的需求进行分类。

2) 以用户必须为每个单独的 API 完成必要步骤的方式创建 UI。根据用户设置,这意味着他可能需要填写 API 特定信息 5、6、10 次或更多次。

虽然有人告诉我选项一是真正的编程噩梦(我给出的示例是更改 API 数据字段),但我强烈认为选项二会激怒客户。

有什么想法吗?

4

3 回答 3

2

这是一个非常难的问题。如果您搜索“本体产品分类”,您会发现许多关于该主题的研究论文和讨论。如果一个只是另一个更详细的版本,那将是非常可行的,但是您的描述暗示情况并非如此,因此您需要构建自己的分类方案并将其他分类方案映射到它上面。

您是否有一个通用密钥(UPC 代码?或其他)可以让您验证不同产品类别之间的映射?如果是这样,您也许可以构建自己的分类方案,然后将其他分类方案映射到它上面并取得一定程度的成功。

显然,第一个选项对消费者来说是最好的,但构建这样的映射可能非常困难且非常耗时,并且需要不断更新。

一种方法是构建比提供的任何层次结构更简单的层次结构。更简单的层次结构将使将类别映射到层次结构中的[主要是手动的]工作变得更加容易,因为大多数只是包含。这可能会使用户体验变差,但是如果您围绕产品浏览体验添加出色的搜索功能和出色的“相关产品”/“购买此产品的人也购买了此产品”工具,您可能可以弥补层次结构的不足。

于 2010-10-29T05:47:17.197 回答
1

第一名并不是那么糟糕的噩梦。您的用户体验是第一要务;永远别忘了。如果用户可以更轻松地导航较短的路线,那么就给他们这个机会。另外,我会用一些抽象来包装 API,这样我的代码根本不知道 API,只知道抽象层。通过这种方式,我可以更改 API 并保留我的大部分代码,只更改抽象层。

使用会话在页面之间传递数据,并使用工厂根据会话数据创建页面的入口状态;这将加强页面、状态和用户数据之间的上下文。

将第一级对象(页面直接与之对话的对象)保留在页面的上下文中;这将有助于诊断问题。

最重要的是,为您的抽象层创建一系列测试,测试每个对象、函数和输入输出对,以确保您的应用程序坚如磐石。

于 2010-10-29T05:30:03.600 回答
0

您必须为您的客户提供一致且不变的界面。

我想看看您想到的两种不同方法的示例。

API.find( PRODUCT, CATEGORIES_LIST )
于 2010-10-29T05:28:18.037 回答