Il web design reattivo va contro il principio delle Separazioni di Preoccupazioni?

8

Mi chiedo in che modo il design reattivo gioca con il principio Separations of Concern, in relazione a come permettiamo una singola implementazione si comporta per più dispositivi di presentazione (mobile, tablet, dimensioni del browser, ecc.). Sta rompendo il principio?

Se apporto modifiche a una pagina Web che conosco si sta comportando in modo reattivo e dovrebbe funzionare su 5 dispositivi, ad esempio, non sto rendendo lo sviluppo estremamente difficile a causa di una possibile regressione che può verificarsi da un singolo punto nel software?

Certo mi sta facendo scrivere meno codice e lavoro molto più velocemente su più dispositivi, ma ora ciascuna delle mie pagine richiede test potenzialmente molto più approfonditi, che è il costo che posso spostare per non utilizzare un framework web reattivo e mantenere separati implementazioni di una pagina.

    
posta Martin Blore 20.06.2013 - 14:25
fonte

2 risposte

3

Il modo in cui stai valutando la reattività va contro il principio della separazione delle preoccupazioni. La tua domanda presuppone che la responsività sia una singola responsabilità che appartiene solo a un componente.

Suggerirei che la reattività è un attributo / responsabilità che può essere applicata a più componenti. Per il mio esempio, sto assumendo un generico MVC | MVP | Pattern di tipo MVVM.

La Vista ha sicuramente un ruolo nella reattività dell'applicazione. Gli elementi dell'interfaccia utente e la logica che usi tutti dettano il modo in cui verrà eseguita la visualizzazione. Quindi la vista è responsabile della reattività degli elementi dell'interfaccia utente.

Anche il Controller ha una mano nella reattività dell'applicazione. I tipi di strutture dati e il modo in cui viene elaborata la logica aziendale influenzeranno le prestazioni. Quindi qui, il Controller | Presentatore | ViewModel ha anche la responsabilità per la reattività. Ma questa responsabilità è su diversi elementi rispetto a ciò che è responsabile per la vista.

Infine, il Modello è responsabile delle chiamate di accesso / servizio dati. Vi sono evidenti considerazioni relative alle prestazioni nel modo in cui i dati vengono recuperati e presentati al livello intermedio. Ma ancora, questo è un elemento diverso che deve anche essere reattivo.

Responsiveness come una proprietà non è la singola responsabilità di un singolo componente. Tutti i componenti devono essere responsabili della propria lavorazione per contribuire all'applicazione complessiva. Una grande interfaccia utente e controller può essere resa inutilizzabile da richieste di dati apparentemente interminabili.

Per quanto riguarda i test, l'utilizzo di un approccio a più livelli funziona ancora a tuo favore per quanto riguarda lo sforzo complessivo e la reattività. Se si dispone di 5 dispositivi e si scrivono singoli livelli per ciascun dispositivo, si avranno 15 componenti da testare. L'utilizzo del pattern MVC * consente di rimuovere 8 componenti dal test poiché si dispone di un modello e un controller comuni. Se quei due livelli eseguono la loro parte di lavoro in modo da essere reattivi, allora devi solo provarli una volta. Puoi quindi concentrare i tuoi sforzi rimanenti sulle 5 viste.

    
risposta data 20.06.2013 - 14:47
fonte
2

Non penso che violi la separazione delle preoccupazioni dal momento che il CSS usa le query multimediali per separare lo stile per una particolare dimensione dello schermo. Le query multimediali incapsulano il codice per una particolare dimensione dello schermo.

Penso che, invece di pensare al design reattivo come al lavoro per il numero X di dispositivi, il design reattivo dovrebbe essere pensato come funzionante per tutte le dimensioni dello schermo. È la stessa pagina Web, solo in stile per le dimensioni dello schermo.

    
risposta data 20.06.2013 - 14:46
fonte

Leggi altre domande sui tag