0

私はDRYと緩い結合の間で引き裂かれています:(

アカウントをリンクできる2つのサイトがあり、それらのサイトはデータを共有できます(RESTful APIを介して...)

1つのサイトはメディア集約サイトであり、もう1つは人々がデジタルメディア(音楽/写真/ビデオ)を購入できるメディアストアです。

私の上司は、itunesストアをエミュレートし、アグリゲーションサイトにビルトインストアを設置して、好きなものを購入してアカウントに自動的に追加できるようにしたいと考えています。

私はストアサイト用に作成されたテンプレートとビュー(django)の99%を持っており、メディアサイトにコンテンツを表示する必要があります。

テンプレートをレンダリングして、事前にレンダリングされたhtml(api経由)をメディア(アグリゲーション)サイトに配信する(そしてDRYに従う)必要がありますか、それともストア側で密結合のカスタムテンプレートを回避するためにjsonを配信する必要がありますか?

それとも、ハイブリッド設計の方がうまくいくでしょうか?事前にレンダリングされたhtmlのチャンク(のトップ10製品など<ol>)を配信し、メディアサイトに必要なチャンクを要求させますか?

ハイブリッド設計は(今のところ)私にとって最も有望に思えますが、おそらく結果としてより多くのapi呼び出し(したがってより多くのデータベースクエリ)が発生するでしょう

どう思いますか?

編集-新しいアイデア:(コメントに見られるように)ストアサイトにカスタムcssをiframeにロードすることについてどう思いますか?

これにより、混乱がなくなり、密結合されたコードの量が3ダース行のうちの2行程度に減り、ほぼ同一の2セットのテンプレートを維持するという大きな頭痛の種を減らすことができると思います。

4

1 に答える 1

2

HTML を 2 つのサイトに広めると、Web デザイナーはあなたを殺します。そのため、一方のサイトが (生の) データを配信し、もう一方のサイトがそのデータのレンダリング方法を決定する必要があります。また、これはメンテナンスの悪夢になるでしょう。HTML を見つめてバグを修正しなければならないことを想像してみてください。2 つのサイトのどちらが HTML のどの部分を生成したか、どのくらいの頻度で自問するでしょうか?

そのため、メディア サイトから取得したデータ構造をストアにレンダリングさせます。メディア サイトは、データ構造全体を送信する必要があります (つまり、上位 10 のリスト、説明のみ、おそらく JSON として、書式設定なし)。これにより、不要な往復が回避されます。

于 2009-11-09T14:29:36.120 に答える