Non cercare la tendenza
Qualsiasi soluzione di programmazione standard per un determinato problema può essere considerata un modello di progettazione, non importa quanto siano popolari o se altri programmatori li usano o meno.
Potresti già utilizzare un modello di progettazione che non è stato ancora inventato / specificato.
Non provare a usarli, prova a pensare nei loro termini
Il problema con i modelli di progettazione è che a volte i programmatori vogliono adattarsi ai loro problemi quando è il contrario.
Ricorda che la convenzione di progettazione dei modelli di progettazione presenta un problema tipico da risolvere, puoi persino combinare i modelli di progettazione per affrontare altri problemi più grandi. Questo è un po 'tipico nelle architetture orientate ai servizi, basta vedere alcuni dei modelli SOA che ci sono .
Cercali allo stato brado
Ci sono molti progetti open source in cui troverai modelli di progettazione applicati. Un esempio che viene in mente è Joomla: troverai singoli , osservatori . Le librerie della GUI avranno il modello di decorazione , il modello di comando implementato e forse anche il peso mosca .
Esistono altri modelli come i modelli di dati, ad esempio solo il Progetto Doctrine ha utilizzato, il modello di record attivo (1.x), il modello di gestione entità (2.x), l' unità di lavoro , il repository , l'oggetto query , la mappatura dei metadati , i dati mappatura e altri più generali come il modello di strategia e il modello di decorazione .
Ci sono così tante soluzioni interessanti tra cui scegliere. Vedi Patterns of Enterprise Architecture di Martin Fowler , ci sono anche pattern di modelli di dati .
Imparali solo quando arriva il momento
Imparali, conoscili, ossessionali e quando arriverà saprai come risolvere il problema di programmazione x, a quel punto sarai già un programmatore migliore.
Diventa un architetto
Direi che essere in grado di pensare in termini di modello per risolvere i problemi, ti trasforma effettivamente in un architetto del software . Anche se non vuoi essere un architetto del software in sé, le tue soluzioni avranno più qualità tecnica, saranno più pulite e miglioreranno la scalabilità, in termini di design, per impostazione predefinita.