LOC è probabilmente una delle metriche più abusate e, di conseguenza, è probabilmente una delle misure più inutili della qualità del codice e una misurazione ancora più inutile dello sforzo di programmazione.
Sì, questa è un'affermazione audace per me da fare, e no, non posso indicarti studi che dimostrano il mio punto. Tuttavia, posso affermare con la dura esperienza acquisita che quando inizi a preoccuparti della quantità di codice che hai scritto, probabilmente ti preoccupi dei problemi sbagliati.
Devi prima chiederti cosa stai cercando di misurare o provare e se questa prova è semplicemente per interesse o per supportare un miglioramento della qualità più ampio e dove è necessario utilizzare queste informazioni per ottenere il buy-in dal tuo team / gestione per fare qualcosa al riguardo.
Una delle cose per le quali tendo ad usare LOC è un po 'un controllo di sanità mentale. Se mi ritrovo a scrivere molto codice, divento più interessato a LOC per metodo o LOC per classe, piuttosto che LOC su tutti. Queste misurazioni potrebbero essere indicatori che è necessario eseguire ulteriori refactoring se si avverte un leggero disturbo ossessivo compulsivo su quanto dovrebbe essere ben ponderato il codice. Le classi molto grandi potrebbero dover essere rifattorizzate in alcune classi più piccole, e potrebbe essere necessario suddividere i metodi multilinea lunghi in diversi metodi, altre classi, o potrebbe persino indicare una ripetizione che potrebbe essere rimossa. Si noti che ho usato la parola "potrebbe" più volte lì.
La realtà è che LOC fornisce solo un possibile indicatore e nessuna reale garanzia che il codice potrebbe dover cambiare. La vera domanda da porsi è se il codice si comporta come richiesto e come previsto. In tal caso, la tua prossima domanda è se sarai in grado di mantenere facilmente il codice e se avrai il tempo, ora o in futuro, di apportare modifiche al codice di lavoro per ridurre le spese generali di manutenzione in futuro.
Spesso, un sacco di codice significa che avrai più da mantenere in seguito, ma a volte anche un codice ben ponderato può estendersi a centinaia di righe di codice, e sì, a volte puoi ritrovarti a scrivere centinaia di righe di codice in un giorno. L'esperienza tuttavia mi dice che se sto sostenendo un output di centinaia di righe di nuovo codice ogni giorno, che spesso c'è il rischio che gran parte del codice sia stato tagliato e incollato in modo inappropriato da qualche altra parte e che di per sé possa indicare problemi con duplicazione e manutenzione, ma ancora una volta non è una garanzia, quindi tendo a fare affidamento su ciò che la mia esperienza e il mio istinto mi dicono in base a come sono stati completati i compiti da svolgere.
Il modo migliore per evitare il dilemma posto nella tua domanda IMHO è quello di dimenticare LOC e fare il refactor TUTTO il tempo. Scrivi prima il test del codice, implementalo per fallire, refactor per passare, poi vedi cosa può essere refactored lì e poi per migliorare il codice. Lascerai il compito sapendo che hai già ricontrollato il tuo lavoro e non sarai così preoccupato di ripensarti in futuro. Realisticamente parlando, se usi un approccio test-first come ho descritto, qualsiasi misurazione LOC / day sul tuo codice completato significherà davvero che hai scritto 3-5 volte l'importo misurato, con quello sforzo nascosto con successo dal tuo refactoring in corso sforzi.