Visual Basic for Applications:
Rifattorizzazione

Come fare:

Consideriamo un esempio base in Visual Basic per Applicazioni (VBA) dove abbiamo una subroutine che stampa i dettagli di un impiegato. Inizialmente, il codice è disordinato, difficile da mantenere o estendere.

Sub PrintEmployeeDetails()
    Dim name As String
    Dim age As Integer
    Dim department As String
    name = "John Doe"
    age = 30
    department = "IT"
    
    MsgBox "Name: " & name & vbCrLf & "Age: " & age & vbCrLf & "Department: " & department
End Sub

Refactoring passo 1: Estrai metodo. Una delle tecniche di refactoring più comuni consiste nel prendere un pezzo specifico di codice e spostarlo nel proprio metodo. Questo rende il codice più modulare e più facile da comprendere.

Sub PrintEmployeeDetails()
    Dim name As String
    Dim age As Integer
    Dim department As String
    name = "John Doe"
    age = 30
    department = "IT"
    
    DisplayMessage name, age, department
End Sub

Private Sub DisplayMessage(name As String, age As Integer, department As String)
    MsgBox "Name: " & name & vbCrLf & "Age: " & age & vbCrLf & "Department: " & department
End Sub

Refactoring passo 2: Usa una struttura. Questo passaggio prevede l’utilizzo di una struttura dati per contenere dati correlati, migliorando la chiarezza del codice e rendendo più facile passare dati raggruppati.

Type Employee
    name As String
    age As Integer
    department As String
End Type

Sub PrintEmployeeDetails()
    Dim emp As Employee
    emp.name = "John Doe"
    emp.age = 30
    emp.department = "IT"
    
    DisplayMessage emp
End Sub

Private Sub DisplayMessage(emp As Employee)
    MsgBox "Name: " & emp.name & vbCrLf & "Age: " & emp.age & vbCrLf & "Department: " & emp.department
End Sub

Questi passaggi trasformano il codice disordinato in codice modulare e strutturato, migliorando significativamente leggibilità e manutenibilità.

Approfondimento

Il concetto di refactoring è vecchio quanto la programmazione stessa, ma è stato il libro di Martin Fowler “Refactoring: Improving the Design of Existing Code” a portarlo nell’opinione comune, sottolineandone l’importanza nel processo di sviluppo del software. In Visual Basic per Applicazioni, il refactoring può essere leggermente più complesso a causa della mancanza di strumenti integrati trovati negli ambienti di sviluppo integrato (IDE) più moderni che supportano il refactoring automatizzato.

Tuttavia, ciò non ne diminuisce l’importanza. Anche in VBA, applicare manualmente le tecniche di base del refactoring può notevolmente migliorare la base di codice, rendendola più pulita ed efficiente. Sebbene VBA possa non avere le stesse comodità moderne, i principi del buon design del codice rimangono universali. Gli sviluppatori provenienti da altri linguaggi potrebbero trovare il processo manuale tedioso ma apprezzeranno senza dubbio i benefici di investire tempo nel migliorare la qualità del codice fin dall’inizio.

Per ambienti di sviluppo più robusti o quando si lavora a progetti particolarmente sofisticati, potrebbe valere la pena esplorare alternative che offrono strumenti di refactoring più potenti o convertire progetti VBA in un linguaggio .NET dove Visual Studio fornisce un ampio supporto al refactoring. Tuttavia, comprendere e applicare i principi del refactoring in VBA è una competenza preziosa che sottolinea l’importanza di scrivere codice pulito e manutenibile, indipendentemente dall’ambiente.