WebForms, JQuery e il principio DRY

3

Sto lavorando a un'applicazione WebForms con diverse pagine. Ogni pagina attualmente carica JQuery in un tag script in testa. Un collega con cui lavoro insiste sul fatto che si tratta di codice WET e violazione del principio DRY poiché ogni pagina deve caricare JQuery individualmente. Suggerisce che il sito debba essere refactored come applicazione a singola pagina in modo che JQuery venga caricato solo una volta. Suggerisce che il contenuto debba essere commutato tra uno stato nascosto / non visibile per simulare il passaggio tra le pagine web.

Questa applicazione verrà utilizzata da 3 utenti su una rete intranet. La dimensione di JQuery è intorno a 250k.

Può davvero essere considerata una violazione del principio DRY? C'è la possibilità che due pagine web possano riferirsi a versioni diverse di JQuery, ma non considererei una violazione del principio. La logica mi sembra contorta. Cosa ne pensate?

    
posta Narthring 18.04.2016 - 23:18
fonte

1 risposta

7

A colleague I'm working with insists this is WET code and a violation of the DRY principle since each page has to load JQuery individually.

No.

  1. Il codice della libreria jQuery viene memorizzato nella cache dal browser. Se viene pubblicato da un CDN , è essenzialmente memorizzato nella cache in modo permanente o finché la versione non cambia. Quindi l'impatto della "duplicazione del codice" è effettivamente pari a zero.

  2. Il principio DRY si applica a codice sorgente che viene duplicato su più metodi in un'applicazione o in una libreria, non in copie eseguibili di dette applicazioni o librerie. Non diresti "Windows non è ASCIUTTO perché funziona su milioni di computer", vorresti?

Capovolgere l'intera architettura dell'applicazione solo per far caricare jQuery una volta è ridicolo. Spostare il contenuto tra visibile e invisibile per simulare pagine diverse è ancora più ridicolo.

Puoi, ovviamente, creare un'applicazione a singola pagina se questo è il tuo obiettivo. Ma facendo così per assicurarsi che jQuery carichi solo una volta, la coda scodinzola.

    
risposta data 18.04.2016 - 23:24
fonte

Leggi altre domande sui tag