Skip to content

Dicionário de Termos Técnicos em Desenvolvimento de Software

📚 Visão Geral

Este dicionário contém termos técnicos comumente utilizados em desenvolvimento de software, arquitetura de sistemas e tecnologia em geral.

🔧 Termos de Performance e Otimização

Overhead

Definição: Custo adicional ou sobrecarga que uma operação ou processo adiciona ao sistema.

Exemplo: O overhead de criar uma nova thread inclui alocação de memória, inicialização e contexto de switching.

Uso: "O overhead de fazer uma chamada HTTP é muito alto para operações simples."

Bottleneck (Gargalo)

Definição: Ponto no sistema que limita a performance ou throughput geral.

Exemplo: Um banco de dados lento pode ser o bottleneck de uma aplicação web.

Uso: "Identificamos o bottleneck na consulta SQL que estava demorando 5 segundos."

Latency (Latência)

Definição: Tempo que uma operação leva para ser completada.

Exemplo: Latência de rede é o tempo para uma requisição ir e voltar.

Uso: "A latência da API está muito alta, precisamos otimizar."

Throughput

Definição: Quantidade de trabalho que um sistema pode processar por unidade de tempo.

Exemplo: Throughput de 1000 requests por segundo.

Uso: "O throughput do sistema aumentou 50% após a otimização."

Scalability (Escalabilidade)

Definição: Capacidade de um sistema de lidar com crescimento de carga.

Exemplo: Sistema escalável pode adicionar mais servidores para suportar mais usuários.

Uso: "A arquitetura microservices oferece melhor escalabilidade."

🏗️ Termos de Arquitetura

Coupling (Acoplamento)

Definição: Grau de dependência entre componentes ou módulos.

Exemplo: Alto acoplamento significa que mudanças em um componente afetam outros.

Uso: "Precisamos reduzir o acoplamento entre os módulos."

Cohesion (Coesão)

Definição: Grau em que elementos de um módulo pertencem juntos.

Exemplo: Alta coesão significa que um módulo tem responsabilidades bem definidas.

Uso: "A classe tem alta coesão, todas as responsabilidades estão relacionadas."

Abstraction (Abstração)

Definição: Processo de esconder complexidade e mostrar apenas funcionalidades essenciais.

Exemplo: Interface que esconde detalhes de implementação.

Uso: "A abstração permite que trabalhemos com conceitos complexos de forma simples."

Encapsulation (Encapsulamento)

Definição: Agrupamento de dados e métodos que operam nesses dados.

Exemplo: Classe que mantém dados privados e métodos públicos.

Uso: "O encapsulamento protege os dados internos da classe."

🔄 Termos de Concorrência

Race Condition

Definição: Situação onde o comportamento do programa depende da ordem de execução de threads.

Exemplo: Dois threads incrementando a mesma variável simultaneamente.

Uso: "Temos uma race condition no acesso ao contador compartilhado."

Deadlock

Definição: Situação onde dois ou mais processos ficam bloqueados esperando recursos.

Exemplo: Thread A espera lock do Thread B, que espera lock do Thread A.

Uso: "O deadlock está impedindo o processamento das transações."

Starvation

Definição: Situação onde um processo não consegue acessar recursos necessários.

Exemplo: Thread de baixa prioridade nunca consegue executar.

Uso: "A starvation está afetando os processos de baixa prioridade."

💾 Termos de Banco de Dados

ACID

Definição: Propriedades que garantem confiabilidade em transações de banco de dados.

  • Atomicity: Transação é indivisível
  • Consistency: Dados permanecem consistentes
  • Isolation: Transações não interferem entre si
  • Durability: Mudanças são permanentes

Uso: "O banco garante as propriedades ACID para todas as transações."

Normalization (Normalização)

Definição: Processo de organizar dados para reduzir redundância e dependências.

Exemplo: Dividir uma tabela em múltiplas tabelas relacionadas.

Uso: "A normalização ajudou a eliminar dados duplicados."

Index

Definição: Estrutura de dados que melhora a velocidade de recuperação de dados.

