Odiando il tuo codice - nel bene o nel male, come lo gestisci? [chiuso]

7

Hai mai avuto la sensazione che il tuo codice sia cattivo, l'intero progetto è un disastro e vuoi solo scendere? Nel tuo lavoro quotidiano puoi spiegare questo sentimento con i tuoi colleghi, capo stronzo o qualcosa del genere. Ma con i progetti side / pet non c'è davvero nessuna scusa.

Ad esempio, attualmente sto mantenendo la mia estensione per Firefox, correggendo bug e aggiungendo nuove funzionalità. Abbastanza spesso quando torno al codice scritto mesi fa i sentimenti che sorgono dentro di me sono piuttosto controversi: "Ho scritto che? Davvero ??" Sapendo che la corretta implementazione della nuova funzionalità "nel modo giusto" richiede di buttare via l'intero modulo e ancora mettere insieme una rapida modulazione - a volte non esito nemmeno.

Man mano che il progetto cresce, le funzionalità vengono aggiunte e rimane meno spazio per il refactoring ...

Hai qualche ricetta per affrontare questo tipo di stato emotivo? Ti ritrovi e dai un altro pensiero a tutto il progetto, riscrivi la versione 2? O forse semplicemente ignora tutto questo: "codice funzionante è meglio di un codice perfetto"?

    
posta ak0 26.03.2013 - 02:03
fonte

4 risposte

5

Non odiare. I programmatori di secondo livello odiano. Gli artigiani guardano il codice senza coinvolgere l'ego. Il codice non è un riflesso di chi sei. È un mezzo per un fine. Cerca di imparare dagli errori del passato e prova a non ripeterli, ma non puoi farlo se tutto ciò a cui stai pensando è quanto sei uno schifoso coder. Quindi non essere un nemico, non essere un programmatore di secondo livello. Sii un artigiano.

    
risposta data 26.03.2013 - 05:08
fonte
6

Da quello che stai dicendo, sembra che tu abbia accumulato un debito tecnico.

Penso che tutti abbiano pensato "l'ho scritto io". Suggerisco quanto segue per fare quello che puoi per migliorarlo:

  • Refactor dove possibile
  • Assicurati che il tuo nome sia coerente
  • Formatta il codice per renderlo più leggibile
  • Aggiungi un peppering di commenti se ne ha bisogno

prendilo a pezzi quando ti imbatti in ciò di cui sei infelice.

Do you have any recipes for dealing with this kind of emotional state? Do you just pull yourself together and give the whole project another thought, rewrite version 2? Or maybe just ignore all this - "working code is better than perfect code"?

Penso che molte persone abbiano questi sentimenti. Devi passare oltre e ricordare che è "solo codice" e funziona per te, non viceversa.

Il mio consiglio da quello che hai detto è di prendere alcuni giorni e refactoring e riscrivere ciò che non sei soddisfatto prima di aggiungere funzionalità o correggere bug.

    
risposta data 26.03.2013 - 02:16
fonte
3

Come già detto, hai accumulato debito tecnico. Il refactoring può essere un buon strumento, ma può anche essere abusato. Al limite, puoi refactificare tutti 1 s nel tuo codice in una costante di interfaccia denominata Constants.ONE . Un esempio forzato, ma che serve a mettere in guardia contro il refactoring come una pallottola d'argento. Ciò che realmente cercate è il contenimento del debito tecnico. Mantieni un'architettura di alta qualità e scoprirai che il tuo casino, anche se sempre presente nel tuo codice, rimane confinato in un determinato modulo e spesso è fuori dalla tua vista. Questa consapevolezza mi aiuta sempre a godermi il mio codice.

Non so a che ritmo si evolvono le tue tecniche di programmazione, ma quando mi accorgo di aver scritto un codice errato non è perché sto vedendo improvvisamente un modo migliore per risolvere un problema. Al giorno d'oggi, non apprendo più molto in termini di tecniche di programmazione - che siano buone o cattive, le mie tecniche sono più o meno consolidate. È più probabile che riconosca il mio codice errato non appena lo scrivo. Potresti scrivere il codice con la mentalità sbagliata se ti rendi conto in seguito degli hack. La qualità del codice potrebbe non essere una preoccupazione nel momento in cui la scrivi, forse perché la scrivi sotto pressione.

Codice al massimo livello che riesco anche per cose come le estensioni di Chrome. Posso stare tranquillo che, a causa della separazione architettonica, finisco per godere della maggior parte del mio codice, perché rimane concentrato e coeso. Ho notato una tendenza al contrario nei colleghi sviluppatori, in particolare sviluppatori Java o .NET, che a volte pensano a Javascript come una lingua minore e si limitano a combinare il codice più veloce che possono scrivere. Ho imparato la lezione fin dal liceo, quando il mio insegnante di informatica mi ha detto quando ero seduto al mio computer per sistemare il mio schifoso programma: "tutti i programmi valgono la pena di essere salvati". Quella mentalità mi ha dato un rispetto per tutti i programmi che scrivo, anche script usa e getta o istruzioni SQL, che meritano commenti e variabili nominate correttamente. Raccomando caldamente di provare questa mentalità, e ti divertirai molto di più con i tuoi programmi.

    
risposta data 26.03.2013 - 03:43
fonte
1

Ottima domanda e posso sentire il tuo dolore e le tue emozioni perché sono stato coinvolto nello stesso scenario pochi mesi fa. Inizialmente ero così sconvolto e frustrato e mi sentivo così male a pulire il casino di qualcuno che mi sono chiesto più volte "che diavolo sto facendo? Non ce la faccio più ... "ma improvvisamente un ottimo suggerimento è stato licenziato dalla mia mente frustrata e come da quell'idea ho creato un file XLS con alcuni errori comuni e le loro occorrenze regolari e poi definito priorità a questi elementi pubblicitari in modo da poter eseguire tutte le operazioni di pulizia in modo gestito. Durante l'implementazione, la mia mente ha cercato di tirarmi indietro dicendo che questa idea non funzionerà anche questa è una cazzata, ma entro 2 giorni il numero di linee nella XLS ha raggiunto il conteggio sano di 40 e dopo aver osservato quei 40 elementi pubblicitari in una volta ho trovato degli ottimi standard di codifica che ogni sviluppatore dovrebbe seguire nelle loro pratiche di codifica quotidiane perché conoscere un concetto è diverso ma implementare quel particolare concetto È fantastico come "INIZIALIZZAZIONE DEL LAZY". So che questo concetto o l'intero team di sviluppo conosce questo concetto ma nessuno lo segue o lo implementa. Quei 40 elementi pubblicitari mi hanno motivato molto e quelli che ti hanno motivato nel processo di apprendimento e scoprirai che questa volta sprecare attività di pulizia in realtà ha spazzato via le tue capacità di codifica e ricorderai sempre alcuni dei errori comuni fatti da qualsiasi programmatore e anche tu troverai idee e suggerimenti fantastici per i tuoi progetti futuri e la loro implementazione così indirettamente stai imparando dagli errori di qualcuno. Stai lavorando per i mezzi di beneficio dell'organizzazione oltre ai tuoi valori morali personali.

Spero che questo ti possa aiutare. Acclamazioni

Grazie

    
risposta data 26.03.2013 - 06:43
fonte

Leggi altre domande sui tag