Mi è stato assegnato un refactoring.
Abbiamo diversi moduli con funzioni simili con alcune differenze. Il mio compito è estrarre porzioni di codice comuni per il principio DRY.
Sono un po 'perso come farlo.
Potrei semplicemente tagliare e incollare frammenti di codice simili, estraendoli in funzioni separate, ma se lo faccio in questo modo meccanicamente, allora le dichiarazioni e l'uso delle variabili locali delle funzioni frammentate possono capitare di cadere in funzioni diverse, cosa potrebbe portare a codice non valido.
Potresti fare alcuni consigli pratici su come gestire questo problema. Vorrei una guida passo-passo sul refactoring di tale codice con variabili locali.
E inoltre: per qualche ragione il mio capo vuole che il codice risultante non sia orientato agli oggetti. Penso che questo possa essere risolto passando frammenti di codice come puntatori di funzioni.
Non riesco a mostrare un esempio di codice per la mia domanda, perché il codice reale è closed-source e non riesco a scrivere un esempio minimale, perché l'intero problema riguarda le funzioni lunghe.
Un'altra nota: scriviamo in Perl.