Mi permetto di aggiungere il mio parere:
come è stato già detto, la programmazione ad oggetti è un aiuto per il programmatore e questo può tradursi in un prodotto migliore. Il fatto che lo sviluppo web spesso non necessita di grandi sforzi avvalla il concetto che la programmazione OO non sia necessaria in questo contesto. Ma i tempi stanno cambiando e crescono le realtà in cui si sente il bisogno di vere e proprie applicazioni web sostitutive di quelle desktop.
Sto lavorando da quasi un anno su un gestionale di grandi dimensioni (e pretese da parte del committente...) che conta 58 tabelle MySQL, 97 pagine diverse, 30 pagine in PDF dinamico, 15 pagine per l'amministrazione.
Utenti multilivello (presidente, dipendente, collaboratore,...) divisi in gruppi multilivello(sede centrale, sedi periferiche, centri locali) che lavorano su dati che possono essere in stati diversi (pratiche chiuse, aprete, in attesa,...)
Quando viene richiesta una pagina, il risultato sarà funzione di una miriade di condizioni o, se vogliamo fare un discorso sistemistico, sarà funziuone dello stato attuale del sistema (gestito dalle sessioni). Ed è quì che la programmazione ad oggetti da il meglio di se. Oggetti che nascono e muoiono all'interno di una pagina possono risultare si comodi ma non indispensabili. Se lo stato dell'applicazione è molto complesso, l'uso di oggetti che vengono 'svegliati' ad ogni pagina è una manna dal cielo.
Questi oggetti conoscono i dati su cui devono lavorare (non devo passarli come parametri).
Si ottengono pezzi di codice del tipo:
il numero di variabili che se ne vanno a spasso si riduce drasticamente, non si fanno errori di sovrapposizione di variabili (quante volte capita di usare la variabile $risultato per scopi diversi?). In più le funzioni classiche non possono essere raggruppate in maniera così efficace come succede per le funzioni membro.codice:if($pratica->isAperta() && $utente->isResponsabile()) { $template->mostraPraticaCorrente(); $log->memorizzaAccessoPraticaCorrente(); } else { $template->mostraErroreAccesso(); $log->memorizzaAccessoNegato(); }
Ma forse la cosa più bella della programmazione ad oggetti (ed anche la più complessa da sfruttare) è che ti permette di pensare "ad oggetti" che è un processo molto più "umano" per risolvere problemi complessi.


Rispondi quotando