Exemplo: Índice em coluna de email para busca rápida.

Uso: "Criamos um índice na coluna de data para otimizar as consultas."

🌐 Termos de Rede e Web

API (Application Programming Interface)

Definição: Conjunto de regras e protocolos para comunicação entre aplicações.

Exemplo: REST API que permite acesso a dados via HTTP.

Uso: "A API permite que diferentes sistemas se comuniquem."

REST (Representational State Transfer)

Definição: Estilo de arquitetura para sistemas distribuídos.

Exemplo: API que usa HTTP methods (GET, POST, PUT, DELETE).

Uso: "A API REST segue os princípios de recursos e estados."

GraphQL

Definição: Linguagem de consulta e runtime para APIs.

Exemplo: Permite que clientes especifiquem exatamente quais dados precisam.

Uso: "GraphQL reduz over-fetching e under-fetching de dados."

WebSocket

Definição: Protocolo de comunicação bidirecional em tempo real.

Exemplo: Chat em tempo real ou atualizações de dashboard.

Uso: "WebSocket permite comunicação em tempo real entre cliente e servidor."

🔒 Termos de Segurança

Authentication (Autenticação)

Definição: Processo de verificar a identidade de um usuário.

Exemplo: Login com usuário e senha.

Uso: "A autenticação garante que apenas usuários autorizados acessem o sistema."

Authorization (Autorização)

Definição: Processo de determinar permissões de um usuário autenticado.

Exemplo: Verificar se usuário pode acessar um recurso específico.

Uso: "A autorização controla o que cada usuário pode fazer no sistema."

Encryption (Criptografia)

Definição: Processo de converter dados em formato ilegível para proteger informações.

Exemplo: Senhas armazenadas como hash criptográfico.

Uso: "A criptografia protege dados sensíveis em trânsito e em repouso."

JWT (JSON Web Token)

Definição: Padrão para criar tokens de acesso seguros.

Exemplo: Token que contém informações do usuário e permissões.

Uso: "JWT é usado para autenticação stateless em APIs."

🐳 Termos de DevOps e Infraestrutura

Container

Definição: Unidade de software que empacota código e dependências.

Exemplo: Docker container que roda uma aplicação isolada.

Uso: "Containers garantem que a aplicação rode igual em qualquer ambiente."

Orchestration

Definição: Gerenciamento automatizado de containers e serviços.

Exemplo: Kubernetes orquestra múltiplos containers.

Uso: "A orquestração automatiza o deploy e scaling de aplicações."

CI/CD (Continuous Integration/Continuous Deployment)

Definição: Práticas para automatizar integração e deploy de código.

Exemplo: Pipeline que testa e deploya código automaticamente.

Uso: "CI/CD reduz tempo entre desenvolvimento e produção."

Infrastructure as Code (IaC)

Definição: Gerenciamento de infraestrutura através de código.

Exemplo: Terraform ou CloudFormation para criar recursos.

Uso: "IaC permite versionar e automatizar configuração de infraestrutura."

📊 Termos de Monitoramento e Observabilidade

Observability

Definição: Capacidade de entender o estado interno de um sistema através de outputs externos.

Exemplo: Logs, métricas e traces para entender comportamento.

Uso: "Observabilidade é essencial para sistemas distribuídos complexos."

SLI (Service Level Indicator)

Definição: Métrica que indica o nível de serviço.

Exemplo: Tempo de resposta, disponibilidade, throughput.

Uso: "SLIs ajudam a medir a qualidade do serviço."

SLO (Service Level Objective)

Definição: Meta específica para um SLI.

Exemplo: 99.9% de disponibilidade ou resposta < 200ms.

Uso: "SLOs definem expectativas de performance do serviço."

SLA (Service Level Agreement)

Definição: Acordo formal sobre níveis de serviço.

Exemplo: Contrato com cliente sobre disponibilidade e performance.

Uso: "SLA define obrigações contratuais de qualidade de serviço."

🧪 Termos de Testes

Unit Test

Definição: Teste que verifica uma unidade específica de código.

