2009-10-19 18 views
7

Sono uno sviluppatore pigro? È pigro usare strumenti automatici come generatori di codice e così via?Essere uno sviluppatore pigro o non essere uno sviluppatore pigro?

Ora, potrei, se necessario, creare tutti i livelli di dati e le entità di cui avevo bisogno, ma ho scelto di usare CodeSmith per generare i miei datalayers ed entità. Inoltre uso Resharper e direi che combatte con MSDeploy su quale viene installato prima dopo Visual Studio. Ancora una volta, se potessi, potrei programmare senza, ma preferisco non farlo.

Entrambi questi strumenti dal mio punto di vista non sono brainers in quanto migliorano l'output in maniera massiccia.

Ma questo è pigro? Sono sicuro che ci siano puristi là fuori che direbbero che tutto dovrebbe essere wirtten da te così sai cosa sta facendo tutto, ma se riesci a leggere il codice e vedere cosa sta succedendo, va bene?

Quindi sono pigro o sto usando tutte le carte in mano?

+5

Se essere pigri significa finire il lavoro prima, quindi siamo in due. –

+1

Essere pigri ed efficienti sono due cose diverse. Penso di essere sia efficiente che pigro! Il meglio dei due mondi! –

+0

Non penso che tu abbia davvero un problema valido. Hai un argomento su cui vorresti meditare, il che va bene, ma questo significa che questa domanda deve essere contrassegnata come community-wiki –

risposta

23

Nei programmatori, laziness is a virtue, quindi non preoccuparti.

+1

Almeno, ecco come è stato giustificato, così possiamo sentirci meglio con noi stessi;) – mpen

1

Stai utilizzando tutte le carte nella tua mano. Perché reinventare la ruota quando ci sono strumenti disponibili per semplificare il tuo lavoro. Tenete a mente questi strumenti NON fate il vostro lavoro, loro solo assistono.

Quello che crei dipende da te, quindi usare gli strumenti non è pigro ... è solo intelligente.

+1

Ma allo stesso tempo non dimenticare che esistono diversi strumenti per lo stesso lavoro. (Ho visto persone impiegare 10 minuti per installare una sega elettrica per quello che ci vorrebbe 2 minuti per fare con la sega da incisione seduta sulla panchina.) –

5

Non hai bisogno di reinventare la ruota n volte, questo è abbastanza spesso. Brevemente direi che usare strumenti come quelli che hai citato (entro limiti ragionevoli) non è assolutamente un problema ...

1

Direi che sei più efficiente piuttosto che pigro.

+0

La pigrizia è ciò che ottieni quando usi i generatori di codice per essere efficiente, ma usa il tempo risparmiato per aggirare StackOverflow invece di dedicare più tempo a qualche altro aspetto del progetto che sei stato assunto. Un'altra spiegazione della pigrizia: la pigrizia è quando si usa un generatore di codice, ma non fa ciò che si vuole, così tutti gli altri sono costretti a hackerarlo (cioè quando si usa qualcosa che non è lo strumento giusto per il lavoro per evitare di fare –

11

È solo pigro se si utilizza uno strumento per produrre codice e utilizzarlo così com'è senza verificare che il codice soddisfi le proprie esigenze e rispetti i propri standard.

2

Entrambi questi strumenti dal mio punto di vista non sono brainers in quanto migliorano l'output in modo massivo.

Ciò significa che non si è pigri, si utilizzano gli strumenti appropriati per consentire di concentrarsi sugli aspetti importanti del lavoro.

2

Non è pigro, è intelligente. Non c'è niente di sbagliato nell'usare ogni strumento a tua disposizione ... purché ti renda più produttivo. Usare gli strumenti per il gusto di usare gli strumenti è una cattiva idea.

Tuttavia, se non sai cosa sta facendo il tuo strumento sotto il cofano, dovresti informarlo, quindi se non hai lo strumento disponibile per qualche motivo, puoi portare a termine il lavoro.

5

Per te? No, non sei pigro.

Per il ragazzo che non è capire cosa stanno facendo i generatori di codice e come lo fanno? , è pigro.

Questa è l'importante distinzione: devi sapere cosa ottieni e sapere cosa ti manca utilizzando un generatore di codice.Se non lo fai, è solo una questione di tempo prima che ti imbatti in un caso in cui devi essere in grado di produrre quelle lezioni e non sapere come.

