Devo seguire un cattivo stile di codifica solo per seguire le convenzioni stabilite sul mio posto di lavoro?


102

Lavoro nel mio lavoro da circa un anno. Lavoro principalmente nella nostra interfaccia GUI che utilizza metodi da un backend C, ma in genere non devo gestirli ad eccezione dei valori restituiti. La nostra GUI è strutturata in modo abbastanza ragionevole, dati i nostri limiti.

Mi è stato assegnato il compito di aggiungere una funzione alla parte della riga di comando del programma. Molte di queste funzioni sono lunghe 300 linee e difficili da usare. Sto cercando di raccoglierne pezzi per ottenere informazioni specifiche sull'allarme e ho problemi a tenermi organizzato. So che sto rendendo i miei test più complicati eseguendoli in un'unica lunga funzione.

Devo semplicemente tenere tutto in una funzione enorme secondo lo stile delle funzioni esistenti o devo incapsulare gli allarmi nelle loro stesse funzioni?

Non sono sicuro se sia appropriato andare contro le attuali convenzioni di codifica o se dovrei solo mordere il proiettile e rendere il codice un po 'più confuso per me stesso da scrivere.

In sintesi, sto confrontando

showAlarms(){
    // tons of code
}

contro

showAlarms(){
   alarm1();
   alarm2();
   return;
}

alarm1(){
    ...
    printf(...);
    return;
}

EDIT: Grazie per il consiglio a tutti, ho deciso che ho intenzione di progettare il mio codice factored, e quindi chiedere quello che vogliono, e se lo vogliono tutto in uno posso solo tagliare dal mio codice factored e trasformarlo in 1 grande funzione. Questo dovrebbe permettermi di scriverlo e testarlo più facilmente anche se lo vogliono tutto il codice in una singola definizione.

AGGIORNAMENTO: Hanno finito per essere felici con il codice fattorizzato e più di una persona mi ha ringraziato per aver impostato questo precedente.


117
È altamente dubbio che la società per cui lavori prenda la posizione che le tue funzioni dovrebbero essere lunghe 300 righe perché "è così che l'abbiamo sempre fatto". Non si tratta di "convenzioni di stile di codifica;" è solo un cattivo stile.
Robert Harvey,

64
Questo è il tipo di cose che dovresti discutere con gli altri membri del tuo team, per capire quali pratiche vedi sono convenzioni che considerano importanti da seguire per tutti, e quali sono le cose che qualcuno ha appena fatto una volta e che tu no bisogno di emulare. Non ci sarà alcun dubbio su entrambi.
Servito il

17
@beginnerBinx Questo dipende solo da come lo pronunci. Non ditelo come "X sta facendo qualcosa di veramente stupido, devo anche fare quella cosa stupida." ma piuttosto come qualcosa del tipo, "Noto che X sta facendo questa cosa, c'è un motivo particolare per cui lo fa così; sarebbe un problema se non facessi la stessa cosa quando scrivo Y?" Diventa quindi la loro decisione se colpire il vecchio codice o spiegare perché hanno dovuto farlo in quel modo (che sia a malincuore o con entusiasmo).
Servito il

11
Lo stile buono o cattivo è spesso discusso e concordato di rado. L'insegnamento universitario è che le funzioni dovrebbero essere brevi ma se ciò oscura il significato, non farlo. Il test dovrebbe essere di chiarezza, piuttosto che seguire senza pensare una serie di regole.
quick_now

9
Le persone casuali su Internet non possono non leggere i tuoi compagni di squadra, quindi tutte le risposte che ottieni qui sono solo le preferenze personali delle persone. Dovresti parlare con la tua squadra. La funzione lunga è un principio progettuale deliberato? Vorrebbero che tu continuassi lo stile della funzione lunga o che tu scriva ciò che ritieni più pulito?
Jacques B

Risposte:


102

Questo è davvero tra te e i tuoi compagni di squadra. Nessun altro può dirti la risposta giusta. Tuttavia, se posso osare leggere tra le righe, il fatto che tu chiami questo stile "cattivo" fornisce alcune informazioni che suggeriscono che è meglio prenderlo lentamente. Pochissimi stili di codifica sono in realtà "cattivi". Ci sono quelli che non userei io, ma hanno sempre una rima o una ragione per loro. Ciò suggerisce, per me, che c'è di più nella storia di quanto tu abbia visto finora. Chiedere in giro sarebbe una chiamata molto saggia. Qualcuno potrebbe sapere qualcosa che tu non sai.

