0

我在 DRY 和松耦合之间左右为难:(

我有两个站点,您可以链接您的帐户,然后这些站点可以共享数据(通过 RESTful api ...)

一个站点是媒体聚合站点,另一个是媒体商店,人们可以在其中购买数字媒体(音乐/照片/视频)。

我的老板想效仿 iTunes 商店,并在聚合站点中有一个内置商店,人们可以在那里购买他们喜欢的东西并将其自动添加到他们的帐户中。

我为商店网站编写了 99% 的模板和视图 (django),我需要在媒体网站上显示内容。

我应该只渲染模板并将预渲染的 html(通过 api)交付到媒体(聚合)站点,(并遵守 DRY)还是应该交付 json 以避免商店端的紧密耦合的自定义模板?

或者也许混合设计会更好?交付预渲染的 html 块(例如 a 中的前 10 种产品<ol>)并让媒体站点请求它需要的块?

混合设计对我来说似乎最有希望(现在),但可能会导致更多的 api 调用(因此更多的数据库查询)

你怎么看?

编辑 - 一个新想法:(如评论中所见)您如何看待将一些自定义 css 加载到 iframe 中的商店网站?

我认为这应该可以消除混乱,将紧密耦合的代码量减少到 3 行左右的 2 行左右,并且省去了维护几乎相同的两组模板的巨大麻烦。

4

1 回答 1

2

当您将 HTML 分布在两个站点上时,Web 设计人员会杀死您,因此一个站点应该提供(原始)数据,而另一个站点应该决定如何呈现该数据。此外,这将成为维护的噩梦。试想一下,您必须通过盯着一些 HTML 来修复一个错误:您多久会问自己两个站点中的哪一个生成了 HTML 的哪一部分?

因此,让商店渲染它从媒体站点获得的数据结构。媒体网站应该发送整个数据结构(即前 10 名的列表,只有描述,可能是 JSON,没有格式)。这避免了不必要的往返。

于 2009-11-09T14:29:36.120 回答