Design Patterns, questi sconosciuti
Da un po’ di tempo sento parlare sempre più spesso di Design Patterns ma sono veramente poche le persone con le quali ho potuto confrontarmi sull’argomento.
Sembra che hai più questi siano completamente sconosciuti e per molti altri vengano addirittura considerati “inutili”.
Io sono molto ignorante in materia ma da quel poco che ho capito mi sembrano soluzioni molto interessanti, anche se per un programmatore web ( javascript , asp , php4 ) non sempre sono applicabili dato lo “scarso” supporto alla programmazione OO.
Se siete tra quelli che si stanno chiedendo che cosa sono i Design Patterns cercherò di condividere ( sperando di non dire troppe cavolate ) quel poco che imparato.
Letteralmente possiamo tradurlo con “disegnare modelli” dove per modello si intende una soluzione nata dall’esperienza rivolta ad un problema specifico.
I pattern sono dei concetti universali indipendenti dalla tecnologia e dal linguaggio, a patto che il linguaggio rispetti i pagadigmi della programmazione ad oggetti.
I primi Design Patterns hanno sono stati creati nel 1994 ( più di 10 anni fa ) e le implementazioni più famose sono state scritte in c++ ed in Java.
Potrei continuare facendo un facile cut&paste da altri siti, ma preferisco darvi qualche link …
- Design Patterns:una breve FAQ
- Wikipedia: Design pattern
- Design Pattern
Modelli per risolvere problemi ricorrenti e comuni di disegno del software ObjectOriented - La suddivisione in categorie i Design Patterns
Se avete piacere di leggere un libro sull’argomento potrei consigliavi Design patterns: elementi per il riuso di software a oggetti, un libro del 2002 addirittura tradotto in italiano ….
Parecchi li considerano futili oppure altri pensano che i design pattern servano solo a chi non sa veramente programmare. In un certo senso questa ultima affermazione è vera, si tratta di soluzioni con algoritmi già pronti per cui spingono il programmatore a pensare di meno su quello che deve realizzare. Il vantaggio grande che o vedo nei design pattern è proprio la funzionalità di collante verso tutti gli sviluppatori.
Un punto di riferimento unico per risolvere un problema. Ad esempio io uso praticamente sempre MVC e una volta studiato il modello lo posso applicare non solo a Java ma anche a Python. In particolare ultimamente mi è stato di grande aiuto per capire il funzionamento di Ruby On Rails che è ha una ottima implementazione di MVC.
Ovviamente senza conoscere i design pattern si potrebbe arrivare alla stessa soluzione e poi dopo ci si potrebbe sorprendere del fatto che si è creato qualcosa a cui avevano già pensato altri in passato 😉
i design pattern vanno studiati ed assimilati.. non utilizzati senza ragionare (almeno credo)..
cmq post interessante!!!! (ho cliccato su un banner di google… magari ti interessa saperlo)