Sobes.tech
Middle

Wat beschouw jij als kwalitatieve code?

sobes.tech AI

Antwoord van AI

Voor mij heeft kwalitatieve code de volgende kenmerken:

  • Leesbaarheid: Het is gemakkelijk te begrijpen voor andere ontwikkelaars (en voor jezelf na een half jaar).
  • Onderhoudbaarheid: Wijzigingen en bugfixes worden snel en veilig doorgevoerd.
  • Testbaarheid: De code is opgesplitst in modules die gemakkelijk geïsoleerd en getest kunnen worden.
  • Netheid: Geen duplicatie (DRY), duidelijke namen voor variabelen en functies, volgt de code-stijl.
  • Efficiëntie: Optimaal gebruik van bronnen (processor, geheugen) voor de taak.
  • Betrouwbaarheid: Houdt rekening met mogelijke fouten (uitzonderingen, null-waarden) en handelt deze correct af.
  • Documentatie: Indien nodig, bevat duidelijke opmerkingen of documentatie.

Voorbeeld van schone code die duplicatie vermijdt:

// Slecht: duplicatie van logica
fun processUser(user: User) {
    if (user.isActive) {
        println("Verwerking actieve gebruiker ${user.name}")
        // Veel code...
    } else {
        println("Verwerking inactieve gebruiker ${user.name}")
        // Dezelfde veel code...
    }
}

// Goed: hergebruik van logica
fun processUser(user: User) {
    println("Verwerking gebruiker ${user.name}") // Algemene logica
    if (user.isActive) {
        processActiveUser(user)
    } else {
        processInactiveUser(user)
    }
    // Veel code... // Algemene logica na if/else
}

fun processActiveUser(user: User) {
    // Alleen specifieke logica voor actieve gebruikers
}

fun processInactiveUser(user: User) {
    // Alleen specifieke logica voor inactieve gebruikers
}

Voorbeeld dat leesbaarheid en duidelijke namen demonstreert:

// Slecht
fun calc(a: Int, b: Int): Int {
    return a + b
}

// Goed
fun calculateSum(firstNumber: Int, secondNumber: Int): Int {
    return firstNumber + secondNumber
}