Dicionário de termos técnicos com explicações simples e detalhadas
API é como um "garçom" entre dois sistemas. Imagine que você está em um restaurante: você (o aplicativo) quer pedir comida da cozinha (outro sistema), mas não pode entrar lá diretamente. O garçom (API) leva seu pedido para a cozinha e traz a comida de volta para você.
Interface de programação que define métodos de comunicação entre componentes de software. Especifica como diferentes sistemas podem interagir através de endpoints, métodos HTTP (GET, POST, PUT, DELETE) e formatos de dados como JSON.
Exemplo: GET /api/users retorna lista de usuários
Azure é como um "shopping center virtual" da Microsoft onde você pode alugar espaços para colocar seus sites, aplicativos e dados. Em vez de comprar computadores próprios, você "aluga" o que precisa na nuvem.
Plataforma de computação em nuvem da Microsoft que oferece serviços como App Service (hospedagem web), Storage (armazenamento), SQL Database, Active Directory, Functions (serverless), entre outros.
Usado em: Projetos Hub, Seed e Python Training
Backend é a "cozinha" do restaurante. É onde toda a "magia" acontece: processar pedidos, buscar informações no banco de dados, fazer cálculos. O cliente não vê, mas é essencial para tudo funcionar.
Parte do sistema responsável pela lógica de negócio, processamento de dados, autenticação, autorização e comunicação com bancos de dados. Roda no servidor, não no navegador do usuário.
Tecnologias: Python/Flask, Node.js, Java, APIs REST
Branch é como criar uma "cópia paralela" do seu projeto para trabalhar sem bagunçar o original. É como tirar xerox de um documento para fazer anotações sem estragar o original.
Ramificação no Git que permite desenvolvimento paralelo de features. A branch main contém o código estável, enquanto branches de feature (feature/login) isolam desenvolvimento específico.
Comando: git checkout -b feature/nova-funcionalidade
Bootstrap é como um "kit de moldes" para fazer sites bonitos. Em vez de criar botões, menus e layouts do zero, você usa peças prontas que já ficam elegantes e funcionam em celular e computador.
Framework CSS que fornece componentes pré-construídos, grid system responsivo, utilitários de espaçamento e JavaScript para interações. Acelera desenvolvimento frontend com padrões consistentes.
Classes comuns: container, row, col-md-6, btn-primary
CSS é como a "roupa" do site. O HTML é como o corpo/esqueleto, e o CSS é a roupa que deixa tudo bonito: cores, tamanhos, posições, fontes. É o que faz um site ficar apresentável.
Linguagem de estilo que controla apresentação visual de elementos HTML. Define cores, layout, tipografia, responsividade e animações. Funciona com seletores, propriedades e valores.
Exemplo: .btn { background-color: #007bff; }
Commit é como tirar uma "foto" do seu progresso no projeto. Cada foto fica salva com uma descrição do que você fez. Se algo der errado, você pode voltar para uma "foto" anterior.
Snapshot do estado atual do código que fica permanentemente salvo no histórico Git. Cada commit tem hash único, mensagem descritiva, autor e timestamp.
Comando: git commit -m "feat: adicionar login com Google"
Container é como uma "caixa de mudança" para programas. Você coloca seu aplicativo e tudo que ele precisa dentro da caixa, e ela funciona igual em qualquer computador, sem conflitos.
Unidade de software que empacota aplicação com todas dependências (libraries, runtime, ferramentas). Garante consistência entre ambientes (dev, test, prod) usando virtualização em nível de OS.
Comando: docker run -p 5000:5000 minha-app
Banco de dados é como um "arquivo gigante e organizado" onde o sistema guarda todas as informações: usuários, produtos, pedidos, etc. É como uma biblioteca super organizada onde você encontra tudo rapidinho.
Sistema de armazenamento estruturado que organiza dados em tabelas (SQL) ou documentos (NoSQL). Permite operações CRUD (Create, Read, Update, Delete) com queries otimizadas e transações ACID.
Tipos: PostgreSQL, MySQL, MongoDB, SQLite
Docker é como uma empresa de mudanças que embala seu aplicativo em caixas padronizadas. Não importa se você está mudando de casa ou escritório - as caixas funcionam em qualquer lugar.
Plataforma de containerização que simplifica deployment e versionamento de aplicações. Usa Dockerfile para definir ambiente, docker-compose para orquestração multi-container.
Arquivo: docker-compose.yml nos projetos Hub e Seed
Flask é como um "kit de ferramentas" para criar sites em Python. É mais simples que outras ferramentas - você pega só o que precisa e monta seu site do jeito que quiser.
Micro-framework web para Python, minimalista e flexível. Oferece routing, templating (Jinja2), sessions, mas deixa escolha de database, forms, auth por conta do desenvolvedor.
Exemplo: @app.route('/api/users')
Frontend é a "vitrine da loja" - tudo que o cliente vê e toca: botões, menus, cores, textos. É a parte bonita e interativa do site que roda no seu navegador.
Interface do usuário que roda no browser. Usa HTML (estrutura), CSS (visual), JavaScript (interatividade). Comunica com backend via APIs para buscar/enviar dados.
Tecnologias: HTML5, CSS3, JavaScript ES6+, Bootstrap
Git é como um "histórico detalhado" de tudo que aconteceu no seu projeto. Ele guarda cada mudança, quem fez, quando fez, e permite voltar no tempo se algo der errado.
Sistema de controle de versão distribuído. Cada desenvolvedor tem cópia completa do histórico. Permite branches paralelas, merge de mudanças, resolução de conflitos.
Comandos: git add, git commit, git push, git pull
GitHub é like um "Google Drive para programadores". Você salva seu código lá, outras pessoas podem ver e ajudar, além de ter ferramentas para gerenciar projetos em equipe.
Plataforma de hospedagem Git com interface web. Oferece repositories, pull requests, issues, actions (CI/CD), pages (hosting), collaboration tools.
Features: Pull Requests, GitHub Actions, GitHub Pages
HTML é como o "esqueleto" de uma página web. Define onde vai o título, onde vai o texto, onde vai a imagem - a estrutura básica. É como a planta de uma casa.
Linguagem de marcação que estrutura conteúdo web usando tags. Define elementos semânticos como headers, paragraphs, links, images, forms.
Tags: <div>, <p>, <h1>, <a>, <img>
HTTP é como o "idioma" que seu navegador usa para conversar com sites. HTTPS é a versão "segura" - como falar em código para ninguém escutar a conversa.
Protocolo de comunicação web. HTTP transfere dados em texto claro, HTTPS adiciona criptografia TLS/SSL. Usa métodos GET, POST, PUT, DELETE e status codes (200, 404, 500).
Status: 200 OK, 404 Not Found, 500 Server Error
JavaScript é como o "cérebro" das páginas web. Ele faz as coisas se moverem, responderem a cliques, validarem formulários - tudo que é interativo no site.
Linguagem de programação interpretada que roda no browser (e server com Node.js). Manipula DOM, faz requisições AJAX, valida forms, cria animações.
Exemplo: document.getElementById('btn').addEventListener('click', ...)
JSON é como uma "linguagem universal" para sistemas trocarem informações. É como escrever uma carta em um formato que qualquer programa consegue entender.
Formato de dados texto para intercâmbio entre sistemas. Usa chaves-valor, arrays, objetos aninhados. Padrão para APIs REST.
Exemplo: {"name": "João", "age": 25}
OAuth é como um "sistema de visitante" de um prédio. Você se identifica na portaria (Google, Facebook) e ganha uma "pulseirinha" (token) para entrar em outros sites sem precisar dar sua senha.
Protocolo de autorização que permite aplicações acessarem recursos em nome do usuário sem exposição de credenciais. Usado em "Login com Google", "Login com Facebook".
Flow: Authorization Code → Access Token → Resource Access
OIDC é como um "RG digital". Além de autorizar o acesso (como OAuth), ele também confirma quem você é - seu nome, email, foto - de forma segura.
Camada de identidade sobre OAuth 2.0. Adiciona ID Token (JWT) com informações do usuário. Padrão para Single Sign-On (SSO) e autenticação federada.
Usado em: Projeto Reino OIDC para aprendizado
Python é uma linguagem de programação "fácil de ler". É como se fosse quase português - você lê o código e entende o que está acontecendo, mesmo sem ser programador.
Linguagem interpretada, dinamicamente tipada, com sintaxe clara. Usada em web (Flask/Django), data science, AI, automação. Grande ecossistema de bibliotecas (pip).
Versão: Python 3.11+ nos projetos Cara Core
Pull Request é como pedir para alguém revisar seu trabalho antes de entregar. Você mostra o que fez e pede: "Pode dar uma olhada? Está bom para juntar com o projeto principal?"
Mecanismo do GitHub para propor mudanças no código. Permite code review, discussão, testes automáticos antes do merge. Inclui diff de mudanças e histórico de commits.
Processo: Branch → Push → PR → Review → Merge
Repositório é como uma "pasta de projeto" que guarda tudo: código, imagens, documentos, histórico de mudanças. É onde vive o projeto completo.
Diretório Git que contém todos arquivos do projeto, histórico de commits, branches, tags. Pode ser local (sua máquina) ou remoto (GitHub, GitLab).
Estrutura: .git/, código fonte, README.md, .gitignore
REST API é como um "cardápio padronizado" para sistemas. Você pede informações usando "verbos" específicos (GET para pegar, POST para criar) e recebe a resposta organizada.
Architectural style para APIs web usando HTTP methods (GET, POST, PUT, DELETE), status codes, JSON, URLs representando recursos.
Exemplo: GET /api/users/123 retorna usuário ID 123
SQL é a "linguagem" para conversar com bancos de dados. É como fazer perguntas organizadas: "Me dê todos os usuários que se cadastraram hoje" ou "Apague este produto".
Linguagem para gerenciar dados relacionais. Comandos principais: SELECT (consulta), INSERT (criar), UPDATE (alterar), DELETE (remover).
Exemplo: SELECT * FROM users WHERE age > 18
SSL/TLS é como um "envelope lacrado" para proteger informações na internet. Quando você vê o "cadeadinho" no navegador, significa que sua conversa com o site está protegida.
Protocolos criptográficos para comunicação segura. TLS é sucessor do SSL. Garante confidencialidade, integridade e autenticidade dos dados transmitidos.
Certificado: Let's Encrypt, certificados comerciais
Versionamento é como numerar as "edições" do seu projeto. Versão 1.0 é a primeira, 1.1 tem pequenas melhorias, 2.0 tem mudanças grandes. Como versões de um livro.
Sistema para identificar diferentes estados do software. Semantic Versioning (SemVer): MAJOR.MINOR.PATCH (ex: 2.1.3). Git tags marcam releases específicas.
Padrão: v1.0.0, v1.1.0, v2.0.0-beta
Virtual Environment é como ter "gavetas separadas" para cada projeto Python. Cada gaveta tem suas próprias ferramentas, sem misturar com outros projetos.
Ambiente isolado para projetos Python que mantém dependências separadas. Evita conflitos entre versões de bibliotecas em diferentes projetos.
Comando: python -m venv venv && venv\Scripts\activate