Salve, sto ragionando sulle soluzioni ottimali per una certa applicazione e vorrei sottoporvi una questione, per avere le vostre opinioni. Scusate per l'eventuale lunghezza, spero abbiate la pazienza di arrivare in fondo ancora svegli![]()
L'applicazione è modulare, e i vari moduli non sono sempre necessari. C'è uno script principale che viene usato sempre e si occupa dell'inclusione degli eventuali moduli quando necessari.
Lo schema tipico (lo esprimo in linguaggio informale) è qualcosa come:
if(modulo1 è necessario) allora includi modulo1;
if(modulo2 è necessario) allora includi modulo2;
if(modulo3 è necessario) allora includi modulo3;
...
if(moduloN è necessario) allora includi moduloN;
La cosa da tenere presente è che la configurazione dell'applicazione (e quindi l'insieme dei moduli richiesti) cambia molto raramente, quando cioè il proprietario del sito che la usa decide di aggiungere (o togliere) delle funzionalità (cosa che uno non fa ogni 5 minuti).
Quindi ho pensato che:
1) quando un modulo non mi serve, ripetere a ogni pagina richiesta il controllo corrispondente (if modulo è necessario...) è una perdita di tempo.
2) anche quando un modulo mi serve, ripetere ogni volta il controllo è una perdita di tempo.
Allora ho ipotizzato: quando decido di cambiare configurazione (evento raro), il programma potrebbe riscrivere in automatico lo script principale che si occupa delle inclusioni evitando quindi tutti quei controlli inutili, con il risultato di avere uno script sempre ottimizzato sulle particolari esigenze di chi lo usa.
Una sorta di "ricompilazione del kernel", come avviene nei sistemi linux.
Fin qui l'aspetto positivo. Ora vorrei discutere con voi gli aspetti negativi.
Il primo requisito lo dico io, è che la cartella che ospita l'applicazione dovrebbe permettere la scrittura a tutti (777). Io non so quali siano nel dettaglio i rischi che comporta una scelta di questo tipo, mi piacerebbe saperlo da voi, magari con degli esempi.
Altro dubbio, la riscrittura dello script mentre questo viene anche richiesto in esecuzione da diversi client (ipotizziamo un sito molto visitato) che problemi comporta?
etc. etc. spazio a voi.![]()