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.