I generatori di codice aumentano la produttività ...
I generatori di codice disponibili in Visual Studio sono qui per semplificarti la vita. Questo include quello che genera il codice per Windows Form.
Uno strumento grafico del genere è particolarmente utile quando è necessario comunicare che questo pulsante è grande e posizionato qui, mentre quello è piccolo e si trova proprio in questo angolo, ma non troppo vicino al bordo : dover posizionare gli elementi attraverso il codice sarebbe molto più difficile. Se non sei convinto, prova a fare entrambe le tecniche mentre sei seduto vicino a uno stakeholder o a un designer che prende effettivamente delle decisioni sull'aspetto di un modulo; ciò che sarebbe più produttivo: per avere un feedback visivo immediato dopo ogni modifica, o di dover ricompilare e rieseguire l'applicazione ogni volta, cercando di indovinare se "abbastanza vicino al confine" dovrebbe essere 11, 12, 13, 14 o 15 pixels?
... quindi sii produttivo
Come programmatore o sviluppatore, ci si aspetta che tu scriva codice pulito quando è vantaggioso per il progetto. Seguire il dogma del codice pulito in ogni caso ti rende improduttivo: in altre parole, diventi un peso per il progetto.
Il tuo compito è determinare esattamente dove è importante il codice pulito e dove a nessuno potrebbe importare di meno.
Un codice business-critical che verrà letto migliaia di volte da te e dai tuoi colleghi per un periodo di dieci anni e frequentemente modificato ha tutte le ragioni per essere il più pulito possibile. D'altra parte, il codice boilerplate nessuno read non deve essere ben commentato o ben rientrato.
I generatori di codice hanno anche un vantaggio rispetto a un essere umano: le macchine hanno meno possibilità di introdurre un bug sottile. Indovina quanti bug ho trovato nel codice prodotto dai generatori di codice negli ultimi cinque anni? Zero. D'altra parte, quando i compiti ripetitivi e monotoni sono eseguiti dall'uomo, gli errori hanno un grande rischio di essere introdotti. Un bug a questo livello ridurrebbe solo la tua produttività.
Nota a margine: come recruiter, probabilmente rifiuterò una candidatura di un programmatore .NET WinForms che afferma di non utilizzare il generatore di codice WinForms perché preferisce scrivere codice pulito a mano. Mentre io favorisco le persone che sono in grado di scrivere codice pulito, non ho bisogno di una persona che sta sprecando i miei soldi digitando a mano codice boilerplate.
I generatori di codice non producono necessariamente un codice brutto ...
Parlando di codice pulito, il codice Windows Forms non è il più brutto. Si potrebbe certamente essere meglio (e almeno essere conforme alle linee guida dello stile ufficiali vigenti attraverso StyleCop e le raccomandazioni ufficiali vigenti attraverso l'analisi di codice), ma in tutti i casi, l'utilizzo di classi parziali con due SuppressMessage
e GeneratedCode
in modo simile a questo esempio rende possibile abstract completamente questa parte del codice e impedire che la deposizione delle uova avvertimenti inutili durante il controllo statico.
... ma non tutti i generatori di codice sono uguali
Il generatore di codice per ASP.NET (WebForms) è una bestia molto diversa. Non è particolarmente utile: a meno che un programmatore non conosca l'HTML, sarà altrettanto efficiente (se non di più) scrivendo direttamente il codice. La mia raccomandazione è di non usare mai questo generatore di codice.
Il generatore di codice per WPF è molto utile quando non si conoscono i nomi esatti. D'altra parte, spesso produce codice che è molto più complicato di quanto dovrebbe essere. La mia raccomandazione è di usare questo generatore di codice in modo selettivo e provare a scrivere la maggior parte del codice XAML a mano¹.
Il generatore di codice per LINQ to SQL e per Entity Framework è un must. Non è necessario scrivere a mano il codice boilerplate. T4 è una funzione eccellente che riduce ancora di più la necessità di scrivere codice ripetitivo.
Conclusione
Detto questo, nulla ti obbliga a usare quei generatori di codice. Puoi creare un modulo direttamente nel codice, anche tramite Visual Studio.
¹ Ho usato solo WPF in Visual Studio 2010. Le cose potrebbero essere cambiate da allora, e se ricordo bene, le prossime versioni di Visual Studio sono state pubblicizzate per avere un editor WPF molto migliore.