Grupo no WhatsApp🔤 Glossário
- Algoritmo: Conjunto ordenado de passos para resolver um problema. É como uma receita: entradas definidas, sequência lógica, resultado esperado.
- Variável: Espaço nomeado na memória que armazena um valor que pode mudar durante a execução do programa.
- Constante: Valor fixo que não muda durante a execução do programa. Em JavaScript, declarada com `const`.
- Tipo de dado: Classificação dos valores que uma variável pode armazenar: inteiro, float, string, booleano, etc.
- Função: Bloco reutilizável de código que executa uma tarefa específica. Recebe parâmetros e pode retornar um valor.
- Parâmetro: Variável definida na assinatura de uma função que recebe o valor passado na chamada (argumento).
- Argumento: Valor concreto passado para uma função no momento da sua chamada.
- Retorno: Valor que uma função devolve ao código que a chamou, via instrução `return`.
- Escopo: Região do código onde uma variável é acessível. Pode ser global, local ou de bloco.
- Recursão: Quando uma função chama a si mesma para resolver um problema, dividindo-o em casos menores.
- Booleano: Tipo de dado com apenas dois valores possíveis: verdadeiro (true) ou falso (false).
- Operador Ternário: Atalho para if/else em uma linha: `condição ? valorSeVerdadeiro : valorSeFalso`.
- Expressão: Qualquer combinação de valores, variáveis e operadores que produz um resultado.
- Declaração: Instrução completa que realiza uma ação, como declarar uma variável ou chamar uma função.
- Sintaxe: Conjunto de regras que define como o código deve ser escrito para ser válido em uma linguagem.
- Semântica: Significado das instruções de um programa — o que o código faz de fato, além de ser sintaticamente correto.
- Compilação: Processo de traduzir código-fonte legível por humanos para código executável pela máquina.
- Interpretação: Execução do código linha a linha por um interpretador, sem gerar um arquivo executável separado.
- Runtime: Ambiente em que o código executa, como o navegador ou o Node.js para JavaScript.
- Depuração (Debug): Processo de identificar e corrigir erros no código, muitas vezes com ferramentas de inspeção passo a passo.
- Stack Overflow: Erro causado quando a pilha de chamadas de funções transborda, geralmente por recursão infinita.
- Null: Valor que representa a ausência intencional de qualquer objeto ou valor.
- Undefined: Valor atribuído automaticamente a variáveis declaradas mas não inicializadas.
- Tipagem dinâmica: Quando o tipo de uma variável é determinado em tempo de execução, não na declaração.
- Tipagem estática: Quando o tipo de uma variável deve ser declarado explicitamente e é verificado em tempo de compilação.
- Array: Coleção ordenada de elementos acessíveis por índice numérico, começando em zero.
- Lista Ligada: Estrutura onde cada elemento (nó) aponta para o próximo, formando uma cadeia.
- Pilha (Stack): Estrutura LIFO (último a entrar, primeiro a sair). Pense em uma pilha de pratos.
- Fila (Queue): Estrutura FIFO (primeiro a entrar, primeiro a sair). Como uma fila de banco.
- Árvore: Estrutura hierárquica com um nó raiz que se ramifica em nós filhos e assim por diante.
- Árvore Binária: Árvore onde cada nó tem no máximo dois filhos: esquerdo e direito.
- Grafo: Conjunto de nós (vértices) conectados por arestas. Pode representar redes, mapas e relacionamentos.
- Hash Map: Estrutura que armazena pares chave-valor com acesso em tempo constante O(1) na média.
- Set: Coleção de valores únicos, sem duplicatas.
- Índice: Posição de um elemento em uma estrutura de dados, geralmente começando em 0.
- Nó: Unidade fundamental de estruturas como listas, árvores e grafos, contendo um valor e referências.
- Heap: Estrutura de árvore que satisfaz a propriedade heap: o pai é sempre maior (max-heap) ou menor (min-heap) que os filhos.
- Complexidade de Tempo: Medida de quanto tempo um algoritmo leva em função do tamanho da entrada, expressada em notação Big O.
- Big O Notation: Forma de descrever o pior caso de crescimento de tempo/espaço de um algoritmo. Ex: O(n), O(log n), O(n²).
- Busca Binária: Algoritmo que encontra um elemento em uma lista ordenada dividindo-a ao meio repetidamente. O(log n).
- Busca Linear: Percorre todos os elementos um a um até encontrar o alvo. Simples mas O(n).
- Ordenação por Bolha: Bubble Sort: compara pares adjacentes e os troca se necessário, repetidamente. Simples mas ineficiente: O(n²).
- Merge Sort: Divide a lista em metades, ordena cada parte recursivamente e as une. Eficiente: O(n log n).
- Quick Sort: Escolhe um pivô e particiona os elementos menores à esquerda e maiores à direita, recursivamente.
- Programação Dinâmica: Técnica que resolve problemas complexos dividindo-os em subproblemas e armazenando os resultados para reuso.
- Algoritmo Guloso: Toma sempre a decisão localmente ótima em cada etapa, esperando chegar ao ótimo global.
- DFS: Depth-First Search: busca em profundidade em grafos/árvores, explorando um caminho até o fim antes de voltar.
- BFS: Breadth-First Search: busca em largura, explorando todos os vizinhos de um nível antes de avançar.
- Objeto: Instância de uma classe que combina dados (atributos) e comportamentos (métodos) em uma única entidade.
- Classe: Molde ou template para criar objetos, definindo atributos e métodos comuns.
- Instância: Objeto concreto criado a partir de uma classe com o operador `new`.
- Atributo: Variável que pertence a um objeto ou classe, descrevendo suas características.
- Método: Função que pertence a um objeto ou classe, definindo seus comportamentos.
- Herança: Mecanismo que permite a uma classe (filha) herdar atributos e métodos de outra (pai), promovendo reutilização.
- Encapsulamento: Princípio de esconder os detalhes internos de um objeto, expondo apenas o necessário via interface pública.
- Polimorfismo: Capacidade de objetos de diferentes classes responderem ao mesmo método de formas distintas.
- Abstração: Modelar apenas os aspectos relevantes de um conceito, ignorando detalhes desnecessários.
- Interface: Contrato que define quais métodos uma classe deve implementar, sem ditar como.
- Construtor: Método especial chamado ao instanciar um objeto, usado para inicializar seus atributos.
- SOLID: Cinco princípios de design OO: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
- Design Pattern: Solução reutilizável para problemas comuns de design de software. Ex: Singleton, Observer, Factory.
- Singleton: Padrão que garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso.
- Factory: Padrão que define uma interface para criar objetos, deixando subclasses decidirem qual classe instanciar.
- Observer: Padrão onde um objeto (sujeito) notifica automaticamente seus dependentes (observadores) sobre mudanças.
- HTML: HyperText Markup Language: linguagem de marcação que estrutura o conteúdo das páginas web.
- CSS: Cascading Style Sheets: linguagem para estilizar elementos HTML — cores, fontes, layout e animações.
- JavaScript: Linguagem de programação que adiciona interatividade e lógica dinâmica às páginas web.
- DOM: Document Object Model: representação em árvore dos elementos de uma página, manipulável via JavaScript.
- Componente: Unidade independente e reutilizável de interface, com sua própria lógica e apresentação.
- Estado (State): Dados que determinam como um componente renderiza e se comporta, podendo mudar ao longo do tempo.
- Props: Propriedades passadas de um componente pai para um filho, como argumentos de uma função.
- Renderização: Processo de gerar a interface visual a partir do estado e do código do componente.
- Responsividade: Capacidade de uma interface se adaptar a diferentes tamanhos de tela e dispositivos.
- Mobile First: Estratégia de design que prioriza dispositivos móveis antes de adaptar para telas maiores.
- Design System: Conjunto padronizado de componentes, tokens e guidelines que garantem consistência visual em um produto.
- CSS Grid: Sistema de layout bidimensional do CSS que permite criar grids complexos com linhas e colunas.
- Flexbox: Modelo de layout CSS unidimensional para distribuir espaço e alinhar itens em uma direção.
- Media Query: Regra CSS que aplica estilos condicionalmente com base em características do dispositivo, como largura.
- Acessibilidade (a11y): Prática de tornar interfaces usáveis por pessoas com deficiências, seguindo padrões como WCAG.
- SEO: Search Engine Optimization: conjunto de práticas para melhorar o posicionamento de páginas em buscadores.
- SPA: Single Page Application: app que carrega uma única página HTML e atualiza o conteúdo dinamicamente.
- SSR: Server-Side Rendering: renderização do HTML no servidor antes de enviá-lo ao cliente.
- SSG: Static Site Generation: geração das páginas em tempo de build, resultando em arquivos HTML estáticos.
- Hydration: Processo em que o JavaScript assume o controle do HTML estático gerado pelo servidor, tornando-o interativo.
- jQuery: Biblioteca JavaScript que simplifica manipulação do DOM, eventos e requisições AJAX.
- Bundle: Arquivo único gerado por um bundler (como Webpack ou Vite) que agrupa múltiplos módulos JS.
- Lazy Loading: Carregamento adiado de recursos (imagens, módulos) apenas quando necessários, melhorando performance.
- API: Application Programming Interface: interface que define como sistemas ou componentes se comunicam entre si.
- REST: Architectural style para APIs que usa métodos HTTP (GET, POST, PUT, DELETE) e URLs para manipular recursos.
- GraphQL: Linguagem de consulta para APIs que permite ao cliente especificar exatamente os dados que precisa.
- HTTP: HyperText Transfer Protocol: protocolo de comunicação usado na web para troca de dados.
- HTTPS: Versão segura do HTTP que usa criptografia TLS/SSL para proteger os dados transmitidos.
- Status Code: Código numérico na resposta HTTP indicando o resultado. Ex: 200 (OK), 404 (não encontrado), 500 (erro).
- Endpoint: URL específica de uma API que aceita requisições para um recurso ou operação específica.
- Middleware: Software que fica entre o cliente e o servidor, interceptando requisições para processar, autenticar ou logar.
- Deploy: Processo de disponibilizar uma aplicação em um servidor ou serviço de nuvem para uso em produção.
- Servidor: Computador ou programa que processa requisições e fornece serviços a outros computadores (clientes).
- Cache: Armazenamento temporário de dados frequentemente acessados para acelerar respostas futuras.
- Load Balancing: Distribuição de requisições entre múltiplos servidores para evitar sobrecarga e melhorar disponibilidade.
- Microserviços: Arquitetura onde uma aplicação é dividida em serviços pequenos, independentes e especializados.
- Monolito: Aplicação onde todos os componentes (frontend, backend, banco) estão integrados em um único sistema.
- Containerização: Empacotamento de uma aplicação com suas dependências em um container isolado (ex: Docker).
- Docker: Plataforma para criar, distribuir e executar aplicações em containers padronizados.
- Kubernetes: Sistema de orquestração de containers que automatiza deploy, escalabilidade e gerenciamento.
- CI/CD: Continuous Integration / Continuous Delivery: automação de build, testes e deploy a cada mudança no código.
- Environment Variable: Variável de configuração definida no sistema operacional, usada para guardar segredos e configurações.
- Log: Registro de eventos do sistema para monitoramento, diagnóstico e auditoria.
- Latência: Tempo entre o envio de uma requisição e o recebimento da resposta.
- Throughput: Quantidade de requisições que um sistema consegue processar por unidade de tempo.
- XML: Extensible Markup Language: formato de marcação para representar dados estruturados de forma legível.
- JSON: JavaScript Object Notation: formato leve de troca de dados, legível por humanos e fácil de parsear.
- Webhook: Mecanismo onde um servidor envia dados automaticamente para outro via HTTP quando um evento ocorre.
- WebSocket: Protocolo de comunicação bidirecional e persistente entre cliente e servidor, sem precisar reabrir conexões.
- Framework: Conjunto de ferramentas, bibliotecas e convenções que agilizam o desenvolvimento de aplicações.
- CMD: Prompt de Comando do Windows para executar tarefas e comandos de sistema via interface de texto.
- Banco de Dados: Sistema organizado para armazenar, gerenciar e recuperar dados de forma eficiente.
- SQL: Structured Query Language: linguagem padrão para consultar e manipular bancos de dados relacionais.
- NoSQL: Bancos não-relacionais que armazenam dados em formatos alternativos: documentos, grafos, chave-valor, colunas.
- Tabela: Estrutura de banco de dados relacional que organiza dados em linhas e colunas.
- Query: Consulta feita ao banco de dados para buscar, inserir, atualizar ou deletar informações.
- JOIN: Operação SQL que combina registros de duas ou mais tabelas com base em uma condição.
- Índice (DB): Estrutura auxiliar no banco de dados que acelera buscas, semelhante ao índice de um livro.
- Chave Primária: Campo que identifica de forma única cada registro em uma tabela do banco relacional.
- Chave Estrangeira: Campo que referencia a chave primária de outra tabela, criando um relacionamento.
- ORM: Object-Relational Mapping: camada que converte objetos do código em registros do banco e vice-versa.
- Migration: Script versionado que aplica ou reverte mudanças no esquema do banco de dados.
- ACID: Propriedades que garantem transações confiáveis: Atomicidade, Consistência, Isolamento e Durabilidade.
- Transação: Conjunto de operações tratadas como uma unidade — ou todas executam, ou nenhuma.
Controle de Versão e Colaboração
- Git: Sistema de controle de versão distribuído para rastrear mudanças no código e coordenar equipes.
- GitHub: Plataforma de hospedagem de repositórios Git com ferramentas de colaboração e CI/CD.
- Repositório: Local (local ou remoto) onde o código e histórico de versões de um projeto são armazenados.
- Branch: Linha de desenvolvimento paralela que permite trabalhar em features sem afetar a branch principal.
- Commit: Registro imutável de um conjunto de mudanças no repositório, com mensagem descritiva.
- Merge: Ação de integrar as mudanças de uma branch em outra.
- Rebase: Reaplica commits de uma branch sobre outra, reescrevendo o histórico para ficar linear.
- Fork: Cópia independente de um repositório, geralmente usada para contribuir em projetos open source.
- Pull Request: Proposta de integração de mudanças de uma branch, que passa por revisão antes do merge.
- Code Review: Revisão do código por outros desenvolvedores para garantir qualidade e compartilhar conhecimento.
- Conflict: Situação onde duas branches modificaram as mesmas linhas de código e o Git não consegue mesclar automaticamente.
- Stash: Salva temporariamente mudanças não commitadas para limpar o working directory.
- Tag: Marcador imutável em um commit específico, geralmente usado para marcar releases (v1.0.0).
- Issue: Registro de bug, tarefa ou sugestão em um projeto, usado para rastrear e organizar o trabalho.
- Versionamento Semântico: Convenção de versões no formato MAJOR.MINOR.PATCH que comunica o tipo de mudança (ex: 2.1.0).
- Pair Programming: Prática onde dois desenvolvedores trabalham juntos no mesmo código, alternando papéis de piloto e copiloto.
- Scrum: Framework ágil com sprints curtos, reuniões diárias (standups), sprint reviews e retrospectivas.
- Kanban: Sistema visual de gestão de fluxo de trabalho com colunas (A fazer, Em andamento, Feito).
- Agile: Filosofia de desenvolvimento iterativo e incremental com foco em colaboração e adaptação a mudanças.
- Sprint: Período de trabalho fixo (geralmente 1-4 semanas) onde o time entrega um incremento do produto.
- Backlog: Lista priorizada de funcionalidades, melhorias e bugs a serem trabalhados no produto.
- User Story: Descrição de uma funcionalidade do ponto de vista do usuário. Ex: 'Como usuário, quero poder logar com Google'.
- TDD: Test-Driven Development: escrever o teste antes do código de produção, guiando o design pela testabilidade.
- DRY: Don't Repeat Yourself: princípio que diz que cada lógica deve existir em um único lugar no código.
- KISS: Keep It Simple, Stupid: preferir soluções simples e diretas a complexas desnecessariamente.
- YAGNI: You Aren't Gonna Need It: não implementar funcionalidades antes de ter certeza que serão necessárias.
- Refatoração: Reestruturar código existente sem alterar seu comportamento externo, melhorando legibilidade e manutenção.
- Code Smell: Indicação no código de que algo pode estar errado no design, como funções muito longas ou muita duplicação.
- Débito Técnico: Custo futuro de manutenção gerado por escolhas rápidas ou ruins no design do código.
- MVP: Minimum Viable Product: versão com o mínimo de funcionalidades para validar a ideia com usuários reais.
- Autenticação: Processo de verificar a identidade de um usuário (quem você é). Ex: login com senha.
- Autorização: Processo de verificar o que um usuário autenticado pode fazer (o que você pode acessar).
- JWT: JSON Web Token: padrão para transmitir informações de autenticação de forma compacta e assinada.
- OAuth: Protocolo de autorização que permite que aplicações acessem recursos de outra aplicação em nome do usuário.
- Hash: Função matemática unidirecional que transforma dados em uma string de tamanho fixo. Usada para senhas.
- Criptografia: Transformação de dados em formato ilegível para protegê-los, revertível apenas com a chave correta.
- SQL Injection: Ataque que insere código SQL malicioso em inputs para manipular o banco de dados.
- XSS: Cross-Site Scripting: ataque que injeta scripts maliciosos em páginas web vistas por outros usuários.
- CSRF: Cross-Site Request Forgery: ataque que engana o usuário para executar ações não desejadas em outra aplicação.
- CORS: Cross-Origin Resource Sharing: política que controla quais origens podem acessar recursos de um servidor.
- HTTPS/TLS: Protocolo de segurança que criptografa a comunicação entre cliente e servidor.
- Firewall: Sistema que monitora e filtra o tráfego de rede com base em regras de segurança definidas.