Le pratiche del "codice pulito" sono davvero così pulite e utili? [chiuso]

11

Attualmente sto facendo uno stage in una grande azienda e stanno subendo molti cambiamenti nella struttura di consegna del software (passaggio ad Agile).

Negli ultimi due mesi ho notato questo attaccamento religioso alle pratiche Clean Code e il libro è come una bibbia per gli sviluppatori.

Ora, una delle caratteristiche più importanti del codice pulito è il codice autoesplicativo basato su nomine comprensibili e un rigoroso ri-factoring. Questo è seguito dalla regola no commenting .

Comprendo che questo codice pulito è un investimento a lungo termine che faciliterà la manutenzione e il miglioramento del codice, ma ... vale davvero tutto questo clamore?

Qualcuno potrebbe condividere la propria esperienza su Clean Code e qualsiasi opinione se sono troppo conservatore o è solo una tendenza temporanea.

    
posta Arturs Vancans 04.08.2013 - 16:33
fonte

2 risposte

17

I understand that this clean code is a long term investment which will ease following code maintenance and improvement, but... is this really worth all this fuss?

Assolutamente.

Re-factoring is very important, but spending 75% of your time moving the methods and spending loads of time to decide its proper title does not seem to be that productive.

Certo, ma considera che la grande azienda probabilmente ha anni o decenni di codice cattivo da ripulire. Ci vorrà un sacco di tempo e sforzi per farlo.

La cosa principale da capire è che hai entrambi ragione. "codice pulito" è molto importante e Clean Code è un modo universalmente rispettato per arrivarci. Dal momento che la società ha appena iniziato il percorso, saranno più legati al libro più di un gruppo che ha più esperienza. Dopo averlo fatto per un po ', inizieranno a imparare cosa funziona e cosa no. Una volta che lo hanno capito meglio, (si spera) seguiranno un approccio più pragmatico e naturale che mantiene il codice pulito, ma non porta a 70 nomi di funzioni char.

    
risposta data 04.08.2013 - 18:04
fonte
4

In origine stavo scrivendo un commento. Cercherò di dare meno di una risposta rispetto alle prospettive da considerare. Tuttavia, sostengo in modo assoluto le pratiche di "codice pulito" come la nomenclatura e il refactoring comprensibili.

Non ho mai apprezzato le regole senza commenti , in quanto vi sono casi in cui i commenti sono necessari per evitare la rottura futura del codice. Normalmente dovrebbero essere limitati a ciò che viene fatto e perché. Usale con parsimonia quando il codice sta facendo qualcosa di inaspettato o è necessario sostituire un algoritmo.

Considera la produttività quando leggi o mantieni il codice. Nella vita del codice, questo potrebbe essere più importante della produttività quando si scrive il codice. Queste pratiche aiuteranno la produttività in questi compiti?

Con l'esperienza, queste pratiche dovrebbero diventare radicate e meno un killer della produttività. Scegliere il nome giusto potrebbe richiedere più tempo perché stai chiarendo che cosa deve fare il codice. (Questo chiarimento potrebbe rendere la codifica e il debugging più veloci.) Ciò comporta un codice che fa solo ciò che è richiesto o che ha meno bug? Che effetto ha sulla produttività?

Il tempo impiegato nella scelta del giusto nome del metodo probabilmente ripagherà immediatamente per capire meglio quale sia lo scopo del metodo. Confronta i nomi dei metodi "iterateOverCustomers" in "locateActiveCustomers". Quale trasmette l'intento della funzione? Quale sarà più facile da refactare se necessario?

    
risposta data 04.08.2013 - 17:36
fonte

Leggi altre domande sui tag