In quale misura l'analisi di un cambio di codice può essere automatizzata?

0

Non sono sicuro di come sia possibile, ma come programmatore ho il rischio che si verifichino quando sto apportando modifiche a un code base.

Non ho mai visto uno strumento che in sostanza mi dica, come sto codificando, quanto siano potenzialmente raggiungibili le mie modifiche.

Alcuni esempi in cima alla mia testa (che sono probabilmente discutibili ma questo è solo per essere meno astratto):

  • L'aggiunta di una proprietà a un POCO è una modifica "verde"
  • La creazione di un campo in sola lettura è una modifica "verde"
  • L'aggiunta di un costruttore quando Unity DI è presente è una modifica "gialla"
  • La modifica della logica condizionale in un metodo pubblico che ha usi che si estendono su più assiemi è una modifica "rossa"

È possibile? Se sì, in che misura?

(nota che questa domanda non è una richiesta per uno strumento specifico.)

    
posta Aaron Anodide 31.12.2014 - 22:10
fonte

1 risposta

3

Does anything like this exist, or is it even possible?

Certo, ci sono strumenti che cercano di determinare l'impatto di una modifica sulla base di codice.

No, non sono infallibili. Non sono infallibili perché le lingue invariabilmente permettono alle cose di sfuggire al loro controllo. Cose come riflessione, lavoro con file / database, concorrenza ... tutte cose che non possono essere affrontate tramite analisi statica. Se potessero essere (rapidamente), il compilatore lo farebbe o useremmo questi strumenti più frequentemente. Alcune lingue consentono controlli più / più utili a scapito della flessibilità. Dall'altra parte ci sono le lingue dinamiche in cui questo genere di cose sarebbe altamente poco pratico.

In pratica, questo è ciò che i test unitari fanno . Forniscono un insieme rapido e riutilizzabile di controlli di regressione per farti sapere chiaramente che il tuo cambiamento ha influenzato la roba (o meno). Le persone hanno persino tentato automaticamente di generare quelle , ma questo tende solo a per ottenere il tipo di controllo dei casi limite, non il carnoso "funziona?" controlla che gli umani sappiano.

    
risposta data 31.12.2014 - 22:24
fonte

Leggi altre domande sui tag