Domanda

Ci sono delle regole generali, eccessivamente generalizzate e per lo più inutili di quanto tempo ci vorrà per capire un programma basato sul numero di LOC (linee di codice)?

(ho capito tutte le regole saranno ampio, eccessivamente generalizzate e per lo più inutili. Questo va bene.)

(La lingua in questione è Delphi, ma che non dovrebbe importare, perché sto cercando le regole generali, eccessivamente generalizzate e per lo più inutili.)

È stato utile?

Soluzione

Alcuni tipi di carta in materia di revisione del codice tra pari dicono che dovrebbe essere da qualche parte tra 100 e 400 righe di codice per ora.

Altri suggerimenti

Non è il numero di LOC che determina quanto tempo ci vuole per capire un programma, è più la complessità.

Se il mio programma ha avuto 100.000 righe di dichiarazioni di stampa, penso che il programma è abbastanza chiaro da capire. Tuttavia, se ho avuto un programma con for-cicli annidati dieci profondo, penso che ci vorrà molto più tempo per capire.

Cyclomatic complessità può dare un ROUGH indicazione di quanto sia difficile la il codice è quello di capire, e può segnalare alcuni altri segnali di avvertimento e sul codice.

ho la teoria che è O (n 2 ) (perché bisogna capire ogni linea in combinazione con ogni altra linea).

Ma, come al solito quando utilizza notazione O-grande per ottenere un valore numerico effettivo, questa risposta è ampio, eccessivamente generalizzate e soprattutto inutile.

Non si può google Questo perché ci sarà un numero approssimativo di programmazione diverso per ogni singola persona in una lingua specifica.

Si sta cercando di scrivere la di Drake equazione per la scrittura del programma.

Questo è quello che voglio dire.

A proposito di scrittori del programma.

  • ogni persona ha un diverso stile di scrittura e il codice commentando
  • ogni linguaggio di programmazione ha diverse sfumature e leggibilità
  • algoritmi possono essere implementate in molti modi, anche nella stessa lingua
  • strutture di dati utilizzati da persone diverse tendono ad essere molto varia
  • la decisione di come il codice è distribuito su file sorgente cambia anche con il gusto personale

Lo spostamento verso la persona che legge il codice.

  • la familiarità della persona con le questioni linguistiche
  • familiarità agli algoritmi e modelli di strutture dati questioni utilizzati
  • quantità di contesto informativo che la persona può mantenere alla volta questioni

Spostare l'attenzione per l'ambiente, le cose che contano sarebbe.

  • la quantità di distrazione (sia per il programmatore e la persona cercando di leggere il programma)
  • vicinanza al tempo di rilascio del codice per il programmatore
  • attività e la motivazione in attesa da parte del lettore
  • vicinanza delle manifestazioni popolari (vacanze, eventi sportivi, date di uscita di film!)

recensione Codice metriche (che non è la stessa cosa, ma quasi paragonabile) hanno messo il numero nel range di circa 50-100 LoC all'ora, per un recensore codice esperto.

Questo naturalmente dipende anche da ciò che stanno cercando nella revisione, la lingua, la complessità, la familiarità, ecc .... ma che potrebbe darvi una generalizzazione generale comunque.

  

sto cercando le regole generali, eccessivamente generalizzate e per lo più inutili.

Suoni a me come si sta solo cercando di trovare un modo per stimare il tempo che ci vorrà per imparare una nuova base di codice di gestione o qualcosa. In questo caso, trovare un frammento di codice in linea, e quanto tempo ci vuole a capirlo. Dividere per il numero di linee del frammento. Aggiungete un po 'imbottitura. Bam! C'è la regola.

Guarda le COCOMO equazioni. Essi contengono le regole generali, eccessivamente generalizzate e per lo più inutili sulla base di Fonte righe di codice.

Oltre a "come complicato è il programma?", Le altre variabili includono cose come "come e si fa a capire?" e "quanto bene si fa a capire altro cose, come specifica funzionale del programma?"

Quando inizio a lavorare con un nuovo programma, cerco di capire come piccolo di lui come possibile! In particolare provo a:

  • Comprendere la specifica funzionale del cambiamento che qualcuno vuole che faccia (se nessuno mi voleva cambiare il programma, allora non avrei bisogno di capire affatto)

  • Trova e comprendere il più piccolo sottoinsieme possibile del programma esistente, il che mi permette di fare questo cambiamento senza rompere qualsiasi altro, precedente la funzionalità / esistente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top