Mi sono imbattuto in questo, personalmente, durante la mia prima incursione nella codifica mission-critical in tempo reale. Ho visto il codice in questo modo:

lockMutex(&mutex);
int rval;
if (...)
{
    ...
    rval = foo();
}
else
{
    ...
    rval = bar();
}
unlockMutex(&mutex);
return rval;

Essendo lo sviluppatore OO C ++ brillante e brillante che ero, li ho immediatamente chiamati fuori sui rischi di bug che avevano bloccando e sbloccando manualmente i mutex, piuttosto che usare RAII . Ho insistito sul fatto che era meglio:

MutexLocker lock(mutex);
if (...)
{
    ...
    return foo();
}
else
{
    ...
    return bar();
}

Molto più semplice ed è più sicuro, giusto ?! Perché richiedere agli sviluppatori di ricordare di sbloccare i loro mutex su tutto il percorso del flusso di controllo quando il compilatore può farlo per te!

Bene, quello che ho scoperto in seguito è che c'era una ragione procedurale per questo. Abbiamo dovuto confermare che, sì, il software ha funzionato correttamente e che c'era un elenco finito di strumenti che ci era permesso usare. Il mio approccio potrebbe essere stato migliore in un ambiente diverso, ma nell'ambiente in cui stavo lavorando, il mio approccio avrebbe facilmente moltiplicato la quantità di lavoro coinvolta nella verifica dell'algoritmo dieci volte perché ho appena portato un concetto C ++ di RAII in una sezione di codice che era tenuto agli standard che erano davvero più suscettibili al pensiero in stile C.

Quindi quello che sembrava uno stile di codifica cattivo, decisamente pericoloso, per me era in realtà ben pensato e la mia "buona" soluzione era in realtà quella pericolosa che avrebbe causato problemi lungo la strada.

Quindi chiedi in giro. C'è sicuramente uno sviluppatore senior che può lavorare con te per capire perché lo fanno in questo modo. Oppure, c'è uno sviluppatore senior che può aiutarti a capire i costi e i benefici di un refattore in questa parte del codice. Ad ogni modo, chiedi in giro!


60
Probabilmente la parte più pericolosa dell'esempio mutex è l'apparente mancanza di commenti sul codice che spiegano perché non è possibile utilizzare RAII. Certo, se questo blocco / sblocco esplicito si trova su tutta la base di codice, potrebbe essere ingombrante aggiungere un commento per ogni istanza. In tal caso, forse un documento di primer dovrebbe essere scritto che i nuovi sviluppatori devono conoscere.
Kelvin,

10
Certo, parlare sempre con un anziano è sempre positivo e il refactoring deve essere eseguito con cura (e test). E, naturalmente, la concorrenza / mutex sono una bestia speciale per conto proprio. Ma quando vedo le funzioni con> 300 linee, non vorrei investire troppo tempo nella ricerca di una "ragione tecnica nascosta" per cui queste funzioni sono troppo grandi. Il motivo per cui le funzioni diventano troppo lunghe sono sempre le stesse e non sono tecniche.
Doc Brown,

8
@DocBrown Solo perché non sono tecnici non significa che non siano ragioni. È importante che gli sviluppatori ricordino che fanno parte di una macchina più grande. (Non riesco a contare il numero di volte in cui ho dovuto riapprendere quella lezione)
Cort Ammon,

4
@DocBrown Ad ogni modo, è con gli sviluppatori senior che si dovrebbe parlare. Ho scelto l'esempio che ho fatto perché è facile trovare innumerevoli argomenti sul perché lo stupido codice sia stupido. Trovare gli argomenti per cui il codice che sembra stupido in realtà non è stupido è più difficile.
Cort Ammon,

3
@DocBrown Dai tuoi commenti e risposte, penso di poter dire che la differenza delle nostre opinioni è che stai partendo dal presupposto che il codice è già "cattivo", in base alle prove che ti sono state fornite, mentre preferirei prendere percorsi che esplorano se il codice è o meno "cattivo" per primo.
Cort Ammon,

84

Sinceramente, credi che avere funzioni difficili da usare, con 300 linee, sia solo una questione di stile? Quindi seguire il cattivo esempio potrebbe mantenere uno stato migliore del programma generale a causa della coerenza? Immagino che tu non ci creda, altrimenti non avresti fatto questa domanda qui.

