È necessario avere una conoscenza e una comprensione dei modelli di progettazione affinché qualcuno possa essere un programmatore professionista? Perché?
È necessario avere una conoscenza e una comprensione dei modelli di progettazione affinché qualcuno possa essere un programmatore professionista? Perché?
No. Dico solo che per essere pedante però. Il termine "programmatore professionista" significa davvero che vieni pagato per programmare. Ti assicuro che puoi essere pagato per programmare senza conoscere alcuno schema di progettazione (certamente l'ho fatto, per alcuni anni).
Tuttavia, conoscere i modelli di progettazione presenta alcuni vantaggi:
È un modo in cui altri programmatori ci parlano dei modi generali in cui hanno risolto classi generali di problemi.
È un nome che puoi applicare a un pattern specifico e altri programmatori che sanno che quel pattern capirà cosa intendi. Puoi persino inserirlo nel nome dei metodi e delle classi ( XyzSingleton
, ad esempio).
In molti modi è un buon modo per imparare le carenze dei linguaggi di programmazione e dei paradigmi. Ad esempio il pattern Visitor
esiste perché nella programmazione orientata agli oggetti di solito è necessario scegliere tra un'architettura in cui è più semplice aggiungere nuovi tipi che mostrano la stessa interfaccia o aggiungere facilmente nuovi comportamenti ai tipi esistenti, ma facendo entrambi diventa complicato Pensare a questi problemi informa le tue decisioni di progettazione.
Se sei un buon programmatore, scoprirai alcuni dei modelli di progettazione e in seguito noterai che queste costruzioni hanno un nome.
Quindi, rigorosamente no, ma possono aiutarti a migliorare le tue abilità orientate agli oggetti e possono aiutarti a comunicare con altri programmatori.
I modelli di design hanno due scopi:
Non devi sapere che sono uno sviluppatore professionista, ma non saperlo ti ostacolerà in una certa misura, perché non sarai in grado di "parlare la lingua". Potrai anche reinventare la ruota.
Algoritmi, modelli di progettazione, tipi di architettura dell'applicazione sono elementi costitutivi per i programmatori.
Sono indipendenti dalle lingue più popolari (C #, Java ecc.) e uno dei lati positivi di questo fatto è che possono essere usati per comunicare i tuoi pensieri più facilmente quando si tratta di spiegare come qualcosa è codificato.
Sebbene la conoscenza e la comprensione dei modelli di progettazione non sia un prerequisito per diventare un programmatore professionista, sono uno strumento utile per migliorare l'affidabilità del codice, la capacità di comunicare con altri programmatori e la capacità per gli altri di mantenere il codice hai scritto.
Proprio come l'apprendimento di linguaggi e tecnologie di programmazione aggiuntivi, una buona comprensione dei modelli di progettazione migliora le tue capacità e il tuo valore.
In altre parole, non è necessario per conoscere e comprendere i modelli di progettazione, ma più capisci, meglio sarai professionalmente.
I pattern non sono necessari per scrivere il codice e ottenerne il pagamento. Il processo di apprendimento di quali tipi di pattens, algoritmi e stili architettonici esistono è un processo di apprendimento su come progettare e progettare software con una qualità interna superiore e che soddisfi requisiti più rigidi non funzionali. Oh e potrebbe essere necessario se non vuoi che gli altri ragazzi dello sviluppo ridano e indichino. ;)
Leggi altre domande sui tag design design-patterns