Grupo no WhatsApp

🔤 Glossário

Conceitos Fundamentais

  • 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.

Estruturas de Dados

  • 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.
  • : 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.

Algoritmos

  • 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.

Orientação a Objetos

  • 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.

Desenvolvimento Frontend

  • 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.

Backend e Infraestrutura

  • 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

  • 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.

Metodologias e Processos

  • 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.

Segurança

  • 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.