La mia ipotesi è che queste funzioni siano così lunghe perché nella nostra attività ci sono molti programmatori mediocri che si limitano a sovrapporre funzionalità a funzionalità, senza preoccuparsi di leggibilità, qualità del codice, denominazione corretta, unit test, refactoring e non hanno mai imparato a creare astrazioni adeguate . Devi decidere tu stesso se vuoi seguire quel branco o se vuoi essere un programmatore migliore.

Addendum, a causa dei commenti: "300 righe" e "difficile da usare" sono forti indicazioni IMHO per codice errato. Per la mia esperienza è molto improbabile che esista un "motivo tecnico nascosto" per cui tale codice non può essere implementato in modo più leggibile, paragonabile all'esempio della risposta di Cort Ammon. Tuttavia, sono d'accordo con Cort che dovresti discuterne con i responsabili nel team - non per trovare oscuri motivi per cui il codice o questo "tipo di stile" non può essere modificato, ma per scoprire come il codice può essere refactored in modo sicuro senza rompere le cose .


127
Anche i programmatori competenti commettono questi crimini quando sono in tempi stretti.
gardenhead,

13
@gardenhead, posso capire di non refactoring di una funzione a 300 righe per risparmiare tempo, ma non è possibile che scrivere una funzione a 300 righe ti farà risparmiare tempo.
Dangph,

39
@gardenhead: quando vado da un chirurgo perché ho bisogno di un aiuto urgente, mi aspetto ancora che si prenda il tempo di lavarsi le mani prima che inizi a esibirsi su di me. Questo è qualcosa che molte persone devono imparare nel nostro business per raggiungere una vera competenza: lasciare sempre il codice in uno stato migliore rispetto a prima, e questo migliorerà anche la capacità di rispettare le scadenze. Le funzioni di 300 linee in genere crescono di giorno in giorno, da parte di persone a cui non importa, e useranno sempre "la scadenza" come scusa.
Doc Brown,

17
@Dangph consente di risparmiare tempo quando si aggiungono solo 5 righe alla funzione invece di refactoring. Quelli di solito crescono quando la funzione iniziale è lunga (oltre 30 righe) e il programmatore successivo pensa "questo non è il mio codice, non rifatterò per non romperlo, basta aggiungere alcune righe qua e là".
Džuris,

7
@Juris, a quanto ho capito, la domanda riguarda la creazione di una nuova funzione, non il refactoring di quelli esistenti. Se stai scrivendo una nuova funzione, non risparmierai tempo trasformandola in una singola funzione mostro.
Dangph,

42

No.

Nel libro Pragmatic Programmer l'autore parla della teoria della finestra rotta .

Questa teoria afferma:

Prendi in considerazione un edificio con alcune finestre rotte. Se le finestre non vengono riparate, i vandali tendono a rompere qualche finestra in più. Alla fine, potrebbero persino irrompere nell'edificio e, se non è occupato, potrebbero diventare abusivi o fuochi leggeri all'interno.

O considera un marciapiede. Si accumulano alcuni rifiuti. Presto si accumulano più rifiuti. Alla fine, le persone iniziano persino a lasciare sacchi di rifiuti dai ristoranti da asporto lì o addirittura irrompono in auto.

Nel libro l'autore scrive un parallelo tra questa teoria e questo codice. Una volta trovato un codice come questo, ti fermi e ti poni la stessa domanda.

E la risposta è: No.

Una volta che lasci questa finestra rotta - nel nostro caso, codice errato - questo creerà l'effetto che tutti lasceranno indietro le finestre rotte.

E un giorno il codice si aprirà.

Dai una copia di Clean Code e Clean Coder a tutti.

E mentre sei nell'argomento, anche una copia di TDD è buona.


6
E se la base di codice fosse una serra con nient'altro che finestre rotte?
Alan Shutko il

8
@AlanShutko Quindi assicurati che il tuo curriculum sia aggiornato? Trova un datore di lavoro diverso ora .
David Montgomery,

12
Il codice raramente "collassa". È sempre più difficile aggiungere nuove funzionalità, richiede sempre più tempo e le stime per ripulire il codice aumenteranno, il che significa che diventa ancora più difficile ottenere un budget di tempo per la pulizia necessaria.
Doc Brown,

8
Caspita, che analogia arbitraria sembra essere la teoria della "finestra rotta".
Samthere,

4
TDD non c'entra niente. Sia che tu vada, la progettazione di driver Business / Dominio / Test / Nothingness che non cambia nulla di segue le basi del codice pulito. Ci dispiace ma è davvero stancante vedere 'TDD' citato ovunque dove non è nemmeno nell'argomento
Walfrat,

25

