Sobes.tech
Middle

¿Qué consideras código de calidad?

sobes.tech AI

Respuesta de la IA

Un código de calidad para mí tiene las siguientes características:

  • Legibilidad: Es fácil de entender para otros desarrolladores (y para uno mismo después de medio año).
  • Mantenibilidad: Los cambios y correcciones de errores se realizan de manera rápida y segura.
  • Testabilidad: El código está dividido en módulos que son fáciles de aislar y probar.
  • Limpieza: Ausencia de duplicación (DRY), nombres claros para variables y funciones, siguiendo el estilo de código.
  • Eficiencia: Uso óptimo de recursos (procesador, memoria) para la tarea asignada.
  • Fiabilidad: Considera posibles errores (excepciones, valores nulos) y los maneja correctamente.
  • Documentación: Cuando es necesario, contiene comentarios claros o documentación.

Ejemplo de código limpio que evita duplicaciones:

// Malo: duplicación de lógica
fun processUser(user: User) {
    if (user.isActive) {
        println("Procesando usuario activo ${user.name}")
        // Mucho código...
    } else {
        println("Procesando usuario inactivo ${user.name}")
        // El mismo mucho código...
    }
}

// Bueno: extracción de lógica repetida
fun processUser(user: User) {
    println("Procesando usuario ${user.name}") // Lógica común
    if (user.isActive) {
        processActiveUser(user)
    } else {
        processInactiveUser(user)
    }
    // Mucho código... // Lógica común después del if/else
}

fun processActiveUser(user: User) {
    // Solo lógica específica para activos
}

fun processInactiveUser(user: User) {
    // Solo lógica específica para inactivos
}

Ejemplo que demuestra legibilidad y nombres claros:

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

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