Sobes.tech
Junior

O que, na tua opinião, significa escrever código de qualidade?

sobes.tech IA

Resposta da IA

Limpeza, legibilidade, manutenção, escalabilidade e conformidade com os requisitos.

Aspectos principais:

  • Limpeza e legibilidade:

    • Uso de nomes compreensíveis e descritivos para variáveis, funções e classes.
    • Cumprimento de um guia de estilo de codificação unificado.
    • Formatação adequada do código (indentação, espaços).
    • Eliminação de duplicações de código (DRY - Don't Repeat Yourself).
    • Comentários claros em partes não evidentes do código.
  • Manutenção:

    • Facilidade de fazer alterações e corrigir erros.
    • Modularidade: divisão de funcionalidades em blocos pequenos e independentes.
    • Baixo acoplamento e alta coesão.
    • Inclusão de testes automatizados (unitários, de integração, de ponta a ponta).
  • Escalabilidade:

    • Capacidade do sistema de lidar com um volume crescente de dados ou carga sem deterioração significativa do desempenho.
    • Uso eficiente de recursos.
  • Conformidade com os requisitos:

    • O código implementa corretamente a lógica de negócio e os requisitos funcionais.
    • Ausência de bugs críticos e vulnerabilidades.

Exemplo de estrutura de um teste de qualidade em Python:

# filename: test_user_creation.py

import pytest
from my_application.models import User
from my_application.services import create_user

def test_user_creation_successful():
    # Caso de teste para criação bem-sucedida de usuário
    username = "test_user"
    email = "test@example.com"

    # Ação: Criar um usuário
    new_user = create_user(username, email)

    # Aserção 1: Verificar se o objeto usuário foi criado
    assert isinstance(new_user, User)

    # Aserção 2: Verificar se o nome de usuário está correto
    assert new_user.username == username

    # Aserção 3: Verificar se o email está correto
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Caso de teste para falha ao usar nome de usuário duplicado
    username = "existing_user"
    email = "another@example.com"

    # Pré-condição: Criar um usuário existente
    create_user(username, "existing@example.com")

    # Ação & Aserção: Tentar criar usuário com nome de usuário duplicado e esperar exceção
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... outros casos de teste ...