Sì, provaci. Struttura! = Stile

Stai parlando di struttura, non di stile. Le linee guida di stile non prescrivono (di solito) la struttura, poiché la struttura viene generalmente scelta per la sua adeguatezza per un problema specifico, non per un'adeguatezza a un'organizzazione.

Stai attento

Sii dannatamente sicuro di non causare conseguenze negative in altre aree che potrebbero non esserti verificate. Per esempio,

  • Assicurati di non complicare le differenze o le fusioni di codice perché hai annullato qualsiasi somiglianza con il codice esistente.
  • Assicurati che i flussi di eccezioni si riempiano correttamente e che le tracce dello stack non siano inquinate con un enorme mucchio di assurdità illeggibili.
  • Assicurati di non esporre accidentalmente punti di ingresso pubblici che potrebbero causare problemi se chiamati direttamente (non inserirli nella mappa e / o non esportarli).
  • Non ingombrare lo spazio dei nomi globale, ad esempio se le funzioni più piccole richiedono tutte una sorta di contesto globale precedentemente dichiarato nell'ambito della funzione locale.
  • Assicurati di guardare qualsiasi registro e chiediti se eri nel team di supporto se i registri generati dal tuo codice sarebbero confusi se visti intrecciati con i registri di qualsiasi codice che non tocchi.
  • Assicurati di non aderire a stile esistente, ad esempio, anche se non stanno usando vecchia scuola la notazione ungherese e fa sanguinare gli occhi, rimanere in linea con il codice di base generale. L'unica cosa più dolorosa della lettura della notazione ungherese è la lettura del codice che utilizza una dozzina di diversi tipi di notazione a seconda di chi ha scritto cosa.

Sii gentile

Ricorda che fai parte di una squadra e, sebbene il buon codice sia importante, è anche molto importante che i membri della tua squadra siano in grado di mantenere le cose che hai scritto quando vai in vacanza. Cerca di attenersi a un flusso che avrà senso per le persone che sono abituate al vecchio stile. Solo perché sei il ragazzo più intelligente nella stanza non significa che dovresti parlare sopra la testa di tutti!


"Cerca di attenersi a un flusso che avrà senso per le persone che sono abituate al vecchio stile." - allora, il tuo consiglio è di programmare allo stesso modo di qualunque pagliaccio incompetente abbia fatto prima? L'aggiunta della funzione 300 linee non renderà più semplice.
BЈовић,

11
Non ho detto di attenermi a un flusso simile. Ho detto attenersi a un flusso che capiranno.
John Wu,

2
Buon Consiglio. Quando ho riformulato un singolo comando in 5 funzioni in questa risposta, ho modificato in modo sottile la semantica pre-calcolando i valori all'interno di un'espressione logica che originariamente era calcolata solo in modo condizionale. I revisori lo hanno colto però ;-). Il consiglio serio è di rivedere e testare a fondo. Ogni modifica può introdurre errori e questa potrebbe essere la ragione principale per cui nessuno li ha commessi.
Peter A. Schneider,

6

Non lo vedo come una convenzione di codice. Vedo questo come qualcuno che non capisce come scrivere codice gestibile che sia facile da capire. Vorrei suddividere il codice in diverse funzioni mentre suggerisci ed educi il tuo team sui vantaggi di farlo mentre provo a capire perché ritengono che le funzioni a 300 righe siano accettabili. Sarei molto interessato a sentire il loro ragionamento.


1
" Non c'è motivo, è solo la nostra politica. "

5

La risposta è nella revisione del codice.

La vera domanda è se trasformi un codice ben ponderato, sarai l'unico disposto a lavorarci?

Come la maggior parte delle persone qui, credo che le funzioni di 300 linee siano un abominio. Tuttavia, portare Windex in una discarica non farà molto bene. Il problema non è il codice, sono i programmatori.

Solo avere ragione non è abbastanza. Devi vendere persone con questo stile. Almeno leggendolo. Se non lo fai finisci come questo povero ragazzo: licenziato perché le tue abilità sono troppo al di sopra dei tuoi colleghi

Inizia in piccolo. Chiedi in giro e scopri se qualcun altro favorisce le funzioni più piccole. Meglio ancora curiosare nella base di codice e vedere se riesci a capire chi scrive i più piccoli (potresti scoprire che il codice più brutto è il codice più vecchio e gli attuali programmatori stanno scrivendo un codice migliore). Parla con loro di questo e vedi se hai un alleato. Chiedi se conoscono qualcun altro che si sente allo stesso modo. Chiedi se conoscono qualcuno che odia le piccole funzioni.

