Sobes.tech
Middle

O que você considera um código de qualidade?

sobes.tech IA

Resposta da IA

Para mim, código de qualidade possui as seguintes características:

  • Legibilidade: É fácil de entender por outros desenvolvedores (e por si próprio após seis meses).
  • Manutenção: As alterações e correções de bugs são feitas de forma rápida e segura.
  • Testabilidade: O código é dividido em módulos que são fáceis de isolar e testar.
  • Limpeza: Ausência de duplicação (DRY), nomes claros para variáveis e funções, seguindo o estilo de código.
  • Eficiência: Uso ótimo de recursos (processador, memória) para a tarefa.
  • Confiabilidade: Considera possíveis erros (exceções, valores nulos) e os trata corretamente.
  • Documentação: Quando necessário, contém comentários claros ou documentação.

Exemplo de código limpo que evita duplicação:

// Ruim: duplicação de lógica
fun processUser(user: User) {
    if (user.isActive) {
        println("Processando usuário ativo ${user.name}")
        // Muito código...
    } else {
        println("Processando usuário inativo ${user.name}")
        // O mesmo muito código...
    }
}

// Bom: extração de lógica repetida
fun processUser(user: User) {
    println("Processando usuário ${user.name}") // Lógica comum
    if (user.isActive) {
        processActiveUser(user)
    } else {
        processInactiveUser(user)
    }
    // Muito código... // Lógica comum após o if/else
}

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

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

Exemplo que demonstra legibilidade e nomes claros:

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

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