+0

Ciò significherebbe che qualcuno che non sa come funziona un compilatore è pigro usando uno? –

+0

@ Matthew Whited, mi rendo conto che stai facendo loquace; ma devi capire che ci sono quelli che usano ciecamente gli strumenti senza sapere perché o come funzionano, e diventano un danno per la loro squadra. –

+1

Ci sono programmatori che non sanno come funzionano i compilatori? Compra un libro, ragazzi. Sheesh. –

0

Sono sicuro che ci sono i puristi là fuori che avrebbe detto tutto dovrebbe essere wirtten da voi in modo da sapere che cosa sta facendo tutto

Questo potrebbe essere un punto vitale di vista durante i primi giorni di programmazione. Ma al giorno d'oggi, questo è semplicemente non fattibile (o addirittura preferibile). Dopo tutto, hai già oscurato un certo livello di comprensione semplicemente usando un linguaggio di alto livello.

Detto questo, ho trovato ad essere un grande esercizio di apprendimento di scrivere alcune di queste cose a mano di tanto in tanto. Non solo imparerai di più, ma ti insegnano quanto questi strumenti siano davvero utili (o meno). Nota che lo farei solo su un progetto personale. Non lo farei per qualsiasi progetto per cui qualcuno mi pagasse (a meno che non lavorassi per un masochista o qualcosa del genere).

0

chiedetevi perché ci sono così tanti ORM e altri strumenti di generazione del codice intorno. Direi di andare avanti con la clausola che lo lasci manutenibile per il prossimo ragazzo/ragazza.

0

La programmazione consiste nell'essere pigri, nell'automazione di operazioni ripetitive. Se non puoi farlo nella tua lingua, usare generatori di codice e cose simili è una soluzione utile.

2

Penso che sia la domanda sbagliata. La pigrizia è una virtù. Ho visto troppi programmatori che fanno le cose nel modo più duro, piuttosto che sedersi e pensare per qualche minuto a trovare un modo più semplice. Ho avuto così tante volte che ho detto a un programmatore junior qualcosa con l'effetto di "Sì, rispetto la tua diligenza nel lavorare con il pranzo e stare in ritardo a scrivere il codice per fare X, ma se avessi preso alcuni minuti per verificare la documentazione che potresti aver visto che esiste già una funzione nella libreria che lo fa ". O storie simili.

Non ho dimestichezza con gli strumenti specifici che lei descrive, ma per me, la questione è sempre, fa questo strumento in realtà a salvare qualsiasi lavoro? Ho provato un sacco di "generatori di codice" che fondamentalmente creano solo stub di codice. Quindi, grazie, hai scritto la "funzione x (int, float)", ora tutto ciò che devo è compilare i nomi dei parametri effettivi e scrivere il codice. Cosa mi ha salvato? Ho anche visto un sacco di generatori di codice che scrivono codice veramente terribile. Quindi ora devo provare ad aggiungere il codice "personalizzato" a questo pasticcio confuso. Non sarebbe stato più semplice scrivere semplicemente l'intera cosa per la prima volta? Ho visto un sacco di strumenti di produttività in cui ho scoperto che mi ci vuole più tempo per impostare i parametri per eseguire lo strumento di quanti ne ho effettivamente utilizzati. (Come nella vecchia battuta, è stato dimostrato che fare jogging regolarmente ti fa vivere più a lungo: ogni 60 minuti che passi a fare jogging, aggiunge 30 minuti alla tua vita.) Alcuni strumenti possono produrre codice o strutture dati o qualsiasi altra cosa difficile da mantenere, quindi oggi risparmi un'ora ma ti costa 10 ore di manutenzione per tutta la durata del progetto. Ecc

La mia conclusione non è che non si dovrebbe usare gli strumenti di produttività, ma piuttosto che si dovrebbe fare in modo che in realtà stanno aumentando la produttività, e non solo dando l'illusione di farlo. Se nel tuo caso trovi che questi strumenti ti aiutano davvero, allora usarli non significa "barare", è semplicemente intelligente.

+0

Risposta molto ben scritta! –

0

Dipende da cosa stai scrivendo, ovviamente. Sono sorpreso che nessuno l'abbia inventato. Se stai scrivendo driver di dispositivo, sistemi operativi, protocolli o software server (server Web, server TCP, ecc.), Dovresti farlo a mano.

