需要帮助规划分类的体系结构 Connundrum [已关闭]

Need Help Planning Architecture for Categorization Connundrum [closed]

提问人:Peter 提问时间:10/29/2010 更新时间:10/29/2010 访问量:93

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章用事实和引文来回答。

6年前关闭。

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

例如,一个 API 需要很长的面包屑跟踪 以选择类别,例如: 体育 > 球类 新英格兰>>运动 足球>现役球队>爱国者队>纪念品。而另一个 API 有两级 分类: 体育 > 爱国者队纪念品.在许多情况下,有子类别 与其他 API 的子类别没有任何关系。

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

1)在客户端上设计自定义类别UI,然后将逻辑构建到中 能够对各种 API 的需求进行排序的服务器 基于用户选择的选项。

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

虽然我被告知第一个选项是一场真正的编程噩梦( 我得到的示例是更改 API 数据字段)我强烈认为第二个选项会惹恼客户。

有什么想法吗??

OOP 设计模式 信息架构

评论


答:

0赞 fabrizioM 10/29/2010 #1

您必须向客户提供一致的不更改界面。

我想看看你心目中的两种不同方法的一个例子。

API.find( PRODUCT, CATEGORIES_LIST )
1赞 Scott 10/29/2010 #2

第一名并不是一场噩梦。用户体验是第一要务;永远不要忘记这一点。如果用户更容易导航较短的路线,那么就给他们这个机会。此外,我会用一些抽象来包装 API,这样我的代码就根本不知道 API,只知道抽象层。这样,我就可以更改 API,而不必保留大部分代码,只更改抽象层。

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

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

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

评论

0赞 Peter 10/30/2010
谢谢斯科特 - 看起来我们正在沿着这条路走下去。
2赞 Ian Mercer 10/29/2010 #3

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

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

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

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