Exemplo: Teste de um método ou classe isoladamente.

Uso: "Unit tests garantem que cada componente funciona corretamente."

Integration Test

Definição: Teste que verifica interação entre componentes.

Exemplo: Teste de API ou comunicação com banco de dados.

Uso: "Integration tests verificam se componentes trabalham juntos."

End-to-End Test

Definição: Teste que verifica fluxo completo da aplicação.

Exemplo: Teste de cenário completo do usuário.

Uso: "E2E tests simulam uso real da aplicação."

Mock

Definição: Objeto que simula comportamento de dependência real.

Exemplo: Mock de banco de dados para testes.

Uso: "Mocks isolam unidades de código durante testes."

🔄 Termos de Padrões e Práticas

Design Pattern

Definição: Solução reutilizável para problemas comuns de design.

Exemplo: Singleton, Factory, Observer patterns.

Uso: "Design patterns ajudam a criar código mais limpo e manutenível."

Anti-pattern

Definição: Padrão que parece ser uma solução mas causa mais problemas.

Exemplo: God Object, Spaghetti Code, Golden Hammer.

Uso: "Anti-patterns devem ser evitados para manter qualidade do código."

Refactoring

Definição: Processo de melhorar código sem mudar comportamento externo.

Exemplo: Extrair método, renomear variável, reorganizar código.

Uso: "Refactoring melhora legibilidade e manutenibilidade do código."

Technical Debt

Definição: Custo adicional futuro causado por escolhas técnicas inadequadas.

Exemplo: Código legado difícil de manter ou tecnologias obsoletas.

Uso: "Technical debt precisa ser pago para evitar problemas futuros."

📈 Termos de Métricas e Analytics

KPI (Key Performance Indicator)

Definição: Métrica que indica sucesso de objetivos de negócio.

Exemplo: Taxa de conversão, tempo de resposta, satisfação do cliente.

Uso: "KPIs ajudam a medir progresso em direção aos objetivos."

ROI (Return on Investment)

Definição: Medida de eficiência de um investimento.

Exemplo: Benefício financeiro dividido pelo custo do investimento.

Uso: "ROI ajuda a justificar investimentos em tecnologia."

MTTR (Mean Time to Recovery)

Definição: Tempo médio para recuperar de uma falha.

Exemplo: Tempo para restaurar serviço após incidente.

Uso: "MTTR é uma métrica importante para SRE."

MTBF (Mean Time Between Failures)

Definição: Tempo médio entre falhas de um sistema.

Exemplo: Tempo entre incidentes de disponibilidade.

Uso: "MTBF indica confiabilidade do sistema."

🚀 Termos de Deploy e Release

Blue-Green Deployment

Definição: Estratégia de deploy com duas versões idênticas.

Exemplo: Troca instantânea entre versão antiga e nova.

Uso: "Blue-green deployment permite rollback instantâneo."

Canary Deployment

Definição: Deploy gradual para pequeno percentual de usuários.

Exemplo: Nova versão para 5% dos usuários primeiro.

Uso: "Canary deployment reduz risco de deploy de novas versões."

Rollback

Definição: Processo de reverter para versão anterior.

Exemplo: Voltar para versão estável após problema.

Uso: "Rollback é essencial para minimizar tempo de indisponibilidade."

Feature Flag

Definição: Técnica para habilitar/desabilitar funcionalidades dinamicamente.

Exemplo: Controle de acesso a novas features sem deploy.

Uso: "Feature flags permitem deploy seguro e testes A/B."

📚 Recursos Adicionais

Livros Recomendados

  • "The Pragmatic Programmer" - Andrew Hunt, David Thomas
  • "Clean Code" - Robert C. Martin
  • "Design Patterns" - Gang of Four
  • "Site Reliability Engineering" - Google

Sites e Documentações

🎯 Conclusão

Este dicionário serve como referência rápida para termos técnicos comuns em desenvolvimento de software. Manter-se atualizado com estes termos é essencial para comunicação efetiva em equipes técnicas e para compreensão de documentações e artigos técnicos.