Recentemente ho prelevato un progetto con una grande base di codice che contiene molte duplicazioni. Il problema è che la funzionalità duplicata non è stata scritta dalle stesse persone né copiata tra di loro.Strumento per analizzare e confrontare la logica di funzioni simili?
Quindi, ci sono strumenti che posso utilizzare per confrontare la logica effettiva di due funzioni? Ecco alcuni dei vincoli che potrebbero essere utili.
- ordine in cui l'ordine è irrilevante (come impostazioni di proprietà) Ignorare
- nomi delle variabili devono essere analizzati per similitudine, ma non necessaria per corrispondere se utilizzato per gli stessi motivi
- sguardo profondo negli altri metodi chiamati dalle funzioni da confrontare e appiattire la logica per il confronto
Idealmente, lo strumento produrrebbe una singola uscita di funzione. Le reali differenze logiche sarebbero evidenziate in qualche modo. Può anche essere in una forma che definisce funzioni separate per le differenze nella logica, passandole nella funzione principale che contiene la logica che è identica.
Questo suona come un ordine alto, ma qualcuno ha incontrato strumenti che tentano di fare una di queste cose?
Modifica
Mentre ci sono alcuni interessanti strumenti citati, non assomiglia a nessun di loro prenderà il contenuto di dette funzioni in considerazione quando si confrontano la logica dei due metodi. Se non sono corretto, per favore fatemelo sapere!
Penso che questo "strumento" esista ed è un programmatore umano :) – vulkanino
@vulkanino: Significa che verrai ad analizzare il codice per me? Avrò solo bisogno di spendere $ 50 - $ 200 una volta e poter usare questo "strumento" ogni volta che ne ho bisogno? –
:) Costano di più, ma sicuramente troverai uno strumento più economico su VWorker ad esempio;) – vulkanino