I design pattern sono modi di pensare alla programmazione.
Forniscono una raccolta di consigli, pratiche pronte, best-practice e approfondimenti sullo sviluppo. Per ogni paradigma di programmazione e tipo di compito, ci sono alcuni design pattern che sono più adatti.
Nella programmazione, risolvere certi tipi di problemi è ripetitivo, quindi ha senso scegliere un metodo per risolvere questi problemi e continuare a ripetere quel metodo.
Il beneficio principale si presenta soprattutto durante lo sviluppo in team, quando tutti sanno come l'applicazione sarà sviluppata (secondo quale design pattern) e lo applicano semplicemente. Questo elimina poi le inutili decine di ore di debugging del codice scritto in modo strano e cercando di capire i principi che l'autore intendeva.
Il mio design pattern preferito è MVC
(da Model View Controller
), che dice che l'applicazione è divisa in 3 strati indipendenti che si chiamano l'un l'altro in modo sequenziale e si passano dati l'un l'altro.
Per esempio, quando si rende una pagina, potrebbe sembrare che prima decida che tipo di pagina è (per esempio, un dettaglio della categoria), quindi chiama CategoryController
con il metodo detail
.
Un esempio concreto (sto semplificando molto):
class CategoryController{public CategoryManager $categoryManager;public function actionDetail(string $id): void{$this->template->id = $id;$this->template->category = $this->categoryManager->getById($id);}}
Nota:
Questo è solo un codice di esempio che spiega il principio del design pattern
MVC
.In un'implementazione reale, dovremmo capire ulteriormente come, per esempio, ottenere un'istanza di
CategoryManager
e come passarla alla proprietà. Tipicamente, l'iniezione di dipendenza è usata per questo tipo di compito.
Prima di rendere la pagina per il dettaglio della categoria, il CategoryController
viene chiamato per ricevere la richiesta effettiva (cioè, stiamo rendendo il dettaglio della categoria con un certo ID, che è ottenuto dal router, per esempio, nell'URL), ottenere i dati (interrogando il Modello
corrispondente) e passare i dati finali al modello per il rendering.
L'enorme vantaggio di questo principio è che possiamo scrivere molti modelli (logica dell'applicazione) che è indipendente dal modo in cui i dati sono presentati (il modello), risultando in codice riutilizzabile. Infatti, se vogliamo usare il CategoryManager
in un altro progetto, semplicemente passiamo i dati attraverso il Controller
in un modo specifico, che sarà reso secondo il modello definito dal progetto stesso, mentre la logica dell'applicazione rimane la stessa e nessuno se ne preoccupa perché il livello del software ha adempiuto alla sua interfaccia e responsabilità concordate.
Nota pratica:
Il design pattern
MVC
è usato dalla maggior parte dei framework moderni come Nette, Symfony, Laravel e altri.Possiamo anche incontrare
MVC
nello sviluppo di app mobili e altri tipi di software dove abbiamo bisogno di ottenere dati e renderli in un modello secondo il tipo di pagina o di vista.
Generalmente nella programmazione ci sono molti design pattern che non sono adatti allo sviluppo web. Questa lista descrive i modelli più importanti che io stesso uso e con cui dovreste avere familiarità.
Una elenco completo di tutti i design pattern, esempi del loro uso e spiegazioni dettagliate si possono trovare in una pagina separata.
Modello
(logica dell'applicazione e dati), Vista
(template e vista dei dati) e Controller
(che collega Modello
e Vista
).Dependency injection
, dove ogni servizio ha una sola istanza che viene passata attraverso l'applicazione).Ci sono molti altri design pattern, questi sono i più importanti che dovreste conoscere.
Alcune tecniche di sviluppo della programmazione sono considerate anti-pattern
, che è l'esatto contrario di un design pattern. Di solito è una tecnica che produce codice strano che non può essere facilmente debuggato, mantenuto e che si comporta magicamente
.
Un esempio tipico è l'uso di variabili globali.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | it