Negli ultimi anni ho iniziato a chiedermi se ha senso imparare tecniche avanzate in alcuni campi dell'IT, o è meglio essere bravi in tutto e utilizzare il codice più semplice possibile ovunque.
Userò C ++ come linguaggio per i confronti, dal momento che sono uno sviluppatore C ++.
Come sviluppatore C ++ puoi scrivere codice veramente interessante, che va dal codice che assomiglia a C con semplici funzioni tutt'attorno, a materiale di meta-programmazione, a volte mescolato a classi astratte pure.
Ho iniziato a notare che mi sto avvicinando alla fine di recente.
Il problema è che con le soluzioni più grandi i programmatori raramente lavorano da soli, e molto probabilmente le abilità non si sovrappongono a quelle. Quindi alcune parti del codice che scrivo potrebbero confondere gli altri membri del team e viceversa.
Potrei preferire STL e modelli, mentre altri potrebbero preferire classi astratte pure ovunque, altri si baseranno su dynamic_casting o codice generato da procedure guidate di VC. Mentre alcuni si limitano a godere di tutto ciò che è scritto in modo molto semplice, come C.
Ciò si ritorce anche con il fatto che le persone che non hanno lavorato con, ad esempio, con le classi virtuali, potrebbero non sapere nemmeno perché la nuova classe che hanno derivato è rotta a causa del semplice distruttore virtuale mancante. Quindi il codice che scrivi spiana la memoria se altre persone decidono di riutilizzare il tuo codice in un secondo momento.
Hai esperienza di lavoro in ambienti con più sviluppatori con diverse competenze? Cerchi di trovare un dominatore comune nei tuoi ambienti? Usare le competenze di ogni persona funziona anche in progetti più grandi?