In che modo siti come SquareSpace e Wix supportano più modelli di progettazione? [chiuso]

2

Come fanno questi ragazzi a farlo? Ho lavorato su un paio di siti multi-tenant e ho difficoltà a capire come si farebbe per far sì che ogni pagina del sito supporti molti progetti. Certo, potresti creare un partial per ogni pagina o modulo per ogni modello ma sembra un incubo di manutenzione.

Come architetti un sito in grado di supportare più modelli di progettazione? Sono più familiare con Ruby on Rails ma sto cercando una risposta di livello più alto.

    
posta Ryan Arneson 01.04.2015 - 23:56
fonte

1 risposta

2

In generale, il modo in cui funziona è avere "componenti" che hanno loro stessi una struttura HTML, ma permetterne il posizionamento all'interno di "celle" all'interno del modello. Ad esempio, potresti scegliere un layout con una cella grande e tre celle più piccole al di sotto di esso; potresti quindi inserire un grosso componente di scorrimento immagine nella cella grande e le immagini con didascalie nella cella sottostante. Una volta ottenuto il modello di dati, l'implementazione dei controller è relativamente banale.

Visivamente, l'esempio sopra potrebbe apparire come questo:

[       1       ]
[ 2 ] [ 3 ] [ 4 ] 

Potrebbe esserci un altro modello più semplice, qualcosa come un blog con una barra laterale:

[    1    ] [ 2 ]

Ci sarebbero opzioni per componenti che possono essere inseriti nel modello. Ad esempio, puoi vedere un cursore immagine; un componente del blog che estrae da un campo back-end configurabile; una semplice foto con didascalia; una pubblicità. Un processo di rendering potrebbe essere simile a questo:

  1. Determina quale sito è stato richiesto.
  2. Cerca il modello per il sito.
  3. Cerca i componenti configurati per il sito.
  4. Esegui un'unione di tutti i requisiti relativi ai dati per i componenti.
  5. Esegui una query (o alcuni) per i requisiti dei dati.
  6. Fornisci i dati alle viste e rendili.

È complicato in vari modi, ma fondamentalmente non è molto diverso dal tipico rendering delle applicazioni web.

    
risposta data 02.04.2015 - 00:44
fonte

Leggi altre domande sui tag