Sobes.tech
Middle

Cosa consideri codice di qualità?

sobes.tech AI

Risposta dell'AI

Per me, un codice di qualità possiede le seguenti caratteristiche:

  • Leggibilità: È facile da capire per altri sviluppatori (e per sé stessi dopo sei mesi).
  • Manutenibilità: Le modifiche e correzioni di bug vengono fatte rapidamente e in modo sicuro.
  • Testabilità: Il codice è suddiviso in moduli facilmente isolabili e testabili.
  • Pulizia: Assenza di duplicazioni (DRY), nomi chiari per variabili e funzioni, rispetto dello stile di codifica.
  • Efficienza: Uso ottimale delle risorse (processore, memoria) per il compito assegnato.
  • Affidabilità: Considera possibili errori (eccezioni, valori nulli) e li gestisce correttamente.
  • Documentazione: Quando necessario, contiene commenti chiari o documentazione.

Esempio di codice pulito che evita duplicazioni:

// Cattivo: duplicazione di logica
fun processUser(user: User) {
    if (user.isActive) {
        println("Elaborazione utente attivo ${user.name}")
        // Molto codice...
    } else {
        println("Elaborazione utente inattivo ${user.name}")
        // Lo stesso molto codice...
    }
}

// Buono: estrazione della logica ripetuta
fun processUser(user: User) {
    println("Elaborazione utente ${user.name}") // Logica comune
    if (user.isActive) {
        processActiveUser(user)
    } else {
        processInactiveUser(user)
    }
    // Molto codice... // Logica comune dopo if/else
}

fun processActiveUser(user: User) {
    // Solo logica specifica per utenti attivi
}

fun processInactiveUser(user: User) {
    // Solo logica specifica per utenti inattivi
}

Esempio che dimostra leggibilità e nomi chiari:

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

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