Riunisci questo piccolo gruppo e parla delle modifiche. Mostra loro il tipo di codice che desideri scrivere. Assicurati che possano leggerlo. Prendi sul serio tutte le obiezioni. Apporta le modifiche. Ottieni il tuo codice approvato. Ora hai il potere di un incontro alle tue spalle. Alcuni di questi e puoi produrre un documento di una pagina che accetta esplicitamente il nuovo stile che hai introdotto.

Le riunioni sono cose sorprendentemente potenti. Possono produrre influenza. Clout è ciò che userete per combattere coloro che si oppongono a questo movimento. Ed è quello che è a questo punto. Un movimento. Stai lottando per il diritto di migliorare lo status quo. Le persone temono il cambiamento. Avrai bisogno di dolci chiacchiere, cajole e prod. Ma con un po 'di fortuna trasformerai l'essere giusto in essere accettato.


5
Se ci vogliono così tante socializzazioni e incontri multipli per convincere gli sviluppatori che un metodo a 300 linee è troppo lungo, allora non credo che parlare sarà di aiuto. Il problema con l'approccio sopra è che se chiedi il permesso di scrivere un buon codice, sei sulla difensiva. Ma se scrivi semplicemente un buon codice e prendi il tempo per refactificare il codice esistente, allora chiunque si opponga alla difensiva per spiegare perché un metodo a 300 righe è buono e per giustificare passare il tempo a rimetterlo.
Brandon,

3
Posso dirti che se fossi stato invitato a una serie di riunioni per discutere le linee di codice per limiti di funzione, avrei trovato un modo per sfuggire a tali riunioni. Non esiste un numero corretto e non riuscirai mai a convincere le persone. A volte, le persone devono essere mostrate in un modo migliore.
Brandon,

A volte, suddividere un'enorme funzione (e dare un nome migliore alle cose e aggiungere commenti e documentazione, come ho capito, è il primo passo necessario prima di effettuare un cambiamento con sicurezza.
JDługosz,

@Brandon Probabilmente non intendi che suoni in questo modo, ma quello che sento è che hai ragione e tutti gli altri possono semplicemente affrontarlo. Finché il tuo codice funziona, non importa se il resto del team non lo capisce. Certamente non vale la pena perdere tempo a insegnare loro qualcosa. Sei perfettamente felice di vederli continuare a creare 300 funzioni di linea mentre scrivi il codice a modo tuo.
candied_orange,

1
@CandiedOrange Non intendevo certo andare contro la squadra. Ciò che intendevo era che alcuni argomenti venivano appresi meglio vedendoli in azione, ma cercare di convincere una squadra a prendere una decisione democratica sullo stile non sarebbe produttivo. Ho visto la coerenza usata come scusa per scrivere codice illeggibile. Risultato? Codice più illeggibile. Potrei organizzare una serie di incontri per parlarne, oppure potrei semplicemente ripararlo, e quindi mostrare alla gente i risultati.
Brandon,

3

A volte devi seguire il flusso.

Come hai detto, ti è stato assegnato il compito di implementare una funzione in una base di codice di lavoro esistente.

Indipendentemente dal disordine, e capisco che è allettante tentare di ripulirlo. ma nel mondo degli affari non hai sempre la possibilità di refactificare il codice.

Direi semplicemente fai quello che ti è stato chiesto di fare e andare avanti.

Se ritieni che valga la pena eseguire il refactoring o la riscrittura di quanto sia necessario per metterlo in discussione con il team.


2
Se chiedi il permesso per ogni piccolo refactoring, avrai per sempre un codice non mantenibile, il che è pericoloso per un'azienda. I manager guardano solo al costo di una modifica, ma raramente guardano al costo di non cambiare.
Brandon,

5
OP è stato chiesto di scrivere una funzione non modifica centinaia di righe di codice
meda

2
@meda esattamente! Sono praticamente nella stessa situazione. Sto sviluppando nuovi moduli per la intranet aziendale e sto trovando quelli che potrebbero essere descritti come "anni di abbandono irreparabili", con software server e librerie che non vengono aggiornati dal 2006. Non dovrei pulire questo casino , ma mi ci vuole più tempo per programmare a causa delle limitazioni. (Immagina MySQl 5.2, MySQL 5.0). Non riesco ad aggiornare nulla perché probabilmente il codice esistente non verrà eseguito su versioni più recenti a causa del codice obsoleto.
roetnig,