Ma con quello che faccio e probabilmente ciò che molti di noi fare è implementare processi di business nel codice per le pagine web o servizi web. E in quelle aree, se riesci a migliorare il tuo codice con i generatori di codice, fallo.

0

Sì, sei uno sviluppatore pigro, sii onesto con te stesso, se ti prendi il tempo di farlo nel modo più duro puoi definirti meno pigro di quello che sei ora.

Il punto è che essere pigri non è affatto inefficiente. I pigri prendono tempo per guardare i problemi da una direzione diversa prima di agire su di essi, questo evita errori inutili che ti fanno risparmiare tempo prezioso.

Quindi sei pigro, ma va bene. Le persone non assumono programmatori iperattivi che fanno 10 applicazioni al giorno, ma lasciano una scia di bug sul loro percorso. bug-fixing costa tempo, tempo è denaro.

conclusione: Pigrizia = profitto

andare per esso.

0

Penso che i migliori sviluppatori siano anche i più pigri. Fondamentalmente, tutto quello che stai facendo dovrebbe essere focalizzato sull'ottenere il risultato finale con la minor quantità di lavoro. Questo spesso fornisce il miglior risultato ed evita anche che gli sviluppatori vengano distratti da cose divertenti da includere in un progetto. Uno sviluppatore pigro potrebbe ad es. non aggiungere mai un uovo di Pasqua al suo codice, semplicemente perché questo sarebbe più codice, che potrebbe introdurre più bug che devono essere corretti in seguito. L'aggiunta di codice non è buona, dal momento che si aggiungono anche altri bug che è necessario risolvere in seguito. Tuttavia, dovrai aggiungere il codice, altrimenti non verrai pagato. Quindi, in qualità di sviluppatore pigro, sceglieresti naturalmente il codice più ottimizzato, il codice più collaudato che non fallirebbe quasi mai e dovresti lavorare in modo che la possibilità di errori sia ridotta al minimo.

Tieni presente che gli sviluppatori pigri dovrebbero concentrarsi su come evitare il lavoro in futuro, non evitando di lavorare in questo momento! Quindi smetti di leggere qui e torna al lavoro! ;-)

2

Come già indicato da tutti, non c'è niente di sbagliato nell'uso dei generatori di codice.

Ancora posso vedere i lati negativi e le ragioni per evitarlo in certe sedute particolari.

  • scelta della lingua. A volte lo stesso fatto che hai bisogno di un generatore di codice per avviare la codifica potrebbe implicare che stai usando la lingua errata per l'attività. La maggior parte delle volte non è possibile scegliere la lingua, quindi i generatori di codice restano la soluzione migliore.

  • ridondanza codice. A seconda dei generatori effettivi utilizzati, il codice generato potrebbe essere ridondante, se ciò accade e la generazione avviene una volta, non è automatizzata e il codice generato va nel repository principaleproblemi di manutenzione potrebbero verificarsi nel lungo periodo. Non proprio un problema con la generazione del codice stesso, ma con il modo in cui dovrebbe e non dovrebbe essere usato.

  • aggiunta dei requisiti delle piattaforme di sviluppo. Dobbiamo concedere molti programmatori là fuori a lavorare su pane-tostapane che raddoppiano come PC. È davvero una brutta, (e triste) realtà di pratiche commerciali poco costose che incontrano menti acute. (le menti acide vanno sprecate nel processo) Potrebbe diventare una preoccupazione se il nostro progetto (che potrebbe avere una porta in serbo per il futuro, e in una struttura esterna) abbia bisogno di un pesante guadagno, non abbastanza cross platform, IDE utile per compilare ogni piccola modifica.

Quindi, nessuna risposta definitiva sul codice che genera pigrizia e programmazione: dipende. Poi di nuovo, usare gli strumenti sbagliati per il lavoro fa male alla salute (e alle imprese) quindi ... no.

1

La programmazione è principalmente un esercizio di pensiero, non di battitura a macchina. Finché capisci cosa stanno facendo gli strumenti, stai spostando l'equilibrio dal digitare al pensiero. Fai di più di ciò che il tuo lavoro è? Non sembra pigro per me!

Problemi correlati