Visual Basic for Applications:
Uudelleenkoodaus

Kuinka:

Harkitaan yksinkertaista esimerkkiä Visual Basic for Applications (VBA) -koodissa, jossa meillä on alirutiini, joka tulostaa työntekijän tiedot. Aluksi koodi on sekavaa, vaikeaa ylläpitää tai laajentaa.

Sub PrintEmployeeDetails()
    Dim nimi As String
    Dim ikä As Integer
    Dim osasto As String
    nimi = "John Doe"
    ikä = 30
    osasto = "IT"
    
    MsgBox "Nimi: " & nimi & vbCrLf & "Ikä: " & ikä & vbCrLf & "Osasto: " & osasto
End Sub

Refaktorointivaihe 1: Ota metodi käyttöön. Yksi yleisimmistä refaktorointitekniikoista on ottaa tietty koodinpätkä ja siirtää se omaan metodiinsa. Tämä tekee koodista modulaarisemman ja helpommin ymmärrettävän.

Sub PrintEmployeeDetails()
    Dim nimi As String
    Dim ikä As Integer
    Dim osasto As String
    nimi = "John Doe"
    ikä = 30
    osasto = "IT"
    
    NäytäViesti nimi, ikä, osasto
End Sub

Private Sub NäytäViesti(nimi As String, ikä As Integer, osasto As String)
    MsgBox "Nimi: " & nimi & vbCrLf & "Ikä: " & ikä & vbCrLf & "Osasto: " & osasto
End Sub

Refaktorointivaihe 2: Käytä rakennetta. Tässä vaiheessa käytetään tietorakennetta liittyvien tietojen säilyttämiseen, mikä parantaa koodin selkeyttä ja tekee ryhmiteltyjen tietojen siirtämisestä helpompaa.

Type Työntekijä
    nimi As String
    ikä As Integer
    osasto As String
End Type

Sub PrintEmployeeDetails()
    Dim työnt As Työntekijä
    työnt.nimi = "John Doe"
    työnt.ikä = 30
    työnt.osasto = "IT"
    
    NäytäViesti työnt
End Sub

Private Sub NäytäViesti(työnt As Työntekijä)
    MsgBox "Nimi: " & työnt.nimi & vbCrLf & "Ikä: " & työnt.ikä & vbCrLf & "Osasto: " & työnt.osasto
End Sub

Nämä vaiheet muuntavat sekavan koodin modulaariseksi, rakenteelliseksi koodiksi, mikä parantaa merkittävästi sen luettavuutta ja ylläpidettävyyttä.

Syväluotaus

Refaktoroinnin konsepti on yhtä vanha kuin ohjelmointi itse, mutta Martin Fowlerin kirja “Refactoring: Improving the Design of Existing Code” toi sen valtavirtaan, korostaen sen merkitystä ohjelmistokehitysprosessissa. Visual Basic for Applicationsissa refaktorointi voi olla haastavampaa johtuen nykyaikaisemmissa integroiduissa kehitysympäristöissä (IDEs) löytyvien automaattisen refaktoroinnin tukityökalujen puutteesta.

Tämä ei kuitenkaan vähennä sen tärkeyttä. Myös VBA:ssa perusrefaktorointitekniikoiden manuaalinen soveltaminen voi parantaa merkittävästi koodikantaa, tehden siitä siistimpää ja tehokkaampaa. Vaikka VBA:lla ei olekaan samoja moderneja mukavuuksia, hyvän koodisuunnittelun periaatteet ovat yleismaailmallisia. Muista kielistä tulevat kehittäjät saattavat pitää manuaalista prosessia työläänä, mutta arvostavat epäilemättä ajan investointia koodin laadun parantamiseen alusta alkaen.

Vahvempia kehitysympäristöjä tai erityisen monimutkaisia projekteja varten saattaa olla hyödyllistä tutkia vaihtoehtoja, jotka tarjoavat tehokkaampia refaktorointityökaluja tai muuntaa VBA-projektit .NET-kieleksi, jossa Visual Studio tarjoaa laajaa refaktoroinnin tukea. Siitä huolimatta refaktoroinnin periaatteiden ymmärtäminen ja soveltaminen VBA:ssa on arvokas taito, joka korostaa puhtaan, ylläpidettävän koodin kirjoittamisen tärkeyttä riippumatta ympäristöstä.