Separation of concerns
Questo significa che hai tre tipi di file, HTML, CSS e JS.
Non si mischiano HTML, CSS o JS. Ognuno di loro è nel suo stesso file.
Semplicemente mantenendo tutto separato e mai utilizzando in linea javascript o CSS in linea è possibile risolvere la maggior parte dei problemi di organizzazione del codice.
Un'altra tecnica sono gli imballatori e i minificatori.
miei confezionatori di scelta sono browserify (js) e less (css)
Packagers significa che dovete tutto il codice in molti file/moduli divisi da una buona progettazione. Quindi, poiché l'invio di molti file di piccole dimensioni è costoso, si utilizza un programma di produzione build-time per trasformare tutti i file js in un file js e tutti i file CSS in un unico file css.
Per quanto riguarda JS stesso, tendo ad andare oltre e utilizzare un caricatore di moduli. Browserify è sia un packager che un caricatore di moduli.
Caricatori di modulo significa che si definiscono piccoli moduli e li si carica/li richiede quando è necessario e dove è necessario.
Ho anche implementato l'architettura basata su eventi e il pattern mediator per mantenere il mio codice fortemente allentato. Si potrebbe andare oltre e implementare qualcosa come lo blackboard system ma non l'ho provato personalmente.
1) Non inserire gestori eventi in linea – William
@Lime riscontriamo anche problemi con javascript normale che non funziona prima di $ (document) .ready() – MrFoh