Clean Code em Java: princípios e exemplos para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Clean Code em Java: princípios e exemplos para iniciantes



Cada desenvolvedor, ao iniciar sua jornada em Java, mais cedo ou mais tarde se depara com a situação: o código funciona, mas entender ele depois de uma semana já é impossível. Este é o clássico problema do código "sujo". Clean Code (código limpo) não é apenas um termo da moda, mas um conjunto de práticas que tornam seu programa compreensível, facilmente mantível e extensível. Neste artigo, vamos abordar os principais princípios do Clean Code em Java para iniciantes com exemplos práticos.



Por que o código limpo é importante?



No desenvolvimento real, o código é lido com muito mais frequência do que é escrito. Você voltará aos seus projetos antigos, trabalhará em equipe ou passará o código para colegas. Código mal escrito retarda o desenvolvimento, aumenta o número de bugs e desmotiva. O Clean Code economiza tempo e paciência. Vamos analisar os princípios-chave.



1. Nomes claros: diga o que você faz



Os nomes de variáveis, métodos e classes devem responder à pergunta "o que é isso?" ou "o que faz?". Não economize caracteres — use nomes significativos.



Exemplo ruim (nomes pouco claros):

int d; // tempo decorrido em diasList<String> lst = new ArrayList<>();public void prc() { ... }


Exemplo bom (Clean Code):

int elapsedTimeInDays;List<String> customerNames = new ArrayList<>();public void processPayment() { ... }


Dica: Evite nomes de uma letra (exceto para contadores de loops). O nome deve revelar a intenção. Em vez de list, use activeUsers ou orderIds.



2. Funções pequenas: uma tarefa — uma função



As funções devem fazer apenas uma coisa e fazê-la bem. Métodos longos são difíceis de testar e entender. Busque um comprimento de no máximo 20–30 linhas.



Exemplo ruim (função faz tudo):

public void processOrder(Order order) {    // validação    if (order.getTotal() <= 0) {        throw new IllegalArgumentException("Pedido inválido");    }    // salvar no banco    saveToDatabase(order);    // enviar email    sendEmail(order.getCustomerEmail(), "Pedido confirmado");    // atualizar estoque    updateInventory(order);}


Exemplo bom (divisão em funções pequenas):

public void processOrder(Order order) {    validateOrder(order);    saveOrder(order);    notifyCustomer(order);    updateStock(order);}

private void validateOrder(Order order) { if (order.getTotal() <= 0) { throw new IllegalArgumentException("Total do pedido inválido"); }}

private void notifyCustomer(Order order) { sendEmail(order.getCustomerEmail(), "Pedido confirmado");}


Agora cada função tem uma responsabilidade clara. O código se tornou autodocumentado.



3. Evite duplicação: princípio DRY



O princípio DRY (Don't Repeat Yourself) afirma: cada parte do conhecimento deve ter uma representação única no sistema. Se você copia código, cria problemas de manutenção.



Exemplo ruim (duplicação):

public double calculateDiscountForRegularCustomer(double price) {    return price * 0.9; // 10% de desconto}

public double calculateDiscountForVipCustomer(double price) { return price * 0.8; // 20% de desconto}


Exemplo bom (generalização):

public double calculateDiscount(double price, CustomerType type) {    double discountRate = getDiscountRate(type);    return price * discountRate;}

private double getDiscountRate(CustomerType type) { switch (type) { case REGULAR: return 0.9; case VIP: return 0.8; default: return 1.0; }}


Agora a alteração da lógica de desconto ocorre em um único lugar.



4. Formatação e comentários: limpeza visual



O código deve ser bem

Blogs

Book Recommendations