3
"Se non è rotto, non aggiustarlo." Ho un'auto di 20 anni che perde un po 'd'olio. Vale la pena spendere soldi? No. affidabile? Sì.

3

Prima di affermare che le pratiche sono cattive, vorrei prima fare un passo verso la comprensione della ragione di grandi metodi e altre pratiche che potrebbero rivelarsi cattive.

Quindi, dovresti assicurarti che la copertura del test sia abbastanza alta o molto alta (per quanto puoi prendere senza un grande refactoring). In caso contrario, lavorerei per rendere la copertura molto elevata anche se non hai scritto il codice. Questo aiuta a costruire un rapporto e il tuo nuovo team ti prenderà più sul serio.

Una volta che hai coperto queste basi, nessuno nella loro mente giusta ti sfiderebbe. Come elemento bonus, esegui alcuni micro-benchmark e questo si aggiungerà davvero al tuo caso.

Spesso, il modo in cui lo pronunci è molto importante per cambiare la cultura del codice. Dare l'esempio. O ancora meglio, aspetta un pezzo di codice che puoi scrivere - refactor e unit test all'inferno e viola - sarai ascoltato.


Non sto eseguendo il refactoring del codice corrente, sto solo scrivendo una nuova funzione, non sono sicuro che dovrei semplicemente seguire la 'convenzione' e codificarlo in una mostruosità di oltre 300 righe o suddividerlo in blocchi logici come farei normalmente ma non è stato fatto in questa parte della base di codice.
Giustino,

1
hanno delle regole per assicurarti di scrivere nuovi metodi in oltre 300 righe? in caso contrario, lo scriverei nel modo giusto. ma farei assolutamente del mio meglio per assicurarmi di testarli, compresi i rami. Ho vissuto esperienze simili e di solito le conquisti. il trucco è farlo nel tempo e costruire un rapporto.
skipy,

3

Questo tipo di domanda è fondamentalmente "per favore, leggi attentamente i miei compagni di squadra ". Le persone casuali su Internet non possono farlo, quindi tutte le risposte che otterrai sono solo opinioni personali delle persone sullo stile di programmazione. Il consenso è che sono preferibili metodi più brevi, ma sembra che tu lo pensi già così, quindi non è necessario ribadirlo.

Pertanto, l'attuale base di codice sembra utilizzare uno stile di codifica diverso da quello che preferisci. Cosa dovresti fare Per prima cosa devi capire:

  1. È una decisione di progettazione deliberata supportata dal tuo attuale team?
  2. Vogliono che tu segua questo stile?

C'è solo un modo per scoprirlo. Chiedi .

Potrebbero esserci più ragioni per avere lunghe funzioni. Potrebbe essere perché il team ritiene che le funzioni lunghe siano migliori di più funzioni brevi. Potrebbe anche essere perché è un codice legacy e il team preferisce che il nuovo codice segua un design più pulito. Quindi entrambe le scelte potrebbero metterti nei guai come sviluppatore, se non parli con il team e capisci il loro ragionamento.


1
Sono pienamente d'accordo e aggiungo "Potresti essere licenziato o altrimenti nei guai per non aver seguito quello che hanno fatto gli altri?" Quindi la risposta è sì! Seguendo ogni cosa negativa che la società richiede di fare e affrontarla.
Rob,

1

Esistono diversi livelli di "stile".

Ad un livello, generalmente parte delle convenzioni di codifica, ciò significa dove inserire spazi bianchi, linee vuote, parentesi e come nominare le cose (maiuscole, sottolineature, ecc.).

Ad un altro livello c'è il modello di programmazione, a volte cose come evitare la statica, o usare interfacce su classi astratte, come esporre dipendenze, forse persino evitare alcune caratteristiche del linguaggio esoterico.

Poi ci sono le librerie e i framework in uso dal progetto.

A volte ci sarà un limite massimo alla dimensione della funzione. Ma raramente esiste un limite minimo! Quindi, dovresti scoprire quali di queste cose i poteri che sono importanti e cercare di rispettarlo.

Devi scoprire se il team è contrario al refactoring del codice esistente, che dovrebbe essere fatto indipendentemente dall'aggiunta di un nuovo codice quando possibile.

Tuttavia, anche se non vogliono riformattare il codice esistente, potresti essere in grado di introdurre alcuni livelli in astrazioni per il tuo nuovo codice che aggiungi, il che significa che nel tempo puoi sviluppare una base di codice migliore e forse migrare il vecchio codice come manutenzione ne richiede.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.