🌳 Árvore de Conceitos · Dataprev · estudos.aastera.com

65 tópicos · Tier → Tema → Tópico → Bloco → Conceito

Preparação FGV · 11/10/2026 (carregando) · Fonte: _PROGRESSO-ESTUDO.md · Última geração: 25/09/2026 20:41 · Dashboard geral →

cravou 1ª (correta sem dúvida) hesitou (correta mas pediu refresh) parcial (conceito ok, detalhe errado) gap real (errou, virou flashcard) não testado (canal C não rodou)
▸1️⃣Tier 1 — Geraisrisco eliminatório4 temas · 20 tópicos
▸Legislação2 tópicos
▸g2-lgpd-principios-agentes21 conceitos · 0🟢 0🟡 0🟠 0🔴 21⚪
▸1. Definições-chave (Art. 5º)4 conceitos
Dado pessoal
Dado pessoal sensível
Dado anonimizado
Banco de dados
▸3. Os 3 (na verdade 4) agentes (Art. 5º)4 conceitos
Encarregado (DPO)
Controlador decide, Operador executa. — Confundir os dois é erro clássico
Encarregado ≠ ANPD. — Encarregado é dentro da organização; ANPD é o órgão federal
Encarregado é obrigatório para o Controlador (Art. 41)
▸4. Bases legais para tratamento (Art. 7º)3 conceitos
Consentimento não é a única base — é uma das 10. Pega bastante gente
Consentimento tem que ser livre, informado, inequívoco, específico, destacado e **por escrito o…
Titular pode revogar consentimento a qualquer momento (Art. 8º, §5º)
▸6. ANPD — Autoridade Nacional de Proteção de Dados4 conceitos
Órgão federal
Funções: — fiscalizar, sancionar, orientar, regulamentar, elaborar diretrizes
Emite regulamentos infralegais (Resoluções)
É quem aplica sanções — , não os tribunais
▸9. Aplicação da LGPD (Art. 3º)6 conceitos
Em território nacional; **OU
Em oferta de bens/serviços a pessoas no Brasil; **OU
Sobre dados coletados no Brasil
Uso exclusivamente particular (pessoa física)
Fins jornalísticos, artísticos, acadêmicos
Segurança pública / defesa nacional / investigação criminal (têm regras próprias)
▸g3-legislacao-lai-marco-civil92 conceitos · 0🟢 0🟡 0🟠 0🔴 92⚪
▸Bloco 1 — Lei de Acesso à Informação (LAI) · Lei 12.527/201129 conceitos
Sujeitos passivos (quem tem que cumprir)
Órgãos públicos — dos 3 poderes (Executivo, Legislativo, Judiciário) e do MP, TCU, DPU
Todos os entes federativos — (União, Estados, DF, Municípios)
Autarquias, fundações públicas, empresas públicas, sociedades de economia mista
Entidades privadas sem fins lucrativos
5 diretrizes (art. 3º)
Transparência ATIVA vs PASSIVA
Divulgação espontânea (sem pedir)
Portais de transparência, sites institucionais
Rol mínimo: competências, endereços, telefones, orçamentos, licitações, contratos, repasses, remune…
Prazos de resposta (art. 11)
Imediato — se disponível
20 dias — prazo padrão pra responder
10 dias — prorrogável UMA vez com justificativa expressa (total máx 30 dias)
Recursos em caso de negativa
1ª instância: — autoridade hierarquicamente superior — 10 dias para recorrer
Órgão responde em **5 dias
2ª instância: — autoridade máxima do órgão
3ª instância: — CGU (Executivo Federal) → CMRI (Comissão Mista de Reavaliação de Informações)
Classificação da informação sigilosa (art. 24)
Reservada: — as acima + demais servidores DAS-101.5 ou superior
Informações que NÃO podem ser restringidas
Necessárias à tutela judicial de direitos fundamentais
Sobre condutas que impliquem violação dos direitos humanos praticada por agentes públicos
Sanções por descumprimento (art. 32-33)
Servidor público que recusar-se a fornecer info, retardar, destruir dolosamente etc. → **infração a…
Entidade privada que descumprir → multa, rescisão contratual, suspensão do direito de contratar
Gratuidade — como regra
Cobrança apenas do custo dos serviços de reprodução (fotocópia etc.)
▸Bloco 2 — Marco Civil da Internet · Lei 12.965/201430 conceitos
Fundamentos (art. 2º) — princípios estruturantes
Princípios (art. 3º)
Objetivos (art. 4º)
Promover **direito de acesso à internet a todos
Acesso à informação, conhecimento e participação na vida cultural e conduta dos assuntos públic…
Inovação — e fomento à ampla difusão de tecnologias
Adesão a padrões tecnológicos abertos
Neutralidade da rede (art. 9º) ⭐
Responsável pela transmissão deve tratar de forma isonômica quaisquer pacotes de dados
Discriminação/degradação — só permitida em 2 hipóteses
Zero rating (planos "grátis" pra apps específicos) é área controversa
Direitos do usuário (art. 7º) — 13 incisos, os principais
Inviolabilidade da intimidade — e da vida privada
Inviolabilidade e sigilo do fluxo de suas comunicações — pela internet (só por ordem judicial)
Inviolabilidade e sigilo das suas comunicações privadas armazenadas — (só por ordem judicial)
Não suspensão da conexão à internet — , salvo por débito diretamente decorrente de sua utilização
Manutenção da qualidade contratada da conexão
Informações claras e completas — constantes dos contratos de prestação de serviços
Não fornecimento a terceiros de seus dados pessoais
Consentimento expresso
Guarda de registros — DISTINÇÃO CRÍTICA ⚠️
Quem guarda
Prazo obrigatório
Responsabilidade civil por conteúdo de terceiros (art. 19)
Provedor de aplicação SÓ é responsabilizado por conteúdo gerado por terceiros SE
Exceção: pornografia de vingança/nudez não autorizada → basta notificação extrajudicial (art. 21)
⚠️ **Sub judice no STF (Tema 987)
Requisição de dados
Dados cadastrais
Registros de conexão, registros de acesso, comunicações armazenadas — **só com ordem judicial
▸Bloco 3 — Crimes Cibernéticos22 conceitos
Lei 12.737/2012 — "Lei Carolina Dieckmann
Pena original (2012): — detenção 3 meses a 1 ano e multa
Após Lei 14.155/2021 — ⭐: reclusão 1 a 4 anos e multa (aumento significativo)
Se resulta em prejuízo econômico: aumento **1/6 a 1/3
Se resulta em obtenção de conteúdo comunicações privadas, dados sigilosos ou controle remoto do dis…
Se há divulgação/comercialização dos dados: aumento **1/3 a 2/3
Contra autoridade (Presidente, Vice, Governador, Prefeito, Ministros): aumento **1/3 à metade
Inclui "telemático" ou de informação de utilidade pública"
Pena: detenção 1-3 anos + multa (dobra em calamidade pública)
Equipara cartão de crédito ou débito a documento particular
Falsificação de cartão → mesma pena de falsificação de documento particular
Lei 14.155/2021 — Fraude eletrônica + agravamento invasão
Aumento de pena de 1/3 a 2/3 — se cometida com uso de servidor mantido fora do território nacional
Aumento de 1/3 ao dobro se vítima é idoso ou vulnerável
Como visto acima: detenção 3m-1a → **reclusão 1-4a
Lei 14.132/2021 — Stalking (perseguição)
Lei 13.718/2018 — Crimes contra dignidade sexual (relevância cibernética)
Pena: reclusão 1-5a + multa
Aumento 1/3 a 2/3 se cometido por ex-parceiro afetivo ou com intuito de vingança/humilhação
737/2012 — = INVASÃO de dispositivo (acesso indevido pra obter dados)
718/2018 art. 218-C — = DIVULGAÇÃO de material íntimo sem consentimento
Comparativo cronológico dos crimes cibernéticos
▸Bloco 4 — Armadilhas FGV + Checklist Mental2 conceitos
Armadilhas recorrentes
Checklist mental antes de responder Legislação
▸Ganchos pro JM4 conceitos
Direito não é sua praia natural
Analogia útil
Mnemônicos-chave
Não decorar TODOS os incisos — foco em conceitos + números-chave + armadilhas
▸Rotina sugerida (microdose 10-15 min/dia)5 conceitos
Semana 1 (agora): — LAI panorâmica + prazos + classificação
Semana 2: — LAI recursos + Marco Civil princípios + neutralidade
Semana 3: — Marco Civil guarda de registros + responsabilidade art. 19
Semana 4: — Crimes cibernéticos (12.737 + 14.155 + 218-C)
Semana 5+: — Revisão dirigida via banco legislacao.yaml (a ser criado)
▸Português11 tópicos
▸g4-portugues-regencia-verbal16 conceitos · 0🟢 0🟡 0🟠 0🔴 16⚪
▸Mnemônicos por família7 conceitos
assisti ao filme, mas assisti a mãe doente"* — o "a" separa sentidos
aspiro ao cargo, aspiro o ar"* — abstrato leva "a", concreto não
visa ao lucro, visa o alvo"* — meta leva "a", mira não
tem -se, tem de"* — esqueci da chave? só se for "esqueci-me da chave
coisa vai direto, gente vai com A"* — pagou a conta ao garçom
chego a, estou em"* — cheguei a casa, estou em casa
preferi a, sem mais, sem do que"* — prefiro café a chá
▸Truques em prova9 conceitos
Truque 1 — Substituição por sinônimo
assistir" ambíguo → trocar por "ver" (VTD)
aspirar" ambíguo → trocar por "almejar" (VTD)
Truque 2 — Substituição por sinônimo concreto
visar" ambíguo → "carimbou o cheque" (concreto, VTD) vs "objetivou o lucro" (abstrato, VTD)
Truque 3 — Voz passiva analítica
obedecer" admite: "as normas são obedecidas
Truque 4 — Preencher lacuna com pronome
assisti-lhe" (sentido ajudar) vs "assisti a ele" (sentido ver)
▸g5-portugues-interpretacao-generos70 conceitos · 0🟢 0🟡 0🟠 0🔴 70⚪
▸Bloco 1 — Os 5 tipos textuais (estrutura formal, fixos)2 conceitos
Preditivo — (previsão do tempo, horóscopo) — verbo no futuro
Dialogal / conversacional — (diálogo, entrevista, chat)
▸Bloco 2 — Gêneros textuais (contextos sociais, infinitos)8 conceitos
Esfera jornalística
Artigo de opinião
Esfera literária
Esfera oficial/administrativa
Esfera técnica/científica
Esfera instrucional
Esfera publicitária
Esfera digital
▸Bloco 4 — Cadeia interpretativa: tema × tese × argumento7 conceitos
Assunto sobre o qual o texto trata — palavra ou expressão curta que resume o tópico
Ex.: um texto sobre uso excessivo de redes sociais na adolescência → tema = "redes sociais e adoles…
Ponto de vista defendido pelo autor sobre o tema — afirmação completa que expressa uma posição
Ex.: sobre o mesmo texto → tese = "o uso excessivo de redes sociais compromete o desenvolvimento co…
Justificativa que sustenta a tese — fato, dado, exemplo, autoridade citada que dá força à posição
Ex.: "estudo da OMS de 2024 aponta que jovens conectados >5h/dia têm 30% mais transtornos de ansied…
Fechamento que reafirma a tese à luz dos argumentos apresentados — recomendação, síntese, apelo
▸Bloco 5 — Inferência × pressuposto × subentendido (a distinção fina)14 conceitos
Conclusão que o leitor tira do texto sem ela estar dita literalmente
Ex.: "João desligou o guarda-chuva e sentou no café." → inferência: chovia lá fora
Base: raciocínio lógico + conhecimento de mundo aplicado ao texto
Informação implícita marcada por elementos linguísticos NO PRÓPRIO ENUNCIADO
Continua" — "O Brasil continua ilegal em X" pressupõe que já era ilegal antes
Já" — "Ele já foi ministro" pressupõe que não é mais
Também" — "Eu também gosto" pressupõe que alguém mais gosta
Adjetivos avaliativos — "o corrupto senador" pressupõe que o senador é corrupto
Informação implícita que depende do CONTEXTO/situação de comunicação
Ex.: "Está frio aqui." dito numa reunião com janela aberta → subentendido: "feche a janela"
Ex.: "Não vi seu carro hoje" dito pelo chefe → subentendido: "notei que você chegou atrasado / não…
Marca linguística
Depende de contexto
Negar o enunciado o cancela
▸Bloco 6 — Recursos expressivos e figuras15 conceitos
Ex.: em um dia catastrófico: "Que belo dia, hein
FGV cobra: identificar ironia + entender o efeito (crítica, humor, sarcasmo)
Ex.: "Vi o homem com o binóculo." — quem tinha o binóculo? Eu ou o homem
Pode ser defeito (falta de clareza) ou recurso (literatura, publicidade)
Ex.: "A vida é uma estrada
Símile / Comparação
Ex.: "A vida é como uma estrada
Ex.: "Ele adora Machado" (leu obras de Machado de Assis, não a pessoa)
Ex.: "Comprei uma gilette" (uma lâmina de barbear)
Ex.: "Estou morrendo de fome
Ex.: "Ele partiu" em vez de "morreu"
Personificação (prosopopeia)
Ex.: "O vento sussurrou entre as árvores
Ex.: "Choro e sorriso ao mesmo tempo
Ex.: "Amor é fogo que arde sem se ver" (Camões)
▸Bloco 7 — Coesão × Coerência3 conceitos
Amarração linguística superficial do texto — como as partes se ligam. Recursos
Elipse — omissão de termo recuperável. Ex.: "João foi. Maria também." (foi)
Exige: continuidade de tema, progressão de informação, não-contradição, articulação com conheciment…
▸Bloco 8 — Tipos de argumento (usados em textos dissertativos)4 conceitos
Causa e consequência
Comparação / Analogia
Oposição / Contra-argumento
Estatístico / Numérico
▸Bloco 9 — Progressão textual e organização11 conceitos
Progressão temática
Constante — mesmo tema, remas diferentes
Derivada — subtemas que se abrem a partir do tema geral
Rema × Tema
Tema — o que já foi dito, informação conhecida
Rema — a informação nova adicionada
Em bom português, tema vem antes; rema vem depois
Parágrafo padrão
Frase-tópico — (tese do parágrafo) → geralmente 1ª frase
Desenvolvimento — argumentos, exemplos
Conclusão parcial — ou transição — fecha ou puxa próximo
▸Ganchos pro JM6 conceitos
Notícia × reportagem × editorial × artigo de opinião
Metáfora × metonímia — clássico do vestibular; provavelmente já viu, revisar rápido
Pressuposto × subentendido
Coesão × coerência — tem intuição de bom texto, formalizar o nome do fenômeno
Tipos de argumento
Injuntivo — o mais fácil de identificar (receita/manual). Pouco atrito
▸g6-portugues-reescrita-equivalencia92 conceitos · 0🟢 0🟡 0🟠 0🔴 92⚪
▸Bloco 2 — Voz ativa ↔ Voz passiva17 conceitos
Voz passiva analítica (com verbo auxiliar)
Ativa: "O gerente aprovou o relatório
Passiva analítica: "O relatório foi aprovado pelo gerente
Voz passiva sintética (com pronome "se")
Ativa: "Alguém vendeu os ingressos rapidamente
Passiva sintética: "Venderam-se os ingressos rapidamente
Ou: "Vendem-se casas
Regras de conversão ativa → passiva
De (ativa)
Sujeito (agente)
Objeto direto
Verbo transitivo direto
Tempo verbal
João comprou a casa." → "A casa foi comprada por João." → "Comprou-se a casa
Os alunos leram os livros." → "Os livros foram lidos pelos alunos." → "Leram-se os livros
A empresa demitirá o funcionário." → "O funcionário será demitido pela empresa." → "Demitir-se-á o…
Pegadinhas FGV clássicas
▸Bloco 3 — Discurso direto ↔ Discurso indireto (o campo mais traiçoeiro)19 conceitos
Discurso direto
Ex.: João disse: "Eu vou hoje ao mercado aqui perto
Discurso indireto
Ex.: João disse que ele iria naquele dia ao mercado próximo dali
Tabela de transposições obrigatórias
Direto (fala reproduzida)
Pretérito perfeito
Futuro do presente
Presente do subjuntivo
Eu vou hoje" (presente) → ele disse que ia naquele dia (imperfeito)
Eu fui ontem" (perfeito) → ele disse que tinha ido no dia anterior (mais-que-perfeito)
Eu irei amanhã" (futuro) → ele disse que iria no dia seguinte (futuro do pretérito)
Vá embora!" (imperativo) → ele mandou que fosse* embora (imperfeito subjuntivo)
Eu / me / meu
Nós / nos / nosso
Você / seu
Este / esse
Isto / isso
Pegadinhas FGV
▸Bloco 4 — Transposição de tempos e correlação verbal6 conceitos
Regra da correlação
Pretérito perfeito
Eu sei que ele virá." (presente + futuro — correto)
Eu soube que ele viria." (perfeito + futuro do pretérito — correto)
❌ "Eu soube que ele virá." (perfeito + futuro puro — quebrou a correlação)
Casos que a FGV cobra
▸Bloco 5 — Inversão de ordem sem alterar sentido5 conceitos
Deslocamentos válidos
Adjunto adverbial pra frente: — "Ontem chegou o pacote." ↔ "O pacote chegou ontem." — sentido igual
Predicativo antecipado: — "Feliz é quem estuda." ↔ "Quem estuda é feliz." — igual
Oração subordinada antes: — "Quando chegou, ele já dormia." ↔ "Ele já dormia quando chegou." — igual
Objeto direto anteposto (com retomada por pronome):
▸Bloco 6 — Reescrita nominal ↔ verbal (nominalização)5 conceitos
Verbal: "Quando o país desenvolveu a indústria
Nominal: "Com o desenvolvimento da indústria pelo país
Nominal: "A aprovação da lei pelo congresso surpreendeu
Verbal: "Aprovar a lei / o fato de o congresso ter aprovado a lei surpreendeu
Correlação sistemática
▸Bloco 7 — Substituição por sinônimos e equivalências lexicais2 conceitos
Regras práticas
Sinônimos que a FGV troca com pegadinha
▸Bloco 8 — Conectores e equivalência lógica16 conceitos
Famílias de conectores intercambiáveis
porque, pois, uma vez que, visto que, já que, como (no início da frase)
Não saí porque chovia." ↔ "Não saí, pois chovia." ↔ "Como chovia, não saí
portanto, logo, por isso, assim, então, consequentemente
Estudou muito, portanto passou." ↔ "Estudou muito; logo, passou
mas, porém, contudo, todavia, no entanto, entretanto
Ela é competente, mas faltou." ↔ "Ela é competente; porém, faltou
embora, mesmo que, ainda que, apesar de (+ infinitivo), por mais que
Embora chovesse, saiu." ↔ "Apesar de chover, saiu." ↔ "Ainda que* chovesse, saiu
se, caso, contanto que, desde que, a menos que
Se estudar, passa." ↔ "Caso estude, passa." ↔ "Passa, desde que* estude
para (+ infinitivo), a fim de, com o intuito de, para que (+ subjuntivo)
Trabalha para viver." ↔ "Trabalha a fim de viver
e, além disso, também, ademais, ainda, outrossim
Estudou; além disso, praticou." ↔ "Estudou; também praticou
Pegadinhas de troca de conector
▸Bloco 9 — Reordenação de orações subordinadas7 conceitos
Principal + subordinada: "Ele saiu quando o sino tocou
Subordinada + principal: "Quando o sino tocou, ele saiu." (obriga vírgula)
Exemplos de mudança sutil
Os funcionários que reclamaram foram demitidos
Quando chove, saio
Embora chovesse, saiu
Como estudou, passou
▸Bloco 10 — Casos "Item mantém × item MUDA o sentido" (padrão de questão FGV)7 conceitos
Como identificar a que MUDA (checklist)
Exemplo de armadilha real
(A) "O funcionário, possivelmente, terminará o relatório hoje." — mantém (modalidade equivalente)
(B) "É possível que o funcionário termine o relatório hoje." — mantém
(C) "Talvez o funcionário consiga terminar hoje o relatório." — mantém (só ordem)
(D) "O funcionário deve terminar o relatório hoje
(E) "Provavelmente o funcionário terminará o relatório hoje."
▸Bloco 11 — Recategorização gramatical (mudança de classe)4 conceitos
Adjetivo ↔ oração adjetiva: — "aluno estudioso" ↔ "aluno que estuda muito"
Advérbio ↔ oração adverbial:
Substantivo ↔ oração substantiva: — "a saída do gerente" ↔ "que o gerente saiu"
Locução prepositiva ↔ oração adverbial: — "por causa da chuva" ↔ "porque choveu"
▸Bloco 12 — Reescrita e ambiguidade4 conceitos
Ambiguidade típica
Pronome com dois antecedentes possíveis
Escopo de negação: "Não vi todos os alunos." — não vi ninguém? não vi alguns
Modificador flutuante
▸g7-portugues-crase206 conceitos · 0🟢 0🟡 0🟠 0🔴 206⚪
▸Bloco 1 — O que é crase (fundamento zero)3 conceitos
Preposição "a" (exigida pelo verbo, nome, locução) + artigo "a" (feminino, definido)
Ou: preposição "a" + "a" inicial de pronomes demonstrativos "aquele/aquela/aquilo/aqueles/aquelas"
O gatilho básico
▸Bloco 2 — O truque da substituição (o único que precisa gravar)8 conceitos
Vou à escola
Cheguei à cidade
Fui a Roma
Refiro-me à carta
Prometi à amiga
Ela é a melhor aluna
Vou a Roma e volto de Roma" → sem artigo → sem crase: "Fui a Roma
Vou à Bahia e volto da Bahia" → tem artigo → crase: "Fui à Bahia
▸Bloco 3 — Casos OBRIGATÓRIOS de crase42 conceitos
Verbo/nome exigindo preposição "a" + palavra feminina com artigo
Assistir ao filme" (VTI) — masculino tem "ao"
Assistir à peça" — feminino tem crase
Referir-se à questão
Obedecer às normas
Recorrer à justiça
Locuções adverbiais femininas
à noite / à tarde / à meia-noite
à vista** (pagamento)
à toa** (sem sentido, no ar)
à mercê de
à custa de
à disposição
à espera de
à procura de
à prova de
às escondidas
às pressas
às claras / às escuras
Locuções conjuntivas femininas
à medida que — "À medida que o tempo passa
à proporção que — "À proporção que aumenta o esforço
Locuções prepositivas femininas
à beira de, à frente de, à espera de, à espreita de, à revelia de, à sombra de, à altura de, à cust…
À frente de* todos, o gerente falou
À moda de* Camões
Horas definidas
Às 8 horas / à uma hora / à meia-noite / às 15h
Teste: "vou ao meio-dia (não flexiona)" ↔ "vou à meia-noite" (com crase)
Verbos de movimento + destino feminino com artigo
Vou à cidade / à escola / à igreja / à padaria / à Bahia / à França
Regra: se o destino aceita artigo (regra do "volto da"), há crase
Pronomes demonstrativos "aquele/aquela/aquilo" precedidos de preposição "a
Refiro-me àquele rapaz." (a + aquele → àquele)
Cheguei àquela conclusão
Assisto àquilo com atenção
Locução "à moda de" implícita
Escreveu à Machado." (= à moda de Machado)
Jogou à Neymar." (= à moda de Neymar)
Mesmo sendo Machado ou Neymar palavras masculinas! ⚠️ Esse caso é armadilha FGV pura
Expressões de retorno com artigo
À exceção de X" (feminino, com artigo) — "À exceção de todos, ele passou
▸Bloco 4 — Casos PROIBIDOS de crase46 conceitos
Antes de palavra masculina
Comprei a cavalo." (locução — mas sem crase, "cavalo" é masculino)
Regra: crase exige artigo feminino "a". Antes de masculino, o artigo seria "o", não "a"
Antes de verbo (infinitivo)
Começou a chorar." — verbo no infinitivo não aceita artigo
Está a trabalhar." (uso lusitano) — sem crase
Passei a estudar mais
Antes de artigo indefinido
Refiro-me a uma pessoa." — "uma" não é artigo definido; sem crase
Cheguei a uma conclusão." — sem crase
Antes de pronomes pessoais (a maioria)
Falei a ela." — pronome pessoal não aceita artigo
Refiro-me a você
Entreguei a mim
Antes de pronomes de tratamento (a maioria)
Escrevi a Vossa Excelência." — sem crase
Dirigi-me a Sua Senhoria." — sem crase
Antes de palavras no plural precedidas de "a" no singular
Não vou a festas." — plural sem artigo (indefinido), a preposição está no singular; sem crase
⚠️ Mas: "Não vou às festas do bairro." — plural com artigo definido, crase (a + as = às)
Regra prática
Antes de nome de cidade sem qualificação
Fui a Roma / Paris / Belo Horizonte
Teste do "volto de": "volto de Roma" → sem artigo → sem crase
⚠️ Mas com qualificação
Antes de pronome relativo "que
A carta a que me refiro..." — sem crase (pronome relativo)
Antes de numerais cardinais indicando quantidade
Assisti a dois filmes." — sem crase (sem artigo)
⚠️ Mas com horas definidas: "Chegou às duas horas." — HORAS pede crase (sujeito específico)
Entre palavras repetidas em locução
Cara a cara
Frente a frente
Gota a gota
Face a face
Regra: repetição da mesma palavra em locução — sem crase, mesmo sendo feminina
Antes de "casa" (sentido "lar próprio", sem qualificação)
Voltei a casa." — sem crase (casa como lar próprio, sem determinante)
Exceção com qualificação: — "Voltei à casa dos meus pais." — casa qualificada = crase
Antes de "terra" (sentido "chão firme, oposto ao mar")
O marinheiro voltou a terra." — sem crase (terra firme, sem qualificação)
Exceção com qualificação: — "Voltei à terra natal." — terra qualificada = crase
Antes de "distância" (sem qualificação)
Ficou a distância." — sem crase (sem qualificação)
Exceção com qualificação de distância exata:
⚠️ Frase-teste FGV: "Vi de longe, ficou a distância." (sem crase, sem qualificação)
▸Bloco 5 — Casos FACULTATIVOS de crase9 conceitos
Antes de nomes próprios femininos de pessoa
Entreguei o presente a Maria." OU "Entreguei o presente à Maria." — ambos aceitos
Regra: opcional porque nomes próprios permitem artigo por intimidade/afeto ou não
Antes de pronomes possessivos femininos (minha, sua, nossa)
Refiro-me a minha irmã." OU "Refiro-me à minha irmã." — ambos aceitos
Regra: o artigo antes de possessivo é facultativo, logo a crase também
Depois da preposição "até
Fui até a praia." OU "Fui até à praia." — ambos aceitos
Regra: "até" pode ou não pedir preposição "a" adicional; se pedir, há crase
▸Bloco 6 — Casos especiais (as pegadinhas rambo)35 conceitos
"À vista" × "a vista
À vista — (locução adverbial de modo — pagamento): "Paguei à vista
A vista — (substantivo comum, sem crase): "A vista do mar era linda
"À noite" × "a noite
À noite — (locução adverbial de tempo): "Sai à noite
A noite — (substantivo com artigo): "A noite estava fria
"À toa" × "à-toa
À toa — (locução adverbial): "Anda à toa." (sem sentido)
À-toa — (adjetivo composto, com hífen): "É um sujeito à-toa." (insignificante)
"À medida que" × "na medida em que
À medida que — (proporção): "À medida que cresce, aprende." ✅ crase
Na medida em que
⚠️ Erro comum: "na medida que" (sem "em") — construção errada
"À procura de" × "a procura
À procura de — (locução prepositiva): "Anda à procura de emprego
A procura — (substantivo com artigo): "A procura por produtos aumentou
"Frente a" × "à frente de
Frente a — (sem crase — locução): "Frente a essa situação, decidimos
À frente de — (locução prepositiva com crase): "À frente de todos, o líder falou
⚠️ São locuções diferentes que carregam preposições diferentes
"À hora certa" × "a horas certas
À hora certa — (com crase): "Chegou à hora certa
A horas certas
Nomes de cidades — com e sem crase
Volto de Curitiba → sem artigo → "Vou a Curitiba" (sem crase)
Volto da Bahia → tem artigo → "Vou à Bahia" (com crase)
Volto de Manaus → sem artigo → "Vou a Manaus" (sem crase)
Volto do Rio de Janeiro → tem artigo
"À" antes de "que" (quando cabe crase)
Padrão sem crase: "A festa a que fui foi ótima." (relativo puro)
Padrão com crase
Teste: se o "à que" pode ser expandido como "à qual" ou "àquela que", há crase. Se é só "que" relat…
"À guisa de" × "a guisa
À guisa de
Não confundir com uso raro sem crase; a locução SEMPRE traz crase
▸Bloco 7 — A crase em pronomes demonstrativos (à + aquele/aquilo)8 conceitos
Como identificar
Assisto àquele filme." — assistir a + aquele = àquele
Refiro-me àquilo que você disse." — referir-se a + aquilo = àquilo
Cheguei àquela conclusão." — chegar a + aquela = àquela
Perdoou àqueles que erraram." — perdoar a + aqueles = àqueles
Refiro-me a isto." → há preposição → "Refiro-me àquilo
Vi aquele filme." (ver = VTD, sem preposição) → sem crase
Mas: "Assisti àquele filme." (assistir = VTI, com preposição) → crase
▸Bloco 8 — Tabela consolidada: quando SIM, quando NÃO, quando TANTO FAZ21 conceitos
Antes de palavra masculina
Antes de verbo (infinitivo)
Antes de artigo indefinido (uma, umas)
Antes de pronome pessoal
Antes de pronome de tratamento (Sr./Vossa Excelência)
Antes de plural sem artigo
Antes de nome de cidade sem qualificação (que não pede artigo)
Antes de pronome relativo "que" (puro)
Entre palavras iguais em locução
Antes de "casa", "terra", "distância" sem qualificação
Locuções adverbiais femininas (à noite, à vista, à toa)
Locuções prepositivas femininas (à frente de, à custa de)
Locuções conjuntivas femininas (à medida que)
Horas definidas (às 3 horas, à meia-noite)
Destino feminino com artigo (à Bahia, à França, à escola)
Verbo/nome que pede "a" + palavra fem. com artigo
Pronomes demonstrativos aquele/aquilo
À moda de" oculto (à Machado)
Antes de nome próprio de pessoa feminino
Antes de pronome possessivo feminino (minha, sua)
Depois de "até
▸Bloco 10 — Exemplos comentados de questão FGV típica15 conceitos
Padrão 1: identificar a única frase com crase CERTA
(A) "Vou à Roma antiga." → certo
(B) "Referi-me à este documento." → errado
(C) "Cheguei à minha casa." → facultativo (possessivo
(D) "Ele obedeceu à ordem à risca." → certo
(E) "Vim à cavalo." → errado (cavalo é masculino, sem crase)
Padrão 2: identificar a única frase com crase ERRADA
(A) "Chegou às oito horas." → certo (horas definidas)
(B) "Refiro-me à ela." → INCORRETO (pronome pessoal "ela" não aceita artigo)
(C) "Escreveu à mão." → certo (locução adverbial feminina)
(D) "Vou à Bahia amanhã." → certo (Bahia aceita artigo)
(E) "Assistimos àquela peça." → certo (a + aquela = àquela)
Padrão 3: preencher lacunas
Não me refiro a Vossa Excelência (pronome de tratamento, sem crase)
mas à empresa (verbo "referir-se" pede "a" + "empresa" é feminino com artigo → crase)
▸Bloco 12 — Tabela comparativa de casos comuns em prova FGV19 conceitos
Vou à escola
Vou a Roma
Vou à Roma antiga
Fui à casa dos meus pais
Voltei a casa
Refiro-me à senhora
Refiro-me a Vossa Excelência
Refiro-me a ele
Refiro-me a esta questão
Refiro-me àquela questão
Chegou à uma hora da manhã
Cheguei a uma conclusão
À medida que estuda, aprende
Estava frente a frente com o problema
Escreveu à mão
Vestido à Luís XV
Andava à cavalo
Ele começou à trabalhar
Refiro-me àquilo
▸g8-portugues-pontuacao-virgula133 conceitos · 0🟢 0🟡 0🟠 0🔴 133⚪
▸Bloco 1 — A regra-mãe: vírgula marca estrutura, não pausa3 conceitos
Termos que integram o núcleo do período (sujeito, verbo, complementos essenciais)
Termos que orbitam (adjuntos deslocados, apostos, vocativos, orações subordinadas)
Elementos coordenados — → separados por vírgula quando muitos, com conectores fixando as pontas
▸Bloco 2 — PROIBIÇÕES ABSOLUTAS (as 3 vírgulas assassinas)3 conceitos
Entre sujeito e verbo
Entre verbo e complemento essencial (objeto direto/indireto)
Entre nome e adjunto adnominal / complemento nominal essencial
▸Bloco 3 — Vírgula OBRIGATÓRIA (as 8 famílias que exigem)31 conceitos
João*, venha aqui
Venha aqui, João
Meus amigos, hoje é dia de festa
É preciso, senhores, que respeitem o edital
Aposto explicativo
Machado de Assis, escritor brasileiro, morreu em 1908
O gerente, meu amigo de infância, aprovou o projeto
Chegou o dono da empresa, um homem imponente
Adjunto adverbial DESLOCADO (deslocado do fim da frase)
Ontem à noite*, chegou o pacote
Depois de muitos anos de espera*, ele finalmente venceu
No fundo do quintal*, havia uma árvore antiga
Enumeração / termos coordenados assindéticos
Comprei pão, queijo, manteiga, leite e ovos
Ele é competente, dedicado, honesto
Oração subordinada adverbial DESLOCADA (antes da principal)
Quando chegou em casa*, todos já dormiam
Embora estivesse cansado*, ele saiu
Se ele estudar mais*, passará no concurso
Como choveu*, cancelaram a festa
Oração subordinada adjetiva EXPLICATIVA
Explicativa: "O aluno, que é dedicado, passou
Restritiva: "O aluno que é dedicado passou
Explicativa: TODO aluno é dedicado (informação adicional sobre TODOS os alunos)
Orações intercaladas / partículas expletivas
O gerente, digo, o supervisor, aprovou o projeto
A questão, é claro, foi resolvida
Sim, todos passaram, por assim dizer, com louvor
Conjunções coordenativas deslocadas / adversativas
Mas", "porém", "contudo", "todavia", "entretanto", "no entanto" — (adversativas)
Portanto", "logo", "por conseguinte", "por isso" — (conclusivas)
▸Bloco 4 — Vírgula FACULTATIVA (área cinza)9 conceitos
Adjunto adverbial curto no início
Ontem, saí cedo." OU "Ontem saí cedo." — ambos aceitos
Antes de "e" com mesmo sujeito e mesma extensão
Ele estuda e trabalha." (sem vírgula, padrão)
Ele estuda muito, e trabalha ainda mais." (com vírgula por ênfase/extensão — aceito)
Antes de "porque" curto
Não saiu porque chovia." OU "Não saiu, porque chovia
Ele não veio porque estava doente." (a razão de não ter vindo é a doença)
Ele não veio, porque estava doente."
▸Bloco 5 — A restritiva × explicativa (o campo mais denso)17 conceitos
Oração adjetiva restritiva
SEM vírgulas
RESTRINGE — o conjunto do antecedente (só uma parte se aplica)
Não pode ser eliminada sem alterar significativamente o sentido
Os alunos que estudaram passaram." → só os que estudaram passaram; os outros não
Os funcionários que reclamaram foram demitidos." → só os reclamantes
A cidade em que nasci é linda." → especifica qual cidade
Oração adjetiva explicativa
ENTRE vírgulas — (sempre — falta de uma vírgula é erro)
NÃO RESTRINGE — ; adiciona informação. Aplica-se ao antecedente inteiro
Pode ser eliminada sem prejuízo do sentido central
Os alunos, que estudaram, passaram." → TODOS os alunos estudaram; TODOS passaram
Machado de Assis, que era brasileiro, escreveu Dom Casmurro." → informação adicional
O Sol, que é uma estrela, aquece a Terra." → informação universal
Minha mãe que mora em SP me visitou." → ERRADO (implica que tenho VÁRIAS mães)
Minha mãe, que mora em SP, me visitou." → CORRETO (uma mãe única; informação adicional)
Contraste com pronome relativo "que
▸Bloco 6 — Ponto-e-vírgula (`;`)3 conceitos
Onde NÃO usar
Em substituição livre de ponto normal (é ponto atenuado, não substituto)
Para separar sujeito de verbo (mesma proibição da vírgula)
▸Bloco 7 — Dois pontos (`:`)2 conceitos
Onde NÃO usar
Depois de "como", "tal como", "por exemplo" seguidos de enumeração
▸Bloco 8 — Travessão (`—`)6 conceitos
Discurso direto em diálogos
Substituir vírgulas ou parênteses em aposto/oração intercalada com ênfase
O gerente — um homem imponente — entrou na sala
Equivalente a: "O gerente, um homem imponente, entrou na sala." (menos ênfase)
Destacar termo ao final de frase
Só uma coisa importava — a verdade
▸Bloco 9 — Aspas, reticências, ponto de exclamação/interrogação14 conceitos
Aspas ("..." ou «...»)
Marcar citação direta
Destacar palavra em sentido especial (ironia, estrangeirismo, gíria)
Ex.: "Ele é o 'gênio' da turma." (com ironia)
Reticências (...)
Marcar suspensão do pensamento, hesitação
Marcar continuidade implícita numa enumeração ("Frutas: maçã, banana, pera, uva...")
Marcar corte em citação (indicar omissão de trecho: "O texto diz: 'chegou (...) e saiu'")
Ponto de interrogação (?)
Ao final de pergunta direta
NÃO usar em pergunta INDIRETA: "Ele me perguntou se eu viria." (sem ?)
Ponto de exclamação (!)
Ao final de exclamação, ordem enfática, admiração
Em uso administrativo formal, evitar
▸Bloco 10 — Pegadinhas FGV específicas26 conceitos
Vírgula antes de "e
Regra padrão: — SEM vírgula quando os coordenados têm o mesmo sujeito
Vírgula quando os sujeitos são diferentes
Vírgula quando "e" tem valor adversativo — ("Estudou muito, e mesmo assim não passou.")
Vírgula antes de "mas
Sempre obrigatória. — "Ela estudou, mas não passou
Erro comum: omitir
Vírgula em oração restritiva
PROIBIDA. — "O aluno que estudou passou." (sem vírgulas)
Erro FGV clássico: colocar vírgulas ali por hábito
Vírgula em oração explicativa
OBRIGATÓRIA — (ambas as vírgulas). "O aluno, que é dedicado, passou
Erro: colocar só uma vírgula
Vírgula com aposto especificativo
NÃO usar. — "O rio Amazonas" (sem vírgulas — "Amazonas" restringe)
Vírgula entre sujeito longo e verbo
Vírgula entre verbo e complemento
PROIBIDA — em ordem canônica. "Comprei um livro." (não "Comprei, um livro.")
Vírgula em sujeito composto por "ou
Sem vírgula: "João ou Maria virá." (mesma regra do "e" com mesmo predicado)
Com vírgula: "Vem João, ou vem Maria, ou vem Pedro" (enumeração enfática)
Vírgula em incidental / parentética
Sempre entre vírgulas: "A questão, sem dúvida, é grave
Vírgula em datas e endereços
Datas: "Passo Fundo, 22 de setembro de 2026" (vírgula após local)
Endereços: "Rua X, nº 100, Bairro Y" — vírgulas separando os campos
▸Bloco 11 — Ordem NÃO canônica: quando vírgula APARECE por deslocamento6 conceitos
Frase (canônica)
Ele chegou ontem à noite
Comprei um livro para meu filho
Fui à escola porque queria estudar
Ele venceu apesar de todas as dificuldades
Ela é competente sem dúvida
▸Bloco 12 — Vírgula com conjunções (tabela detalhada)13 conceitos
e (mesmo sujeito)
e (sujeitos diferentes)
e (adversativo/enfático)
mas, porém, todavia, contudo, no entanto, entretanto
pois (= porque, causa, no final)
pois (= portanto, conclusão, no meio)
porque (causa, no fim)
que (relativo restritivo)
que (relativo explicativo)
quando, como, embora, se (subordinada)
portanto, logo, então, assim
além disso, ademais, também, ainda
por exemplo, ou seja, isto é, aliás, com efeito
▸g9-portugues-concordancia-verbal-nominal249 conceitos · 0🟢 0🟡 0🟠 0🔴 249⚪
▸Bloco 1 — Concordância verbal com sujeito simples3 conceitos
O aluno estudou." (aluno 3ªs → estudou 3ªs)
Os alunos estudaram." (alunos 3ªp → estudaram 3ªp)
Nós estudamos." (nós 1ªp → estudamos 1ªp)
▸Bloco 2 — Concordância verbal com sujeito composto22 conceitos
Antes do verbo → verbo no plural
João e Maria vieram." (plural)
O gerente e o supervisor decidiram." (plural)
Depois do verbo → pode ir para plural OU concordar com o mais próximo
Vieram João e Maria." (plural — mais comum, mais formal)
Veio João e Maria." (concordância com o mais próximo — aceito, mas menos formal)
⚠️ FGV tende a preferir o plural quando posposto
Núcleos ligados por "OU" — depende do sentido
Exclusão — (ou um ou outro, não os dois): singular
Adição — (um ou outro, indistintamente, ambos podem): plural
Retificação — (um em vez do outro): concorda com o último
Núcleos ligados por "NEM
Geralmente plural
Nem João nem Maria vieram." (plural)
Nem o gerente nem o supervisor aprovaram." (plural)
Núcleos ligados por "COM" (companhia)
Se "com" tem valor de "e" → plural
Se "com" indica companhia ou circunstância, sem ação conjunta → singular
Núcleos de pessoas gramaticais diferentes
Eu e você iremos." (1ª + 2ª → 1ª plural: nós)
Você e ele irão." (2ª + 3ª → 3ª plural OU 2ª plural: vocês)
Tu e ele ireis." (2ª + 3ª → 2ª plural, hoje pouco usada) OU "Tu e ele irão." (aceito coloquial)
▸Bloco 3 — Concordância verbal com sujeito coletivo11 conceitos
Regra padrão
Coletivo isolado → verbo singular
A multidão gritava." (singular)
O exército avançou." (singular)
Regra do coletivo especificado
A multidão de fãs gritou." OU "A multidão de fãs gritaram." (ambos aceitos; SILEPSE de número)
O grupo de alunos chegou tarde." OU "chegaram tarde
Regra de "a maioria de", "a metade de", "uma parte de", "um grupo de", "grande parte de", "uma dúzi…
A maioria dos alunos passou." OU "A maioria dos alunos passaram." (ambos aceitos)
A metade dos candidatos desistiu." OU "desistiram." (ambos)
Grande parte dos funcionários gostou do projeto." OU "gostaram
▸Bloco 4 — Concordância verbal com pronomes indefinidos17 conceitos
Um dos que
Ele foi um dos que passaram." (plural — dos alunos que passaram, ele é um)
⚠️ "Um dos que passou" também é aceito, mas o padrão formal é plural
Mais de um
Mais de um* candidato desistiu." (singular)
⚠️ Exceções (vão pra plural)
Menos de dois
Menos de dois* candidatos passaram." (plural — porque "dois" é plural)
Cada um" / "Cada qual
Cada um* dos alunos leu o texto." (singular)
Cada qual* trouxe a sua colaboração
Nenhum de", "Qualquer um de", "Algum de
Nenhum dos alunos estudou." (singular)
Qualquer um de nós faria isso." (singular)
Pronomes interrogativos ou indefinidos com "de + nós/vós/vocês
Quais de vocês vieram?" (plural — concorda com "quais")
Alguns de nós estudamos." OU "estudaram." (dupla concordância aceita)
▸Bloco 5 — Verbos impessoais (sem sujeito)21 conceitos
Haver" (existir)
Impessoal — , sempre 3ª SINGULAR
Havia* três alunos." (não "haviam")
Houve* problemas ontem." (não "houveram")
⚠️ Erro muito cobrado FGV: "haviam pessoas" (errado; correto: havia)
Haver" (tempo decorrido)
Também impessoal, singular
Faz* dois anos que ele saiu." (fazer também impessoal em tempo)
Há* dois anos que ele saiu
Fazer" (tempo decorrido / clima)
Impessoal, singular
Fazia* dois anos que...." (não "faziam")
Faz* frio no inverno." (não "fazem")
Verbos meteorológicos (chover, nevar, ventar, trovejar)
Impessoal, 3ª singular
Choveu* muito ontem
⚠️ Em sentido figurado, deixam de ser impessoais
Verbos com sujeito oculto/indeterminado
Sujeito indeterminado com "se": verbo 3ª singular
Precisa-se de vendedores." (verbo transitivo indireto + se = sujeito indeterminado)
⚠️ Diferente de: "Vendem-se casas." (aqui "se" é passivo; verbo concorda com "casas" → plural)
▸Bloco 6 — "Existir", "Ocorrer", "Acontecer"5 conceitos
Existem* três alunos." (existem concorda com "três alunos" → plural)
Existia* um problema." (singular concorda com "um problema")
Ocorreram* dois acidentes." (plural)
Haviam três alunos" (ERRADO — haver é impessoal, singular)
Existiam três alunos" (CORRETO — existir tem sujeito, plural)
▸Bloco 7 — Pronomes de tratamento3 conceitos
Vossa Excelência* aprovou o projeto." (3ª singular)
Vossas Excelências* aprovaram." (3ª plural)
Você* vai." (3ª singular — nunca "você vais")
▸Bloco 8 — Sujeito representado por pronome relativo "QUE" ou "QUEM"10 conceitos
QUE" — verbo concorda com o antecedente
Fui eu que fiz." (que retoma "eu" → 1ª singular: fiz)
Fomos nós que fizemos." (que retoma "nós" → 1ª plural)
Foste tu que fizeste." (que retoma "tu" → 2ª singular)
Foi ele que fez." (3ª singular)
QUEM" — verbo na 3ª pessoa singular (regra tradicional)
Fui eu quem fez." (3ª singular — regra formal)
Fomos nós quem fez." (3ª singular — regra formal)
Fui eu quem fiz." (aceito modernamente)
FGV cobra as duas formas — se aparecer como certa "quem fez" ou "quem fiz", checar contexto
▸Bloco 9 — Sujeito oracional (representado por oração)3 conceitos
É importante que os alunos estudem.*" (sujeito = "que os alunos estudem"; verbo "é" no singular)
Convém que ele venha.*" (sujeito = "que ele venha"; verbo "convém" no singular)
Consta que ele passou.*" (singular)
▸Bloco 10 — Concordância com "SE"9 conceitos
Se" passivo (VTD)
Vende-se casa." (singular)
Vendem-se casas." (plural)
Alugam-se apartamentos." (plural)
Precisa-se de vendedores." (singular — "precisar" é VTI, "se" indeterminador, não passivador)
Se" indeterminador (VTI, VI, VL)
Precisa-se de vendedores." (VTI — singular)
Vive-se bem aqui." (VI — singular)
É-se feliz assim." (VL — singular, raro)
▸Bloco 11 — Casos especiais22 conceitos
Nomes próprios plurais fixos
Estados Unidos* é uma potência." (singular
As Minas Gerais* eram famosas..." (com artigo, plural)
⚠️ Sem artigo → tende a singular. Com artigo → tende a plural
Os Lusíadas conta a história..." (com artigo, mas título
Sujeito com "tudo", "nada", "isto", "isso" resumindo enumeração
Amor, ódio, alegria, tristeza, tudo passa rápido." (singular — "tudo" resume)
João, Pedro, Maria, ninguém apareceu." (singular — "ninguém" resume)
Sujeito com expressão numérica
Um bilhão de reais* vai ser investido." (singular — "bilhão" núcleo)
Dez por cento dos alunos* passou." OU "passaram." (dupla concordância
Um por cento* ganhou o prêmio." (singular — 1%)
Dez por cento* ganharam o prêmio." (plural — %)
Horas, distâncias, datas
Faltam* dez minutos para as três." (plural — sujeito "dez minutos")
Falta* um minuto para o fim." (singular)
Deram* três horas." (plural — "três horas" plural)
Deu* meio-dia." (singular)
⚠️ Bater/soar horas: concorda com o número: "Bateram oito horas." (plural)
Sujeito "algum dos", "cada um dos
Cada um dos alunos* trouxe o material." (singular)
Algum dos candidatos* virá?" (singular)
▸Bloco 12 — Concordância nominal com um substantivo (regra base)3 conceitos
A menina bonita* brinca." (feminino singular)
Os meninos bonitos* brincam." (masculino plural)
Aquelas* mesas velhas" (fem. plural)
▸Bloco 13 — Um adjetivo referindo-se a vários substantivos8 conceitos
Adjetivo posposto (depois dos substantivos)
Concordar com o mais próximo: — "Menino e menina bonita." (fem. — concordância com "menina")
Ir para plural masculino — (regra formal preferida): "Menino e menina bonitos
Adjetivo anteposto (antes dos substantivos)
Bela* menina e menino." (concorda com "menina")
Belo* menino e menina." (concorda com "menino")
Casos com nome próprio ou pessoa
João e Maria estão cansados." (masc. plural — regra formal)
▸Bloco 14 — Concordância com pronome de tratamento2 conceitos
Verbo na 3ª pessoa
Adjetivos/possessivos concordam com o SEXO da pessoa a quem se refere, não com a forma do pronome
▸Bloco 15 — Adjetivos que exigem cuidado especial27 conceitos
Meio" (adjetivo × advérbio)
Adjetivo — (= metade) — concorda com o substantivo
Advérbio — (= um pouco) — invariável
Bastante" / "Bastantes
Adjetivo — (= muitos, suficientes) — concorda no plural com substantivo
Advérbio — (= muito) — invariável
Menos" — INVARIÁVEL sempre
Havia menos pessoas." (não "menas")
Menos* alunos vieram
⚠️ "MENAS" não existe. Sempre "menos"
Todo" / "Tudo
Todo" = qualquer, cada — variável
Todo o" = inteiro — variável e específico
Tudo" = coisas em geral — invariável e sem artigo
Só" / "Sozinho
Só" como advérbio — (= somente) — invariável
Só" como adjetivo — (= sozinho) — variável
Junto" / "Junto de
Adjetivo — variável
Locução prepositiva "junto de" — invariável
Anexo" / "Incluso" / "Obrigado
Adjetivos — concordam com o substantivo/pessoa
⚠️ "Em anexo" — locução invariável: "Segue em anexo a foto." (aceito também)
Mesmo" / "Próprio
Ela mesma decidiu." (fem. singular)
Eles próprios vieram." (masc. plural)
Depois de "o mais / o menos / o melhor / o pior": — invariável
▸Bloco 16 — Expressões impessoais com "é" + adjetivo7 conceitos
É bom", "É proibido", "É necessário", "É preciso", "É bom
É proibido* entrada." (sem artigo → invariável)
É proibida* a entrada." (com artigo → concorda)
É necessário* paciência." (invariável)
É necessária* a paciência." (concorda)
É bom* cerveja gelada." (invariável)
É boa* a cerveja gelada." (concorda — com artigo)
▸Bloco 17 — Adjetivos gentílicos e substantivos compostos6 conceitos
Adjetivos compostos
Acordos luso-brasileiros." (só "brasileiros" no plural)
Bandeiras azul-marinho." (invariável — cor + qualificador)
Camisas azul-claras."
Surdo-mudo" e outros compostos com dois elementos concordantes
Meninos surdos-mudos." (ambos concordam)
▸Bloco 18 — Concordância nominal com "haja vista"2 conceitos
Forma padrão: — "haja vista" — invariável
Forma tradicional variável
▸Bloco 19 — Casos que a FGV planta pegadinha30 conceitos
"A gente" — verbo na 3ª singular
A gente vai ao cinema." (não "vamos")
Uso coloquial universal: "a gente vamos" — errado na norma culta
Sujeito distante do verbo
O relatório sobre os problemas dos funcionários foi aprovado." (foi, não "foram")
"Fazer" impessoal
Faz* dez anos que não o vejo." (não "fazem")
Faz* frio." (não "fazem frio")
"Haver" impessoal
Havia* muitos problemas." (não "haviam")
Deve haver* exceções." (auxiliar assume a impessoalidade
Concordância com "obrigado
Mulher: "Muito obrigada
Homem: "Muito obrigado
"Nós entramos" × "a gente entrou
Nós → 1ª plural
A gente → 3ª singular
Misturar é erro coloquial
Sujeito começando com número
1,5 metro" (singular) vs "1,5 metros" (plural
1 metro" (singular)
2 metros" (plural)
"Fizeram" tempo
Verbos de tempo "fazer" impessoal → singular sempre
Faz* dez anos" (não "fazem dez anos")
Pronome oblíquo direto/indireto na concordância
Vou compra-los." (concorda com o objeto que se refere)
Já os vi." (concorda com o objeto masculino plural)
Ambiguidade em partitiva
A maioria dos alunos vieram/veio" — FGV aceita ambas, mas em prova cobra distinção de foco
▸Bloco 20 — Tabela consolidada de armadilhas FGV recorrentes36 conceitos
Haviam três problemas
Existiam três problemas
Faz dez anos que ele saiu
Fazem dez anos que ele saiu
A gente vamos
Vende-se casas
Vendem-se casas
Precisam-se de vendedores
Precisa-se de vendedores
A maioria dos alunos passou
A maioria dos alunos passaram
Fui eu que fiz
Fui eu que fez
Fui eu quem fiz
Fui eu quem fez
Vossa Excelência está cansado
Vossa Excelência está cansada
Bebi meia garrafa
Ela ficou meio cansada
Tinha bastantes problemas
Estudei bastante
Havia menas pessoas
Havia menos pessoas
Seguem anexo os documentos
Segue anexa a foto
Muito obrigada, disse ela
Muito obrigado, disse ela
É proibido entrada
É proibida a entrada
Faltam dez minutos
Choveram flores
Deve haver problemas
Devem haver problemas
Mais de um candidato desistiu
Um dos que passaram
Cada um dos alunos leu
▸Bloco 22 — Checklist mental antes de marcar2 conceitos
Concordância verbal
Concordância nominal
▸g10-portugues-colocacao-pronominal165 conceitos · 0🟢 0🟡 0🟠 0🔴 165⚪
▸Bloco intro — o material com que se joga7 conceitos
O que são os pronomes oblíquos átonos
1ª pessoa: me, **nos
2ª pessoa: te, **vos
3ª pessoa: se, o (a, os, as), lhe (lhes)
mim, ti, si, ele/ela, nós, vós, eles/elas
comigo, contigo, consigo, conosco, convosco
As três posições possíveis (visão panorâmica)
▸Bloco 2 — Os fatores atrativos de PRÓCLISE (a lista fechada)54 conceitos
Grupo 1 — Palavras de sentido NEGATIVO
Não me disse a verdade
Nunca se importou comigo
Nada me convence do contrário
Ninguém te viu chegar
Nem se atreveu a responder
Tampouco lhe deram atenção
Grupo 2 — ADVÉRBIOS (sem pausa/vírgula)
Aqui se vive bem
Sempre me disse a verdade
Talvez se arrependa depois
Já lhe entreguei o relatório
Também nos convidaram
Apenas se ouve o silêncio
Sem vírgula: "Aqui se vive bem." (próclise, advérbio atrai)
Com vírgula: "Aqui, vive-se bem." (ênclise, a vírgula reseta a atração)
Grupo 3 — PRONOMES RELATIVOS
O livro que me deu está na mesa
A pessoa a quem se dirigiu era o gerente
O relatório o qual me apresentaram tem erros
A empresa cujos funcionários se destacam premia-os
A cidade onde nos conhecemos mudou muito
Grupo 4 — PRONOMES INDEFINIDOS
Alguém me viu chegar
Todos se levantaram quando ele entrou
Poucos se atrevem a discordar
Muitos nos apoiam nessa decisão
Qualquer um o faria
Grupo 5 — PRONOMES DEMONSTRATIVOS
Isso me preocupa há dias
Aquilo nos surpreendeu
Este projeto se destacou pela clareza
Grupo 6 — PRONOMES INTERROGATIVOS
Quem te disse isso?" (direta)
Não sei quem se atreveu a responder." (indireta)
Quanto lhe cobraram pelo serviço
Por que se ofende com tão pouco
Grupo 7 — CONJUNÇÕES SUBORDINATIVAS
Espero que me digam a verdade
Embora se calasse, todos notaram sua indignação
Quando te vi, entendi tudo
Como me pediu, trouxe os documentos
Caso lhe interesse, o cargo está aberto
À medida que nos aproximávamos, o barulho aumentava
Grupo 8 — ORAÇÕES EXCLAMATIVAS e OPTATIVAS (desejo)
Que Deus te abençoe
Deus me livre dessa
Quem me dera saber a resposta
Bons ventos o levem
Maldito seja quem se atrever
Grupo 9 — Preposição EM + gerúndio (regra pouco lembrada, muito cobrada)
Em se tratando de política, prefiro silêncio
Em se falando de custos, o orçamento estoura
Em se considerando o histórico, a decisão faz sentido
▸Bloco 3 — Regras de ÊNCLISE21 conceitos
Verbo inicia a oração (norma culta INABALÁVEL)
Correto: "Diga-me a verdade
Errado formalmente: "Me diga a verdade." (uso coloquial universal, mas errado em prova)
Correto: "Entregou-se sem resistir
Errado formalmente: "Se entregou sem resistir
Imperativo AFIRMATIVO
Correto: "Faça-o agora
Errado: "O faça agora
Correto: "Diga-lhe a novidade
Correto: "Levantem-se, senhores
Após vírgula ou pausa forte
Chegou, cumprimentou-nos, sentou-se à mesa
Ao entrar, deparou-se com o chefe
Feito isso, dirigiu-se ao gerente
Gerúndio (não precedido de "em" nem de negação)
Andava sorrindo-se de si mesmo
Vive queixando-se de tudo
Passou o dia lembrando-se do passado
Infinitivo NÃO preposicionado
Quero fazê-lo bem." (ênclise, preferida)
Quero o fazer bem." (próclise, aceita mas artificial)
▸Bloco 4 — Regras de MESÓCLISE14 conceitos
Regra única: só em FUTURO DO PRESENTE e FUTURO DO PRETÉRITO, SEM atrator
Estrutura (etimológica): raiz do infinitivo + pronome + terminação do futuro
dizer + ei" → "direi" → com pronome: dir-me-ei ("eu direi a mim")
fazer + ia" → "faria" → com pronome: far-me-ia ("eu faria a mim")
contar + emos" → "contaremos" → com pronome: **contar-lhe-emos
entregar + ão" → "entregarão" → com pronome: **entregar-nos-ão
pagar + ia" → "pagaria" → com pronome: **pagar-lhe-ia
O gatilho é DUPLO: futuro E ausência de atrator
Sem atrator: "Dir-lhe-ei a verdade amanhã." (mesóclise obrigatória)
Com atrator: "Não lhe direi a verdade." (próclise, atrator sobrepõe)
Errado: "Não dir-lhe-ei a verdade." (misturar as duas)
Errado: "digo-me-ei" (não existe — "digo" é presente do indicativo)
Errado: "disse-me-ia" (não existe — "disse" é pretérito perfeito)
Errado: "faço-me-á" (mistura tempos inexistente)
▸Bloco 5 — Verbos compostos (o cerne das pegadinhas FGV)16 conceitos
Estrutura geral
ter/haver + PARTICÍPIO ("tem feito", "havia dito")
estar/andar/ir + GERÚNDIO ("está fazendo", "anda dizendo")
querer/poder/dever/ir + INFINITIVO ("quero fazer", "pode dizer", "vou entregar")
Tabela de colocação por estrutura
Aux + INFINITIVO (querer + fazer)
Aux + GERÚNDIO (estar + fazendo)
Aux + PARTICÍPIO (ter + feito)
Regra ferrenha do PARTICÍPIO (a mais cobrada dos verbos compostos)
Errado: "Tenho feito-o com cuidado
Errado: "Havia dito-lhe a verdade
Errado: "Foi entregue-me o pacote
Certo (sem atrator): "Tenho-o feito com cuidado." (ou reformular: "Faço-o com cuidado")
Certo (com atrator): "Não o tenho feito com cuidado
Certo (sem atrator): "Havia-lhe dito a verdade." (ou "Dissera-lhe...")
Detalhe do hífen entre auxiliar e particípio
▸Bloco 6 — "lhe" como OI vs "o/a" como OD (armadilha típica FGV)8 conceitos
Distinção fundamental
lhe" (e "lhes")
o", "a", "os", "as
Como decidir na prática
Se o verbo pede preposição "a" antes do complemento (VTI) → substitui por "lhe"
Se o verbo NÃO pede preposição (VTD) → substitui por "o/a"
ver — é VTD: "vi o filme" → "vi-o", NÃO "vi-lhe"
Pegadinhas FGV
▸Bloco 7 — Transformações fonéticas com "o/a/os/as"24 conceitos
Regra 1 — Verbo termina em R, S ou Z: cai a consoante, pronome vira LO/LA/LOS/LAS
fazer + o — → "faze-lo" perde o R → fazê-lo (acento circunflexo mantém o "ê" tônico)
fez + o — → fê-lo ("Ele fê-lo com carinho.")
diz + o — → di-lo ("Ele di-lo com convicção.")
conduzir + os — → **conduzi-los
amar + a — → **amá-la
quis + o — → **qui-lo
partir + a — → **parti-la
Regra 2 — Verbo termina em ditongo nasal: pronome vira NO/NA/NOS/NAS
fazem + o — → fazem-no ("Eles fazem-no diariamente.")
dão + a — → dão-na ("Eles dão-na de presente.")
põe + o — → põe-no ("Ele põe-no na mesa.")
compram + as — → **compram-nas
põem + os — → **põem-nos
falarão + a — → **falarão-na
Regra 3 — Verbo termina em vogal ou ditongo oral: NENHUMA transformação
canta + o — → canta-o (sem transformação)
viu + o — → **viu-o
entregou + a — → **entregou-a
Manter os acentos gráficos
amar + o — → amá-lo (agudo, "a" tônico)
dizer + o — → dizê-lo (circunflexo, "e" tônico)
partir + o — → parti-lo (sem acento, o "i" já é tônico e agudo)
compor + o — → **compô-lo
▸Bloco 8 — Infinitivo (caso especial)12 conceitos
Infinitivo NÃO preposicionado
Quero fazê-lo bem." (ênclise, mais natural)
Quero o fazer bem." (próclise, aceita mas rara)
Vou dizer-lhe." vs "Vou lhe dizer." (ambas ok)
Devo entregá-lo hoje." vs "Devo o entregar hoje." (ênclise preferida)
Infinitivo PREPOSICIONADO (a, de, em, para, por, sem)
Para me ajudar, veio de longe." (próclise natural)
De o encontrar depende tudo
Sem me olhar, saiu porta afora
Por lhe faltarem recursos, desistiu
Em se tratando de dinheiro, cuidado." (o "em" + gerúndio é caso do Grupo 9 de atratores)
Infinitivo pessoal flexionado
▸Bloco 9 — Brasil vs Portugal (reconhecer, não reproduzir)2 conceitos
Ênclise inicial
Detalhe do início de período
▸Bloco 10 — Ambiguidade entre próclise e ênclise3 conceitos
Verbos compostos com múltiplos slots
Escolha estilística
Sentido pode mudar em casos raros
▸Bloco 13 — Ganchos com temas já vistos4 conceitos
g4-regência-verbal
g5-interpretação-generos
g13-regência-nominal
g15-concordância verbal
▸g11-portugues-coesao-conectores-tempos-verbais90 conceitos · 0🟢 0🟡 0🟠 0🔴 90⚪
▸Bloco 1 — Tipos de coesão (base Halliday & Hasan)5 conceitos
Referencial anafórica
Referencial catafórica
Sequencial (temporal-causal)
Lexical por reiteração
Lexical por substituição
▸Bloco 2 — Conectores por RELAÇÃO SEMÂNTICA (tabela mestra)3 conceitos
Adversidade / Oposição
Consequência / Conclusão
Finalidade / Propósito
▸Bloco 3 — Substituição de conectivo (a pegadinha FGV mais frequente)5 conceitos
Original: "Estudou muito, portanto passou
Certas: "logo", "assim", "por conseguinte" (todas conclusivas, mesma família)
Adversativas ↔ concessivas. "Embora estudasse, não passava"
Causais ↔ conclusivas. "Passou porque estudou"
Mas" ↔ "e". Substituir "mas" por "e" ELIMINA a adversidade
▸Bloco 4 — Conectores com armadilhas específicas FGV (os polissêmicos)12 conceitos
Pois* — 3 sentidos possíveis
Como* — 3 sentidos possíveis
Se* — 3 sentidos possíveis
Apassivador/Indeterminador
Que* — vários sentidos
Pronome relativo — retoma antecedente. "O livro que li
Conjunção integrante — introduz oração substantiva. "Sei que ele virá
Conjunção causal — "Vá para casa, que já é tarde
Conjunção consecutiva — "Falava tanto que ninguém ouvia
Conjunção comparativa — "É mais alto do que eu
Enquanto* — 2 sentidos
Adversativo (contraste)
▸Bloco 5 — Correlação de tempos verbais (o outro pilar deste tópico)12 conceitos
Tabela principal — subordinação SUBSTANTIVA e CONCESSIVA (verbo dependente no subjuntivo)
Oração principal
Presente do indicativo
Presente do indicativo (dúvida forte / hipótese)
Pretérito perfeito do indicativo
Pretérito imperfeito do indicativo
Futuro do presente
Futuro do pretérito
Tabela auxiliar — condicionais reais × irreais
Real (futuro possível)
Irreal do presente
Irreal do passado
▸Bloco 6 — Futuro do subjuntivo (o esquecido — cai muito)3 conceitos
Quando — (sentido temporal futuro): "quando eu vir
Se — (condicional futura): "se eu puder
Enquanto — (temporal futuro): "enquanto eu quiser
▸Bloco 7 — Quebra de correlação (os cinco erros que a FGV mais planta)8 conceitos
Talvez ele vai amanhã" → correto: "Talvez ele vá amanhã". "Talvez" força subjuntivo
É importante que ele estuda" → correto
Não creio que é verdade" → correto
Regra do "atrator" mental
Sei que ele vem." (certeza → indicativo)
Duvido que ele venha." (dúvida → subjuntivo)
Afirmo que ele é honesto." (afirmação → indicativo)
Espero que ele seja honesto." (desejo → subjuntivo)
▸Bloco 8 — Condicional (a estrutura "SE ... TERIA/SERIA")6 conceitos
SE + futuro do subjuntivo, + futuro do presente do indicativo
Se eu PUDER, IREI
SE + imperfeito do subjuntivo, + futuro do pretérito
Se eu ESTUDASSE mais, PASSARIA
SE + mais-que-perfeito composto do subjuntivo, + futuro do pretérito composto
Se eu TIVESSE ESTUDADO mais, TERIA PASSADO
▸Bloco 9 — Referenciação: anáfora × catáfora × elipse10 conceitos
Ana chegou. Ela estava cansada." → "ela" é anáfora, retoma "Ana"
O ministro anunciou o corte. A decisão gerou revolta." → "a decisão" é anáfora lexical, retoma…
Foi isto que ele disse: 'não venho'." → "isto" é catáfora, aponta pra "não venho"
Só um pedido faço: escutem-me." → "um pedido" antecipa "escutem-me"
João comprou pão. Maria [comprou] leite." → o verbo "comprou" foi elíptico na 2ª oração
Estudou de manhã; [estudou] à tarde; [estudou] à noite." → verbo elíptico repetido
O médico e a paciente conversaram. Ele estava atrasado." → "ele" retoma "o médico"
O médico e o paciente conversaram. Ele estava atrasado." → AMBÍGUO
A empresa demitiu 200 pessoas. Isso gerou protestos." → "isso" retoma a demissão inteira
Choveu, ventou e caiu granizo. Tudo isso em uma tarde." → "tudo isso" encapsula os três eventos
▸Bloco 10 — Coesão lexical (substituição por sinônimo, hiperônimo, hipônimo, p...14 conceitos
presidente" ↔ "mandatário", "chefe do Executivo", "chefe de Estado
automóvel" ↔ "veículo", "carro
médico" ↔ "clínico" (contexto), "profissional de saúde
câncer" → "doença", "enfermidade", "patologia
cachorro" → "animal", "mamífero
python" → "linguagem de programação
felino" → "gato", "leopardo", "jaguar
veículo" → "carro", "caminhão", "ônibus
Machado de Assis" → "o autor de Dom Casmurro", "o bruxo do Cosme Velho
Amazônia" → "a maior floresta tropical do mundo
Sol" → "a estrela mais próxima da Terra
juiz" ≠ "advogado" (papéis diferentes; não sinônimos, mesmo estando na área jurídica)
presidente" ≠ "governante" (governante pode ser prefeito, governador; presidente é específico)
vírus" ≠ "bactéria" (patógenos distintos; muitos textos jornalísticos confundem, mas cientificament…
▸Bloco 11 — Progressão temática (revisão rápida do g5)5 conceitos
Tema — = já dado, informação conhecida
Rema — = informação nova
Coesão de progressão = como o rema de uma frase vira tema da próxima, encadeando o texto
Linear — cada parágrafo puxa o rema anterior como novo tema
Derivada — tema geral se abre em subtemas paralelos
▸Bloco 12 — Conectores em nível de PARÁGRAFO (macroestrutura)2 conceitos
Continuação/adição
Contraste/oposição
▸Bloco final — Ganchos com temas já vistos5 conceitos
g5-portugues-interpretacao-generos
g4-portugues-regencia-verbal
g12-portugues-coordenacao-subordinacao
g10-portugues-colocacao-pronominal
Programação e escrita técnica do JM
▸g12-portugues-coordenacao-subordinacao61 conceitos · 0🟢 0🟡 0🟠 0🔴 61⚪
▸Bloco intro — Período simples × período composto7 conceitos
Período simples
O candidato estudou muito ontem." (um verbo → uma oração absoluta)
Ele tinha estudado a matéria toda." (locução "tinha estudado" = um núcleo verbal → oração absoluta)
Período composto
Composto por coordenação
Composto por subordinação
Composto misto — mistura coordenação e subordinação no mesmo período
▸Bloco 1 — Coordenação: orações sintaticamente INDEPENDENTES7 conceitos
Cheguei, sentei, comi
Ele estudou muito; passou na prova; comemorou com a família
Conclusiva vem DEPOIS da causa e apresenta o RESULTADO. "Estudou muito, LOGO passou." O "logo" conc…
Explicativa JUSTIFICA algo dito antes. "Estude, POIS a prova está perto." A 2ª oração dá o motivo p…
Antes do verbo, início da oração → explicativa. "Vamos, pois já é tarde
Depois do verbo, entre vírgulas ou no fim → conclusiva. "Estudou; passou, pois."
Também pode ser subordinativa causal em construções tipo "não fui, pois estava doente"
▸Bloco 2 — Subordinação: orações sintaticamente DEPENDENTES4 conceitos
Coordenação: "Estudei e passei." (as duas orações são completas)
Se cabe "isso" no lugar → substantiva
Se cabe adjetivo (ou expressão adjetiva "que + verbo") → adjetiva
Se cabe advérbio (então, ali, assim) → adverbial
▸Bloco 3 — Subordinadas SUBSTANTIVAS (6 tipos)12 conceitos
Objetiva direta
Objetiva indireta
Completiva nominal
Se o verbo da principal é impessoal ou é ser + adjetivo/substantivo neutro
Se o verbo é transitivo direto comum
Se o verbo é transitivo indireto e precisa de preposição
Se o verbo é de ligação (ser, estar, parecer) e a subordinada é o predicativo → predicativa
Se a subordinada complementa um NOME
Se a subordinada vem depois de dois-pontos e explicita um termo anterior → apositiva
Verbo — exige → objetiva indireta. "Duvido DE que..." (o verbo "duvidar" pede "de")
Integrante (substantiva): "Não sei SE ele virá." → "não sei isso" (cabe)
Condicional (adverbial): "SE ele vier, avise." → "isso, avise" (não cabe; é "então, avise")
▸Bloco 4 — Subordinadas ADJETIVAS (2 tipos, tudo depende da vírgula)4 conceitos
Restritiva → "só alguns"; o antecedente é um conjunto e a subordinada seleciona um subconjunto
Explicativa → "todos"; o antecedente já é fechado, e a subordinada adiciona informação sobre o todo
As mulheres que trabalham fora chegam cansadas."
As mulheres, que trabalham fora, chegam cansadas." (TODAS trabalham fora; TODAS chegam cansadas
▸Bloco 5 — Subordinadas ADVERBIAIS (9 tipos)1 conceitos
Condicional — "SE X, então Y." Y depende de X acontecer. Se X não acontece, Y também não
▸Bloco 6 — Orações REDUZIDAS5 conceitos
De infinitivo
De gerúndio
De particípio
Reduzida → desenvolvida: reintroduzir a conjunção correta
Desenvolvida → reduzida: enxugar em forma nominal, mantendo sentido
▸Bloco 7 — Análise do QUE (as várias caras)10 conceitos
Pode substituir por "o qual, a qual, os quais, as quais"? → pronome relativo
Pode substituir por "isso"? → conjunção integrante (introduz substantiva)
Ligado a "tanto/tão/tal"? → consecutiva
Ligado a "mais/menos"? → comparativa
Cabe remover sem alterar o sentido? → expletiva (realce, dispensável)
Vem antes de adjetivo em exclamativa? → advérbio de intensidade
Análise morfológica do "que" (classe gramatical)
Análise sintática da oração que ele introduz
Retoma substantivo antecedente? → pronome relativo (adjetiva). "O livro QUE comprei" (retoma livro)
Não retoma nada, só introduz uma oração completa que substitui "isso"? → conjunção integrante
▸Bloco 8 — Análise do SE (as várias caras)5 conceitos
Verbo VTD (transitivo direto) + SE → apassivador. O sujeito é paciente e a concordância é c…
Verbo VI, VTI ou VL + SE → indeterminador. Verbo fica SEMPRE na 3ª pessoa do singul…
Condicional (adverbial)
Integrante (substantiva)
Reflexivo: sujeito singular, ação volta pra si. "João SE feriu." (feriu a si mesmo)
▸Bloco final — Ganchos com temas já vistos6 conceitos
g4-regência-verbal
g5-interpretação e gêneros
g11-coesão textual
g10-colocação pronominal
g13-regência nominal
Interpretação de argumentos
▸g13-portugues-regencia-nominal174 conceitos · 0🟢 0🟡 0🟠 0🔴 174⚪
▸Bloco intro — O que é regência nominal8 conceitos
Regência verbal — o VERBO é o regente; pede complemento com ou sem preposição. Coberto em g4
Regência nominal
acessível a todos" (adjetivo pedindo A)
digno de respeito" (adjetivo pedindo DE)
hábil em cálculos" (adjetivo pedindo EM)
grato a alguém por algo" (adjetivo BITRANSITIVO, duas preposições)
obediência às normas" (substantivo pedindo A + crase)
perto de casa" (advérbio pedindo DE)
▸Bloco 2 — Tabela mestra por PREPOSIÇÃO REGIDA100 conceitos
Preposição A (a maior classe, ~40% dos nomes)
acessível a
agradável a
anterior a
apto a (ou para)
benéfico a
contemporâneo a (ou de)
contrário a
desatento a
desfavorável a
devoto a (ou de)
equivalente a
essencial a (ou para)
estranho a
favorável a
impermeável a
indiferente a
inerente a
inferior a
inseparável a (ou de)
necessário a
obediente a
perpendicular a
pertinente a
posterior a
preferível a
prejudicial a
preso a (ou por)
propício a
próximo a (ou de)
relativo a
semelhante a
sensível a
simultâneo a
útil a (ou para)
Preposição **COM
amizade com
aparentado com
compatível com
compromisso com
contentamento com
cortês com
descontente com
desleal com
disparidade com
implicância com
incompatível com
insatisfeito com
paralelo com (ou a)
parecido com
preocupação com
relacionado com
satisfeito com
solidariedade com
Preposição **DE
carente de
consciente de
convicto de
desejoso de
desconfiado de
destituído de
diferente de
esquecido de
incapaz de
independente de
indigno de
inimigo de
liberto de
necessitado de
oriundo de
passível de
próximo de (ou a)
rico de/em
suspeito de
Preposição **EM
bacharel em
hábil em (também "de")
indeciso em
versado em
morador em (ou de)
residente em
Preposição **POR
afeição por
ansioso por (também "de")
apaixonado por
aversão por (ou a)
curiosidade por
interesse por (ou em)
ódio por (ou a)
preocupação por (ou com)
responsável por
respeito por (ou a)
simpatia por
surpreso por (ou com)
Preposição **PARA
apto para (ou "a")
necessário para (ou "a")
pronto para
próprio para
útil para (ou "a")
▸Bloco 3 — Nomes BITRANSITIVOS (dois complementos)3 conceitos
dever** (subst.)
Grato PELO senhor" (errado — pessoa vai com A). Correto: "grato AO senhor"
Grato AO senhor DA ajuda" (errado — causa vai com POR). Correto: "grato AO senhor PELA ajuda"
▸Bloco 4 — Armadilha central: VERBAL × NOMINAL (mesma raiz, preposição diferente)3 conceitos
aspirar (almejar)
assistir (ver)
implicar (acarretar)
▸Bloco 5 — Regência de ADVÉRBIOS13 conceitos
perto DE — "perto DE casa". Nunca "perto A"
longe DE — "longe DE casa"
antes DE — "antes DE sair"
depois DE — "depois DE chegar"
fora DE — "fora DE mim"
dentro DE — "dentro DE casa"
acima DE — "acima DE tudo"
abaixo DE — "abaixo DE zero"
através DE — "através DE muitos anos" ou "através DE uma janela"
em torno DE — "em torno DE cem pessoas"
junto A / junto DE — ambas aceitas ("junto AO amigo" ou "junto DO amigo")
diante DE — "diante DE mim". Nunca "diante A mim"
relativamente A — "relativamente ao tema"
▸Bloco 6 — Regência DUPLA (ambas aceitas)19 conceitos
útil A ou PARA — "útil ao/para o estudante
capaz DE ou PARA — "capaz de agir / capaz para o cargo
hábil EM ou DE — "hábil em cálculos / hábil de mãos
ansioso POR ou DE — "ansioso pela resposta / ansioso de vê-la
necessário A ou PARA — "necessário à saúde / necessário para viver
próximo A ou DE — "próximo ao/do parque
rico DE ou EM — nuance qualitativa/quantitativa
inseparável A ou DE — "inseparável ao/do amigo
contemporâneo A ou DE — "contemporâneo a/de Machado
devoto A ou DE — "devoto a/de Nossa Senhora
paralelo A ou COM — "paralelo ao/com o eixo
interesse POR ou EM — "interesse pelo/no tema
aversão POR ou A — "aversão por/a injustiça
respeito A ou POR — "respeito ao/pelo idoso
preso A ou POR — "preso ao/pelo passado
apto A ou PARA — "apto a/para o cargo
próximo DE" é considerado mais elegante que "próximo A" quando não há artigo definido
paralelo A" é mais formal em geometria ("linhas paralelas AO eixo X")
rico EM" é preferido no sentido quantitativo (nutrientes, minerais)
▸Bloco 7 — Crase e regência nominal15 conceitos
obediência à norma" (obediência a + a norma)
referente à questão" (referente a + a questão)
hostil à direção" (hostil a + a direção)
preferível à derrota" (preferível a + a derrota)
favorável à proposta
análogo à situação anterior
relativo à matéria
sensível à dor
acessível a todos" (não é feminino definido, sem crase)
obediente a uma norma" ("a uma" nunca faz crase)
referente a questões diversas" (plural indefinido, sem crase)
obediência ao regulamento
referente ao assunto
consciente da situação" (consciente pede DE, não A — DE + A = "da", não crase)
capaz da tarefa" (capaz pede DE, mesma coisa)
▸Bloco 8 — Reescrever mantendo o sentido (exercício FGV típico)8 conceitos
Ele é hábil em cálculos" → "Sua habilidade em/de cálculos é notória." (mantém)
Ela obedece às normas" → "Sua obediência às normas é rigorosa." (mantém)
Ele gosta de literatura" → "Seu gosto por literatura é forte." (muda de DE pra POR
Simpatizamos com a proposta" → "Nossa simpatia pela proposta é evidente." (muda de COM pra POR)
Aspiramos ao cargo" → "Nossa aspiração ao cargo é legítima." (mantém A)
Ele prefere café a chá" → "Sua preferência por café é conhecida." (muda de A pra POR — pega!)
Duvidamos do resultado" → "Nossa dúvida sobre/quanto ao resultado é grande."
Ele implica riscos" → "A implicação em riscos é séria." (muda de Ø pra EM)
▸Bloco final — Ganchos com temas já vistos5 conceitos
g4-regência-verbal
g5-portugues-interpretacao-generos
g11-coesão textual
g12-coordenação e subordinação
g13 (este)
▸g14-portugues-ortografia280 conceitos · 0🟢 0🟡 0🟠 0🔴 280⚪
▸Bloco 1 — Novo Acordo Ortográfico 2016 (as 8 mudanças que mais caem)53 conceitos
Trema abolido
Acento diferencial abolido (com exceções)
pára (verbo parar) × para (preposição) → hoje ambos "para
pêlo (substantivo) × pelo (preposição) → ambos "pelo
pólo (esporte / extremidade) × polo → ambos "polo
pêra (fruta) × pera (preposição arcaica) → ambos "pera
côa (verbo coar) × coa → "coa
pôde (pretérito perfeito, "ele pôde ontem") × pode (presente, "ele pode agora")
pôr (verbo, "pôr a mesa") × por (preposição, "por favor")
dêmos × demos — subjuntivo presente vs pretérito perfeito
fôrma × forma
Ditongos abertos ÉI e ÓI perdem acento em PAROXÍTONAS
Antes (paroxítona)
apóio (verbo)
herói, anéis, chapéu, troféu, réu, véu, papéis, pastéis, Ilhéus
Hiatos — I e U tônicos após ditongo em PAROXÍTONAS
Piauí, tuiuiú, Guaíra, teiú
Hífen — as novas regras (o vespeiro)
anti-higiênico, super-homem, mini-hotel, co-herdeiro, pré-história, sub-humano, `extra-…
contra-ataque (contra + a)
micro-ondas (micro + o) — ⚠️ CLÁSSICO da nova ortografia. Antes era microondas junto
anti-inflamatório (anti + i)
anti-imperialista (anti + i)
auto-observação (auto + o)
semi-interno (semi + i)
autoestrada (auto + e)
autoescola (auto + e)
contraespionagem (contra + e)
extraescolar (extra + e)
infraestrutura (infra + e)
semiaberto (semi + a)
neoexpressionismo (neo + e)
sub-base, sub-bibliotecário
super-resistente, super-romântico
hiper-requintado
inter-regional, inter-racial
antirreligioso, antirrábico, antirroubo
contrarregra, contrarreforma
ultrassom, ultrarrápido
microssistema, microrregião (⚠️ o R vira RR)
autorretrato, autossuficiente, autosserviço
semirreta, semisselvagem
autopeça, contracapa, microcomputador, semicírculo
Prefixos com regras próprias (memorizar)
além-, aquém-, recém
pós-, pré-, pró-** (tônicos, com acento)
pos-, pre-** (átonos, sem acento)
O mal- especial (foco FGV)
mal-humorado, mal-educado, mal-amado, mal-estar (com hífen)
malcriado, malfeito, malvisto, malpassado, maldito
Consoantes mudas abolidas (Portugal, no Brasil já era)
Trema em nomes estrangeiros (mantido)
K, W, Y reincorporados formalmente
▸Bloco 2 — Acentuação gráfica (regras gerais)51 conceitos
Regra 1 — OXÍTONAS (sílaba tônica na última)
chapéu, troféu, réu, véu
herói, anéis, mausoléu, papéis, pastéis
Regra 2 — PAROXÍTONAS (sílaba tônica na penúltima)
UM(S), -UN(S)
casa, mesa, pele, rio, homem, imagens, amam
Singular: hífen (com acento)
Plural: hifens (sem acento) — porque termina em -ENS
pólen/polens, elétron/eletrons, próton/protons
Regra 3 — PROPAROXÍTONAS (sílaba tônica na antepenúltima)
âmbito, sílaba, fenômeno, parábola, matemática
ordinário, sábado, época, íntimo, último
química, física, lâmpada, pêndulo, âmbar
Regra 4 — MONOSSÍLABOS TÔNICOS terminados em A, E, O (+ S)
pá, pás
pé, pés
pó, pós
dá (verbo), dê (subjuntivo), dês
fé, mês, três, chá, cós, nós, vós
a, o, de, em, me, te, se
si, vi, ri, nu, cru — não acentuam
Regra 5 — Hiato (I e U tônicos)
saída (sa-í-da — o "í" sozinho na sílaba)
país (pa-ís)
saúde (sa-ú-de)
baú (ba-ú)
Grajaú, Anhangabaú, Piauí
Seguido de NH: rainha, moinho, campainha
Vogal igual repetida: xiita (xi-i-ta — duplo i)
Formar ditongo (não hiato): caiu (ca-iu — ditongo, não hiato)
sa-í-da (3 sílabas, hiato) → acento
ca-iu (2 sílabas, ditongo) → sem acento
rainha (rai-nha) → sem acento (regra do NH)
Regra 6 — Ditongos abertos ÉI, ÓI, ÉU
Oxítonas: — acentuam. chapéu, herói, anéis
Paroxítonas: — NÃO acentuam mais. ideia, heroico, paranoia, jiboia
Regra 7 — Verbos "ter" e "vir" e derivados
ele mantém
ele contém
ele intervém
Regra 8 — Crase (uso do "à")
Antes de substantivo feminino que aceita artigo: vou à escola, refiro-me à situação
Nas locuções adverbiais femininas: à noite, à tarde, às vezes
Antes de horas: às 8h, à uma hora
À moda de", "à maneira de": bife à moda da casa
Antes de masculino: vou a pé, refiro-me a você
Antes de verbo: começou a chorar
Antes de pronomes que rejeitam artigo: refiro-me a ela, a mim
Antes de nomes de cidade que não aceitam artigo: vou a Roma, vou a Paris
Refiro-me à menina" → "Refiro-me ao menino" → tem crase (ao = a + o)
Refiro-me a ela" → "Refiro-me a ele" → NÃO tem crase
▸Bloco 3 — Verbos -ISAR × -IZAR (regra da preservação da raiz)7 conceitos
Grupo -ISAR (mantém S da raiz)
Grupo -IZAR (não tem S na raiz)
Casos irregulares (memorizar direto)
catequizar — tem S em catequese, mas o verbo é com Z
hipnotizar — do grego hypnos
enfatizar — do grego emphasis
Lista campeã (as 10 que mais caem)
▸Bloco 4 — X × CH (regras práticas)15 conceitos
Regras práticas
enxame, enxada, enxaqueca, enxerto, enxuto, enxoval, enxada, enxovalhar, enxaguar
encher, enchente, encharcar, enchimento, enchufar — todas com CH porque vêm de "cheio"
caixa, faixa, feixe, frouxo, peixe, queixa, paixão, ameixa, deixar, queixo, `ro…
mexer, mexerica, mexicano, mexilhão, mexerico
mecha (de cabelo, ou pavio) — com CH
xará, xingar, xilofone, xamã, abacaxi, cachaça (?? na verdade é africana, com CH
Lista das palavras clássicas que a FGV cobra
enxaguar** (lavar)
encher** (verbo, de cheio)
mecha** (de cabelo)
taxa** (tributo)
tacha** (prego, mancha)
Taxa — (com X): tributo, imposto. "Taxa de juros", "taxa de câmbio"
Tacha — (com CH): prego pequeno; mancha, defeito. "A cadeira tem uma tacha"
▸Bloco 5 — G × J (regras práticas)18 conceitos
viajar → viajei, viajaste, viajou, viajemos, viajem (nunca viagem como verbo)
arranjar → arranjei, arranje, arranjemos
enferrujar → enferrujei, enferruje
Fizemos uma boa viagem." (substantivo, com G)
É preciso que eles viajem cedo." (verbo, com J)
viagem, passagem, garagem, bagagem, linguagem, paisagem, plumagem
pedágio, estágio, naufrágio, armistício
prestígio, prodígio, vestígio, sortilégio, refúgio
relógio, elogio
jibóia → jiboia, jenipapo, jerimum, pajé, canjica, manjericão
jeito, gorjeta, granja, ojeriza, laje, paranoia (não conta), traje
berinjela — (⚠️ CLÁSSICO com J — muitos escrevem "beringela" com G, errado)
viajar, arranjar, gorjear, enjeitar — sempre J
lisonja → lisonjear, laranja → laranjeira, granja → granjeiro
Lista campeã FGV
viagem** (substantivo)
viajem** (verbo, 3ª pessoa plural do subjuntivo/imperativo)
O par de ouro FGV: viagem × viajem
▸Bloco 6 — S × Z (regras práticas)22 conceitos
poetisa, princesa, duquesa, baronesa, condessa (⚠️ com SS), marquesa
inglesa, chinesa, japonesa, portuguesa, francesa
profetisa, sacerdotisa
nobreza (de nobre)
beleza (de belo)
certeza (de certo)
pobreza (de pobre)
limpeza (de limpo)
estupidez (de estúpido)
honradez (de honrado)
magreza (de magro)
natureza, pureza, firmeza, franqueza
português, francês, inglês, japonês, holandês, polonês
análise → analisar
pesquisa → pesquisar
paralisia → paralisar
civil → civilizar, real → realizar, moderno → modernizar
coisa, pausa, lousa, Sousa, mausoléu, causa, Neuza
hipótese, paráfrase, análise, osmose, metamorfose, tuberculose
crise, oásis, metástase, catálise
mês, pês (?? não existe), português, francês, chinês
Lista campeã FGV
▸Bloco 7 — Os 4 PORQUÊS22 conceitos
Regra clara
por que** (separado, sem acento)
por quê** (separado, com acento)
porque** (junto, sem acento)
porquê** (junto, com acento)
Teste rápido
Exemplos comparados
Por que* você chegou tarde
Diga-me por que você chegou tarde
Não sei os motivos por que ele agiu assim
Você chegou tarde. Por quê
Cheguei tarde porque dormi demais
Quero saber o porquê do atraso
Os porquês da crise são muitos
Diga-me [___] você chegou tarde." → por que (interrogativo indireto — cabe "por qual razão")
Você chegou tarde [___]?" → por quê (fim de frase)
Cheguei tarde [___] dormi demais." → porque (causa)
Não sei o [___] disso." → porquê (substantivo com artigo)
Regra da acentuação do "quê
Por quê
Ele saiu sem me dizer o quê
Comer o quê? Não temos nada
▸Bloco 8 — Onde × Aonde × Donde10 conceitos
Regra prática
Verbo de estado (morar, estar, ficar, viver, permanecer, trabalhar) → onde (sem movimento)
Verbo de movimento com destino (ir, vir, chegar, dirigir-se, encaminhar-se) → aonde (A + destino)
Verbo de movimento com origem (vir, sair, partir, proceder) → donde (DE + origem)
Erros clássicos FGV
Uso metafórico — CUIDADO
no dia onde cheguei
na situação onde estamos
no momento onde você chegou
na reunião onde se decidiu
▸Bloco 9 — Mau × Mal10 conceitos
Regra ferrenha
MAU — = ADJETIVO. Sempre modifica substantivo masculino. Opõe-se a BOM
Teste rápido
Exemplos comparados
Ele é um [___] filho
Ela canta [___]
O [___] é maior que o bem
[___] chegou, saiu correndo
Foi um [___] negócio
Ele passa [___] com o calor
▸Bloco 10 — Mais × Mas5 conceitos
MAS — = conjunção adversativa. Sinônimo de PORÉM, CONTUDO, TODAVIA, ENTRETANTO
Teste rápido
Ele quer [___] café, [___] não tem mais
Ela estudou, [___] não passou
Precisamos de [___] tempo
▸Bloco 11 — Há × A × À12 conceitos
HÁ — = verbo HAVER. Dois sentidos
A — (preposição) = tempo FUTURO ou distância física
À — = crase = preposição A + artigo A (feminino)
Regra prática de "há tempo" × "a tempo
Há* três anos que trabalho aqui." (já passaram 3 anos)
Faz três anos" → cabe → HÁ
Voltarei daqui a três dias." (vão passar 3 dias)
Após três dias" → futuro → A
Combinações que confundem
Há tempos* não o vejo." (passado)
Chegarei a tempo." (locução — pontual, sem passado)
Há tempo* para tudo." (existência — cabe "existe")
▸Bloco 12 — Locuções que confundem (foco FGV)25 conceitos
Acerca de × Há cerca de × A cerca de
há cerca de
a cerca de
Afim × A fim de
Em vez de × Ao invés de
ao invés de
✅ "Em vez de estudar, foi ao cinema." (substituição — estudar não é oposto de cinema)
❌ "Ao invés de estudar, foi ao cinema." (não é oposição direta — errado em norma culta)
✅ "Ao invés de aceitar, recusou." (oposição direta — aceitar × recusar)
De encontro a × Ao encontro de
de encontro a
ao encontro de
Através de × Por meio de
através de
por meio de
❌ "resolvido através de negociação" (uso coloquial universal, mas errado na norma culta)
✅ "resolvido por meio de negociação
✅ "a bala passou através da parede" (atravessou)
✅ "vejo através da janela" (passando por)
Haja vista
✅ "Haja vista os fatos apresentados
✅ "Haja vista as circunstâncias
⚠️ "hajam vista" (flexionando)
A par × Ao par
A par — = informado, ciente. "Estou a par dos fatos." (= sei dos fatos)
▸Bloco 13 — Parônimos e homônimos ortográficos (os 25 mais cobrados)8 conceitos
Tabela mestre (25 pares clássicos)
trás** (advérbio)
O trio seção × sessão × cessão
Outros parônimos que caem
jus** (fazer jus a)
mal × mau
secção = seção
O par retificar × ratificar (foco FGV total)
▸Bloco 14 — Grafia de palavras rebeldes (35 clássicas)10 conceitos
Palavras "gerundivas" de risco alto
beneficência — (não beneficência com SS)
caleidoscópio — (não caleidoscópio)
misto — (não mizto)
pretensão — (não pretenção)
suspensão — (não suspenção)
excelente — (não escelente)
exceção — (não exeção)
exceto — (não eceto)
assessoria — (com dois SS, não com C)
▸Bloco 15 — Armadilhas FGV recorrentes (top 10)6 conceitos
Extras a memorizar
Retificar × Ratificar — corrigir × confirmar. Mnemônico: rEtificar-Erro × rAtificar-Acordo
Seção × Sessão × Cessão — divisão × reunião × ato de ceder
Ao invés de × Em vez de — oposição direta × substituição qualquer
De encontro a × Ao encontro de — contra × a favor
Através de × Por meio de — atravessando × usando (formal)
▸Bloco final — Ganchos com temas já vistos6 conceitos
g4-regência-verbal
g5-interpretação-gêneros
g11-coesão-conectivos
g13-regência-nominal
g18-atualidades
Palavra final
▸Raciocínio Lógico5 tópicos
▸g1-rl-proposicoes-tabelas-verdade25 conceitos · 0🟢 0🟡 0🟠 0🔴 25⚪
▸Teoria condensada25 conceitos
✅ "O número 7 é primo." (V)
✅ "3 > 5" (F)
❌ "Que horas são?" (pergunta, não é proposição)
❌ "Feche a porta." (imperativo)
❌ "Que legal!" (exclamativa)
Os 5 conectivos essenciais
Tabelas-verdade (regra rápida)
Conjunção (∧): V só quando ambos V — se um for F, resultado é F
Disjunção (∨): F só quando ambos F — se um for V, resultado é V
Condicional (→): **F APENAS quando p=V e q=F
Bicondicional (↔): V quando p=q — igual, dá V
Equivalências que a FGV EXPLORA muito
Contrapositiva — p → q ≡ ¬q → ¬p ← use essa, equivale
Recíproca — q → p ← NÃO equivale
Inversa — ¬p → ¬q ← NÃO equivale
Negação do condicional — (top pegadinha FGV)
Condicional como disjunção — p → q ≡ ¬p ∨ q (útil pra converter)
Tipos de fórmula
Tautologia — sempre V (ex: p ∨ ¬p — princípio do terceiro excluído)
Contradição — sempre F (ex: p ∧ ¬p)
Contingência — depende dos valores (a maioria)
Argumentos válidos clássicos (só citando os nomes)
Modus Ponens — p → q e p ⊢ q ("Se p então q; sabendo p, concluo q")
Modus Tollens
Silogismo hipotético — p → q e q → r ⊢ p → r
▸g15-rl-analogias-argumentacao69 conceitos · 0🟢 0🟡 0🟠 0🔴 69⚪
▸1. Analogias13 conceitos
1 Padrão-mãe FGV
2 Tipos de relação (as 9 que a FGV cobra)
3 Analogias com sequência posicional
A está para D assim como M está para ___
Passo 1: A → D é um salto de +3 posições no alfabeto (A=1, D=4)
Passo 2: aplicar +3 a M (=13): 13 + 3 = 16 → letra P
Resposta: P
3 está para 9 assim como 5 está para ___
Relação candidata 1: multiplicar por 3 → 15
Relação candidata 2: elevar ao quadrado → 25
⚠️ FGV escolhe a mais forte. Se 3² = 9 (relação sem parâmetro externo), então 5² = 25
Se aparecerem AMBAS nas opções, escolher a mais "natural" (a que não depende de constante
4 ⚠️ Pegadinhas FGV em analogia
▸2. Sequências lógicas18 conceitos
1 Sequências numéricas — padrões-tipo
PA — Progressão Aritmética
PG — Progressão Geométrica
Quadrados perfeitos
Diferenças crescentes
2 Exemplo resolvido — sequência com diferenças crescentes
10 - 5 = 5
17 - 10 = 7
26 - 17 = 9
3 Sequências alfabéticas
Posições: 1, 4, 9, 16, ? → são n² → próximo n=5: 25 → letra Y
B, D, F, H, ? → salto +2 → próximo é J
A, C, F, J, O, ? → saltos +2, +3, +4, +5, +6 → próximo é U (O=15, +6=21=U)
4 Sequências de figuras
Rotação — 90°, 180°, 270° (horário/anti-horário)
Reflexão — espelhamento vertical/horizontal
Translação — deslocamento no espaço da célula
5 ⚠️ Pegadinhas FGV em sequência
▸3. Estrutura argumentativa36 conceitos
1 Definições básicas
Premissa — = proposição usada como fundamento
Conclusão — = proposição derivada
Marcadores de premissa: — "pois", "porque", "já que", "dado que", "visto que"
Marcadores de conclusão:
2 Validade × Verdade — a distinção que a FGV explora
Premissa 1: Todos os pássaros são mamíferos. (FALSO)
Premissa 2: Pinguim é pássaro. (V)
Conclusão: Pinguim é mamífero. (FALSO)
✅ **Argumento VÁLIDO
Premissa 1: Alguns médicos são bons profissionais. (V)
Premissa 2: João é médico. (V)
Conclusão: João é bom profissional. (?)
❌ Argumento INVÁLIDO — "alguns" não permite concluir sobre um caso específico
3 Silogismo categórico — as 4 figuras
Figuras — variam pela posição do termo médio T
Barbara — (AAA-1) — Todo M é P; Todo S é M; ∴ Todo S é P
Celarent — (EAE-1) — Nenhum M é P; Todo S é M; ∴ Nenhum S é P
Darii — (AII-1) — Todo M é P; Algum S é M; ∴ Algum S é P
Ferio — (EIO-1) — Nenhum M é P; Algum S é M; ∴ Algum S não é P
4 Regras gerais dos silogismos (as 8)
5 Tipos de argumento — dedutivo × indutivo × abdutivo
Por analogia
De autoridade
Por generalização
6 Falácias — as 9 mais cobradas pela FGV
7 Inferência — implícito × explícito
Explícito — = está literalmente no texto
Implícito (inferência) — = decorre logicamente do que está no texto, mesmo sem estar dito
8 Exemplo resolvido — validar silogismo
M (médio) = programador
P (maior) = conhece lógica
S (menor) = concurseiro
Premissa maior: Todo M é P. (universal afirmativa, A)
Premissa menor: Algum S é M. (particular afirmativa, I)
Conclusão: Algum S é P. (particular afirmativa, I)
▸5. Sentença aberta × proposição2 conceitos
Proposição — = tem valor V ou F. "O céu é azul." (V ou F)
Sentença aberta
▸g16-rl-primeira-ordem-quantificadores76 conceitos · 0🟢 0🟡 0🟠 0🔴 76⚪
▸1. Quantificadores — os 3 essenciais6 conceitos
P(x) — = predicado aplicado à variável x (ex: "x é par")
A(x) — e B(x) = predicados independentes (ex: "x é humano" e "x é mortal")
Domínio = universo do discurso (implícito ou explícito)
1 Sentença aberta × proposição
Sentença aberta — tem variável livre, sem valor V/F. Ex: "x > 3" — só se define ao fixar x
Proposição — fechada, tem V/F. Ex: "5 > 3" (V) ou "∀x (x > 3)" (F, se domínio inclui 2)
▸2. Negação de quantificadores — a regra-mãe16 conceitos
1 As duas equivalências fundamentais
2 Exemplos canônicos (⚠️ TOP FGV)
Frase original
Todos os brasileiros gostam de futebol
Algum médico é ético
Nenhum político mente
Todo aluno passou
Existe um número par
Todos gostam" = 100%
Negação = "nem todos gostam" = "pelo menos um NÃO gosta" (99%, 50%, 1%, 0%
Nenhum gosta" = 0% — é uma afirmação MUITO MAIS FORTE que a simples negação
3 Exemplo resolvido — negar frase composta
∀x [(Func(x) ∧ Sab(x)) → Adic(x)]
∃x ¬[(Func(x) ∧ Sab(x)) → Adic(x)]
∃x [(Func(x) ∧ Sab(x)) ∧ ¬Adic(x)]
Existe um funcionário que trabalha aos sábados E NÃO recebe adicional
▸3. Traduções de linguagem natural para lógica7 conceitos
1 As 4 proposições categóricas (A/E/I/O) — decorar
2 Por que universal usa → e particular usa ∧
3 Negações das 4 proposições categóricas — a tabela mágica
A** (Todo A é B)
E** (Nenhum A é B)
I** (Algum A é B)
O** (Algum A não é B)
▸4. Quadrado das oposições9 conceitos
1 As 4 relações
2 Exemplo prático
A — = Todo brasileiro gosta de futebol
E — = Nenhum brasileiro gosta de futebol
I — = Algum brasileiro gosta de futebol
O — = Algum brasileiro não gosta de futebol
E — é F (não é o caso de nenhum gostar)
I — é V (por subalternação — se todos gostam, existe pelo menos um que gosta)
O — é F (contraditória de A)
▸5. Silogismos com quantificadores23 conceitos
1 Estrutura
Termo maior (P) — predicado da conclusão
Termo menor (S) — sujeito da conclusão
Termo médio (M) — aparece nas 2 premissas, não na conclusão
2 Regras gerais — as 8 (mesmas do Bloco 15)
3 As 4 figuras — posição do termo médio
4 Barbara — o modo estrela
Todo M é P
Todo S é M
∴ Todo S é P
Todo mamífero é vertebrado
Todo cachorro é mamífero
∴ Todo cachorro é vertebrado
5 Exemplo resolvido — verificar validade
P (maior) = confiável
M (médio) = político
S (menor) = concurseiro
P1: Nenhum M é P → tipo E (universal negativa)
P2: Algum S é M → tipo I (particular afirmativa)
C: Algum S não é P → tipo O (particular negativa)
Regra 5: só uma premissa negativa (P1). OK
Regra 7: uma negativa → conclusão negativa. ✅ (conclusão é O, negativa)
Regra 8: uma particular (P2) → conclusão particular. ✅ (conclusão é O, particular)
▸7. Predicados com múltiplas variáveis (introdução)4 conceitos
∀x ∃y P(x, y) — "para todo x, existe algum y tal que P(x, y)". O y pode depender de x
∃y ∀x P(x, y) — "existe algum y tal que, para todo x, P(x, y)". O y é o MESMO pra todos os x
∀x ∃y (y > x) — "para todo número, existe outro maior". VERDADE
∃y ∀x (y > x) — "existe um número maior que todos". FALSO (não existe número máximo)
▸8. Método rápido em prova11 conceitos
Passo 2 — Se pede EQUIVALÊNCIA de "todo A é B"
∀x (A(x) → B(x)) — direta
∀x (¬B(x) → ¬A(x)) — contrapositiva (Bloco 1)
¬∃x (A(x) ∧ ¬B(x)) — negando a O
Passo 3 — Se pede validade de silogismo
Classificar cada proposição como A/E/I/O
Verificar as 8 regras gerais (basta uma violação pra invalidar)
Se sobreviver, é válido
Passo 4 — Se dá "alguns X são Y" e pergunta o que se pode concluir
Se combinar com universal → às vezes sim (Darii, Ferio)
Se combinar com outra particular → nada se conclui (regra 5+8)
▸g17-rl-problemas-aritmeticos-matriciais93 conceitos · 0🟢 0🟡 0🟠 0🔴 93⚪
▸1. Porcentagem23 conceitos
1 Fundamento
20% de 300 = 0,20 × 300 = 60
15% de 80 = 0,15 × 80 = 12
2 Fator multiplicador — o atalho da FGV
Aumento de 10%
Aumento de 20%
Aumento de 100%
Desconto de 15%
Desconto de 40%
Desconto de 100%
3 ⚠️ Aumentos sucessivos NÃO somam
Preço com aumento de 20% seguido de aumento de 30%
Fator combinado: 1,20 × 1,30 = 1,56 = +56%
❌ Erro clássico: 20% + 30% = 50%. **NÃO É
Preço aumenta 20% e depois cai 20%
Fator combinado: 1,20 × 0,80 = 0,96 = -4%
⚠️ NÃO volta ao valor original! Perdeu 4%
4 Variação percentual entre dois valores
Preço passou de 80 pra 100. Variação = (100-80)/80 × 100% = 20/80 × 100% = +25%
Preço passou de 100 pra 80. Variação = (80-100)/100 × 100% = -20%
5 Exemplo resolvido — porcentagem composta
1,10 × 1,20 = 1,32
1,32 × 1,25 = 1,65
▸2. Razão e proporção10 conceitos
2 Proporção
Soma: (a + c) / (b + d) = a / b
Subtração: (a - c) / (b - d) = a / b
3 Divisão proporcional
Cada parte = V × x / (x+y+z), V × y / (x+y+z), V × z / (x+y+z)
Total das partes: 2 + 3 + 5 = 10
Primeira parte: 6000 × 2/10 = 1200
Segunda: 6000 × 3/10 = 1800
Terceira: 6000 × 5/10 = 3000
Confere: 1200 + 1800 + 3000 = 6000. ✅
▸3. Regra de três10 conceitos
1 Regra de três simples DIRETA
3 / 12 = 7 / x → x = 12 × 7 / 3 = 84 / 3 = 28. Custam R$ 28
2 Regra de três simples INVERSA
Grandezas inversamente proporcionais (mais pedreiros = menos dias)
4 × 12 = 6 × x → x = 48 / 6 = 8 dias
3 Regra de três COMPOSTA
Operários × Peças: direta (mais op → mais peças). Mantém
Horas × Peças: direta (mais horas → mais peças). Mantém
x / 100 = (8 × 6) / (5 × 8) = 48 / 40 = 1,2
x = 100 × 1,2 = 120 peças
▸4. Juros — simples × compostos16 conceitos
1 Juros simples (linear)
Juros: **J = C × i × t
Montante: **M = C + J = C × (1 + i × t)
C = capital inicial
i = taxa (em decimal)
J = juros gerados
M = montante final (capital + juros)
J = 1000 × 0,05 × 3 = 150
M = 1000 + 150 = 1150
2 Juros compostos (exponencial)
M = 1000 × (1,05)³ = 1000 × 1,157625 = 1157,625
Juros = M - C = 157,625
3 Comparação simples × composto
4 ⚠️ Pegadinha da unidade
Taxa mensal + tempo em meses. OK
Taxa anual + tempo em meses → ERRO. Converter primeiro
▸5. Sistemas lineares11 conceitos
1 Sistema 2×2 (2 equações, 2 incógnitas)
2 Métodos de resolução
D = |a₁ b₁; a₂ b₂| = a₁b₂ - a₂b₁ (determinante principal)
Dx = |c₁ b₁; c₂ b₂| = c₁b₂ - c₂b₁ (substitui coluna de x pelos termos independentes)
Dy = |a₁ c₁; a₂ c₂| = a₁c₂ - a₂c₁ (substitui coluna de y)
x = Dx / D · y = Dy / D
3 Classificação
SPD: retas se cruzam em 1 ponto
SPI: retas COINCIDENTES (equações múltiplas uma da outra)
SI: retas PARALELAS (mesma inclinação, alturas diferentes)
4 Exemplo resolvido — Regra de Cramer
▸7. Análise combinatória23 conceitos
1 Princípio Fundamental da Contagem (PFC)
2 Fatorial
0! = 1 (convenção)
10! = 3.628.800
3 Permutação — P(n)
C, A, S, A → n = 4, mas A repete 2×
Permutação COM repetição: P(4; 2) = 4! / 2! = 24 / 2 = 12 anagramas
P(n; n₁, n₂, ..., n_k) = n! / (n₁! × n₂! × ... × n_k!)
4 Arranjo — A(n, p)
Ordem importa (presidente ≠ vice)
A(10, 2) = 10! / 8! = 10 × 9 = 90 comissões
5 Combinação — C(n, p)
Ordem não importa
C(10, 2) = 10! / (2! × 8!) = (10 × 9) / (2 × 1) = 45 comissões
6 Arranjo × Combinação — a distinção crítica
Presidente e vice (cargos distintos)
Comissão de 3 sem cargos
Senha numérica (1234 ≠ 4321)
Escolher 5 cartas de baralho
Anagramas de palavra
7 Exemplo resolvido — arranjo vs combinação
C(8, 3) = 8! / (3! × 5!) = (8 × 7 × 6) / (3 × 2 × 1) = 336 / 6 = 56 comissões
A(8, 3) = 8! / 5! = 8 × 7 × 6 = 336 diretorias
▸g17b-rl-geometria-basica86 conceitos · 0🟢 0🟡 0🟠 0🔴 86⚪
▸1. Geometria plana — fundamentos8 conceitos
1 Ponto, reta, plano
Ponto — = ente sem dimensão (posição)
Reta — = ente com 1 dimensão (comprimento)
Plano — = ente com 2 dimensões (comprimento × largura)
2 Classificação de ângulos
Complementares — soma 90°
Suplementares — soma 180°
Opostos pelo vértice (OPV) — congruentes (iguais)
▸2. Triângulos21 conceitos
1 Classificação
2 Soma dos ângulos internos
3 ⚠️ Teorema de Pitágoras — só em triângulo RETÂNGULO
(5, 12, 13)
(8, 15, 17)
(7, 24, 25)
Múltiplos: (6, 8, 10), (9, 12, 15), (10, 24, 26)…
4 Relações métricas no triângulo retângulo
a² = b² + c² — (Pitágoras)
h² = m × n — (altura² = produto das projeções)
b² = a × m — (cateto² = hipotenusa × projeção adjacente)
c² = a × n
b × c = a × h — (produto dos catetos = hipotenusa × altura)
5 Trigonometria no triângulo retângulo
sen α = CO / H — = cateto oposto / hipotenusa
cos α = CA / H — = cateto adjacente / hipotenusa
tg α = CO / CA — = cateto oposto / cateto adjacente = sen α / cos α
6 Valores notáveis (decorar)
7 Relação fundamental
Se sen α = 3/5, então cos²α = 1 - 9/25 = 16/25 → cos α = 4/5
Reconhece triângulo (3, 4, 5)
▸3. Áreas de figuras planas19 conceitos
1 Fórmulas essenciais
Quadrado** (lado l)
Retângulo** (base b, altura h)
Triângulo** (base b, altura h)
Triângulo equilátero** (lado l)
Trapézio** (bases B e b, altura h)
Losango** (diagonais D e d)
Paralelogramo** (base b, altura h)
Círculo** (raio r)
Setor circular** (ângulo θ em graus, raio r)
2 Fórmula de Heron (triângulo por 3 lados)
Semiperímetro: s = (a + b + c) / 2
Área: A = √(s × (s-a) × (s-b) × (s-c))
s = (3+4+5)/2 = 6
A = √(6 × 3 × 2 × 1) = √36 = 6
Confere com (3×4)/2 = 6 (base × altura /2 aplicado ao triângulo retângulo). ✅
3 Perímetros e circunferência
Perímetro — = soma dos lados
Circunferência — = 2 × π × r = π × d (diâmetro)
▸4. Semelhança de triângulos6 conceitos
1 Definição
2 ⚠️ Razão de áreas ≠ razão de lados
Áreas na razão 4:9 (não 2:3)
❌ Erro clássico FGV: usar 2:3 pra áreas
3 Teorema de Tales
4/6 = 6/x → x = 6×6/4 = 9
▸5. Geometria espacial — sólidos e volumes13 conceitos
1 Fórmulas de volume
Cubo** (aresta a)
Paralelepípedo retângulo** (a, b, c)
Prisma** (área base × altura)
Cilindro** (raio r, altura h)
Pirâmide** (base × altura / 3)
Cone** (raio r, altura h)
Esfera** (raio r)
2 Áreas de superfície
Paralelepípedo** (a, b, c)
Cone** (raio r, geratriz g)
3 Relação de Euler para poliedros convexos
4 Exemplo resolvido — cilindro
▸6. Sistema cartesiano (geometria analítica)13 conceitos
1 Distância entre 2 pontos
d = √((4-1)² + (6-2)²) = √(9 + 16) = √25 = 5
2 Ponto médio
3 Coeficiente angular (inclinação)
4 Equação da reta
5 Retas paralelas × perpendiculares
Perpendiculares
6 Circunferência
(x - 2)² + (y - 3)² = 25
7 Exemplo resolvido — reta perpendicular
y - 5 = -1/2 × (x - 1)
y = -1/2 × x + 1/2 + 5
y = -0,5x + 5,5
▸7. Círculo trigonométrico e arcos6 conceitos
1 Círculo trigonométrico
2 Arcos correspondentes
sen(180° - α) = sen α
cos(180° - α) = -cos α
sen(-α) = -sen α (função ímpar)
cos(-α) = cos α (função par)
▸Atualidades + IA2 tópicos
▸g18-atualidades-2025-2026-eixos58 conceitos · 0🟢 0🟡 0🟠 0🔴 58⚪
▸Eixo 1 · Meio Ambiente e Clima (Brasil no centro)4 conceitos
IBAMA — fiscalização e autuação
ICMBio — gestão das unidades de conservação federais
ANA — Agência Nacional de Águas
FUNAI — Fundação Nacional dos Povos Indígenas
▸Eixo 2 · Política Brasileira3 conceitos
Maior número de prefeitos eleitos: PSD — , seguido de MDB. PL e União Brasil ficaram atrás
Rio de Janeiro: — Eduardo Paes (PSD) reeleito ainda no 1º turno
PL da Anistia (8/1)
▸Eixo 3 · Economia Brasileira3 conceitos
CBS** (Contribuição sobre Bens e Serviços)
IBS** (Imposto sobre Bens e Serviços)
IS** (Imposto Seletivo, "imposto do pecado")
▸Eixo 4 · Relações Internacionais — Guerras e conflitos6 conceitos
Conflito permanece ativo em 2024–2026. Sem tratado de paz. Sem entrada da Ucrânia na OTAN. Rúss…
Trump (a partir de jan/2025) tentou mediar cessar-fogo; negociações Trump-Putin-Zelensky em 2025 se…
CIJ (Corte Internacional de Justiça) — 26/01/2024
Cessar-fogo Fase 1 — jan/2025
Israel × Hezbollah (Líbano)
Queda de Bashar al-Assad (Síria) — dez/2024
▸Eixo 5 · Relações Internacionais — Política Mundial3 conceitos
Tarifaço — global (tarifas contra China, México, Canadá, UE, Brasil) → guerra comercial
Deportações em massa — de imigrantes ilegais
Saída de acordos — Acordo de Paris (clima), OMS
▸Eixo 6 · Tecnologia — Regulação de IA10 conceitos
Inaceitável** (proibido)
Alto risco
Risco limitado
Risco mínimo
GDPR — (2018) — dados pessoais (é o irmão mais velho da LGPD)
DSA — (Digital Services Act) — plataformas digitais
DMA — (Digital Markets Act) — mercado digital, gatekeepers
DGA — (Data Governance Act) — governança de dados públicos
Art. 5º, II
Art. 18 — direitos gerais do titular (acesso, correção, portabilidade, eliminação etc.)
▸Eixo 7 · IA Fundamentos — Paradigmas de Machine Learning7 conceitos
Não supervisionado
Semi-supervisionado
Overfitting — modelo decora o treino, generaliza mal
Underfitting — modelo simples demais, erra treino e teste
Concept drift
Data poisoning — ataque com dados maliciosos no treino
Bias/viés algorítmico — discriminação sistemática herdada dos dados
▸Eixo 8 · IA Generativa — Transformers, LLMs, RAG3 conceitos
Prompt engineering** (zero-shot, few-shot, CoT)
RAG** (Retrieval-Augmented Generation)
RLHF** (Reinforcement Learning from Human Feedback)
▸Eixo 9 · IA Ética, Privacidade e XAI7 conceitos
Mapas de saliência — para redes visuais (destaca pixels que influenciam a decisão)
Federated learning — treino distribuído sem centralizar dados
Data augmentation — expandir dataset artificialmente
Transfer learning — reaproveitar pesos de outro modelo
RL — agente + recompensa
Viés algorítmico
Dados sensíveis (LGPD art. 5º, II)
▸Eixo 10 · Segurança, Energia, Transportes e Sociedade12 conceitos
Principal vetor de ataque continua sendo phishing + engenharia social
NIST CSF 2.0
Fontes renováveis — (eólica onshore/offshore, solar) — Brasil >90% da matriz elétrica renovável
Hidrogênio verde
BYD (chinesa)
Tarifa de importação de EV
Metrô/BRT — expansões em SP (linhas 6-Laranja, 2-Verde), Rio e Recife
Dengue — epidemia recorde 2024
Mpox (varíola dos macacos)
Enchentes RS — abr/mai 2024, ~180 mortos, 400+ municípios afetados
Olimpíadas Paris 2024
Copa América 2024 — Argentina campeã (bicampeã seguida). Realizada nos EUA
▸g19-ia-fundamentos-etica-governanca120 conceitos · 0🟢 0🟡 0🟠 0🔴 120⚪
▸Bloco 1 — Os 4 paradigmas de Machine Learning7 conceitos
Não supervisionado
Semi-supervisionado
O que NÃO é paradigma primário (armadilha)
Adversarial learning — técnica de robustez (GANs)
Federated learning — técnica de distribuição sem centralizar dados
Transfer learning — reaproveitar pesos de modelo pré-treinado
Self-supervised — algumas classificações consideram um 5º, mas FGV usa os 4 clássicos
▸Bloco 2 — Regressão × Classificação × Clustering3 conceitos
Classificação binária × multiclasse × multilabel
Binária — 2 classes (spam/não spam)
Multiclasse — 3+ classes exclusivas (categorizar produto: eletrônico/vestuário/alimento)
▸Bloco 3 — Overfitting × Underfitting × Concept Drift14 conceitos
Overfitting (superajuste)
Sintoma: — alto acerto no treino, baixo em teste (gap grande)
Causa: — modelo complexo demais para o volume/qualidade de dados
Underfitting (subajuste)
Sintoma: — baixo acerto em ambos
Causa: — modelo com pouca capacidade, features insuficientes
Mitigação: — aumentar complexidade, adicionar features, treinar mais tempo
Concept Drift
Distribuição dos dados MUDA ao longo do tempo — modelo em produção "envelhece" mesmo sem bug
Ex.: modelo de risco de crédito treinado pré-pandemia perdeu acurácia porque o comportamento do cli…
Data Drift (relacionado, distinto)
Ex.: distribuição etária dos usuários mudou, mas fraude ainda tem os mesmos padrões
Concept drift — = mudança natural do mundo real
Data poisoning — = ATAQUE ativo com dados maliciosos no treino
▸Bloco 4 — Bias × Variância (trade-off clássico)4 conceitos
Bias (viés estatístico)
Erro total decomposto
Bias estatístico — erro de modelagem (métrica técnica)
Viés algorítmico — discriminação sistemática (ética/social)
▸Bloco 5 — Métricas de classificação (matriz de confusão)9 conceitos
Real Positivo
Real Negativo
Precisão (Precision)
Recall (Revocação, Sensibilidade)
Quando usar cada uma
Precisão — quando FP é caro (ex.: detecção de spam — não quero perder e-mail bom)
Recall — quando FN é caro (ex.: câncer — não posso deixar de detectar)
F1 — quando quero equilíbrio, especialmente em classes desbalanceadas
AUC-ROC — mede desempenho em todos os thresholds; robusto a desbalanceamento
▸Bloco 6 — Arquitetura Transformer e LLMs17 conceitos
Encoder-decoder — versão original (tradução)
Encoder-only — BERT, RoBERTa (compreensão)
Decoder-only — GPT, LLaMA, Claude (geração)
Mecanismo central: Self-attention
Fórmula simplificada da atenção
Q (query), K (key), V (value) — projeções lineares do embedding do token
LLM (Large Language Model)
GPT-4/5 — (OpenAI, proprietário)
Claude — (Anthropic, proprietário)
Gemini — (Google, proprietário)
LLaMA — (Meta, open-weights)
DeepSeek — (chinês, open-weights, marco de fev/2025)
Mistral, Qwen, Falcon — (open-weights)
Parâmetros × pesos × tokens
Parâmetros — pesos treináveis do modelo (7B, 70B, 405B)
Contexto (context window) — máximo de tokens que o modelo processa por vez (4k, 128k, 1M+)
Token — unidade de texto processada (~0,75 palavra em português)
▸Bloco 7 — Adaptação de LLM: o que altera peso e o que NÃO altera7 conceitos
Prompt engineering
RAG** (Retrieval-Augmented Generation)
LoRA / QLoRA
RLHF** (Reinforcement Learning from Human Feedback)
DPO** (Direct Preference Optimization)
RAG faz fine-tuning do modelo" → ERRADO. RAG NÃO altera pesos, apenas injeta contexto
Prompt engineering muda o comportamento do modelo permanentemente" → ERRADO. Cada prompt é inde…
▸Bloco 8 — Alucinação e mitigação3 conceitos
Intrínseca — contradição interna do próprio texto gerado
Extrínseca — contradição com fato real do mundo
Alucinação de fonte — inventa citações, referências acadêmicas, decisões judiciais que não existem
▸Bloco 9 — XAI (Explainable AI)14 conceitos
Ferramentas principais
SHAP** (SHapley Additive exPlanations)
LIME** (Local Interpretable Model-agnostic Explanations)
Mapas de saliência (saliency maps)
Integrated Gradients
Attention weights
Feature importance (built-in)
Explicação Global × Local
Global — como o modelo funciona no geral (features mais importantes no dataset)
Local — por que ele deu ESTA resposta a ESTA instância específica
Federated learning — treino distribuído sem centralizar dados
Data augmentation — expandir dataset artificialmente
Transfer learning — reaproveitar pesos
AutoML — automatizar pipeline de ML (não é sobre explicação)
▸Bloco 10 — Viés algorítmico e Fairness15 conceitos
Viés algorítmico — discriminação sistemática herdada dos dados de treino ou do próprio design
Fontes de viés
Dados históricos enviesados
Amostragem viesada — subrepresentação de grupos minoritários
Rótulos enviesados — anotadores humanos com preconceito
Design da métrica — objetivo mal definido reproduz vieses
Feedback loop
Casos famosos
Amazon Recruiting Tool — (2018) — sistema de RH que penalizava currículos de mulheres; descontinuado
Face recognition
Métricas de fairness
Demographic parity — proporção de aprovação igual entre grupos protegidos
Equal opportunity — TPR (recall) igual entre grupos
Equalized odds — TPR e FPR iguais entre grupos
Individual fairness — indivíduos parecidos devem ter tratamento parecido
▸Bloco 11 — Governança de IA — normas e leis21 conceitos
AI Act — União Europeia (2024)
Inaceitável** (proibido)
Alto risco
Risco limitado
Risco mínimo
PL 2338/2023 — Marco Legal da IA (Brasil)
Autoria: senador Rodrigo Pacheco (PSD-MG)
Aprovado no Senado em dez/2024, seguiu para Câmara em 2025
Classifica sistemas em excessivo / alto / demais (inspirado no AI Act)
LGPD (Lei 13.709/2018) — o que a FGV cobra sobre IA
Art. 20 — direito à revisão de decisão automatizada
Art. 5º, II — dados sensíveis
Nome, endereço, CPF, e-mail NÃO são sensíveis — são dados pessoais comuns
Distinção de siglas UE (sopa comum de confundir)
GDPR** (2018)
AI Act** (2024)
DSA** (Digital Services Act)
DMA** (Digital Markets Act)
DGA** (Data Governance Act)
ISO/IEC 42001 (2023)
NIST AI RMF (Risk Management Framework, 2023)
▸Bloco 12 — Ética em IA — princípios1 conceitos
Diretrizes UE (HLEG, 2019)
▸Ganchos pro JM5 conceitos
Como dev sênior
Sobreposição g18/g19
Grande armadilha JM-específica
RAG × fine-tuning
Métricas de fairness
▸2️⃣Tier 2 — TI pesadoblocos densos4 temas · 17 tópicos
▸Segurança & Governança3 tópicos
▸40-seguranca-deep175 conceitos · 0🟢 0🟡 0🟠 0🔴 175⚪
▸Bloco 1 — Tríade CIA + AAA6 conceitos
Confidentiality — (Confidencialidade): só autorizados leem — criptografia, controle de acesso
Authentication — (Autenticação): quem é você? (senha, biometria, MFA)
Authorization — (Autorização): o que você pode fazer? (RBAC, ABAC, ACL)
Accounting/Audit — (Auditoria): registrar o que foi feito (logs)
Autenticação = provar identidade
Autorização = decidir permissão (assume identidade já provada)
▸Bloco 2 — ISO/IEC 27001 e 2700210 conceitos
Família ISO 27000 — Segurança da Informação (SGSI = Sistema de Gestão de Segurança da Informação)
Anexo A: 93 controles (versão 2022; era 114 na versão 2013)
Ciclo PDCA (Plan-Do-Check-Act)
Baseado em gestão de riscos: identificar → analisar → tratar (mitigar/aceitar/transferir/evitar)
2022: 93 controles em 4 temas (era 14 domínios em 2013)
5 atributos por controle
27005: gestão de riscos
27017: cloud
27018: PII em cloud
27701: privacidade (extensão pra LGPD/GDPR)
▸Bloco 3 — Modelos de controle de acesso4 conceitos
Least Privilege — mínimo necessário
Need to Know — só ver o que precisa saber
Separation of Duties — separar funções críticas (quem paga ≠ quem aprova)
Defense in Depth — múltiplas camadas
▸Bloco 4 — Criptografia SIMÉTRICA7 conceitos
Blowfish/Twofish
Bloco 128 bits, chaves 128/192/256
Rounds: 10/12/14 (por tamanho da chave)
Substituição-Permutação (Rijndael)
Modos de operação
Vantagem — rápida (100× mais rápida que RSA)
Desvantagem — distribuição de chave (como compartilhar sem canal seguro?)
▸Bloco 5 — Criptografia ASSIMÉTRICA (chave pública)9 conceitos
Cifrar com pública → só privada decifra = confidencialidade (envelope)
Cifrar/assinar com privada → pública verifica = autenticidade (assinatura digital)
RSA** (Rivest-Shamir-Adleman, 1977)
DSA** (Digital Signature Algorithm)
Diffie-Hellman** (1976)
ECC** (Elliptic Curve Crypto)
RSA — funcionamento resumido
Desvantagem geral — ~100× mais lenta que simétrica
Padrão híbrido
▸Bloco 6 — HASH e HMAC5 conceitos
Resistência a pré-imagem — dado h, achar m tal que hash(m)=h é inviável
Resistência a 2ª pré-imagem — dado m1, achar m2≠m1 com hash(m1)=hash(m2) é inviável
Resistência a colisão — achar QUALQUER m1≠m2 com hash iguais é inviável
SHA-2** (SHA-256, SHA-384, SHA-512)
SHA-3** (Keccak)
▸Bloco 7 — KDF (Key Derivation Function) para senhas3 conceitos
Argon2d: resistente a GPU (time-only)
Argon2i: resistente a side-channel (memory-only)
Argon2id — ✅: híbrido, recomendado (OWASP)
▸Bloco 8 — Assinatura digital7 conceitos
Objetivo — garantir autenticidade + integridade + não-repúdio de uma mensagem
RSA-PSS — (RSA com PKCS#1 v2.1) — recomendado
RSA PKCS#1 v1.5 — legado, vulnerabilidades históricas
ECDSA — assinatura ECC (Bitcoin usa secp256k1)
EdDSA / Ed25519 — moderna, rápida, sem randomness (determinística)
MAC/HMAC: chave secreta compartilhada → NÃO oferece não-repúdio (qualquer lado pode forjar)
Assinatura: chave privada individual → oferece **não-repúdio
▸Bloco 9 — Certificados X.509 e PKI18 conceitos
RA — (Registration Authority): valida identidade antes da emissão
VA — (Validation Authority): valida certificados via CRL/OCSP
Subscriber — quem tem o certificado
Relying Party — quem confia (browser, cliente)
Version, Serial Number
Signature Algorithm — (ex.: SHA256WithRSA)
Issuer — (CA emissora, DN)
Validity — (Not Before / Not After)
Subject — (a quem pertence, DN)
Subject Public Key Info
Signature Value — (assinado pela CA)
PEM — (Base64, -----BEGIN CERTIFICATE-----) — mais comum
DER — (binário)
PKCS#12/PFX — (.p12, .pfx) — cert + chave privada, protegido por senha
PKCS#7 — (.p7b, .p7c) — cadeia sem chave privada
OCSP Stapling — servidor anexa resposta OCSP assinada no handshake TLS. Melhor de todos
DV — (Domain Validated): valida só posse do domínio (Let's Encrypt)
OV — (Organization Validated): valida também a organização
▸Bloco 10 — TLS (Transport Layer Security)24 conceitos
Handshake Protocol — negocia versão, cipher suite, troca chaves, autentica
Record Protocol — transporta dados cifrados
Alert Protocol — notifica erros
Change Cipher Spec — sinaliza mudança de estado (removido no 1.3)
Handshake reduzido — 1 RTT (era 2)
0-RTT — (early data) em resumo de sessão — ⚠️ replay attack risco
PFS obrigatório — (Perfect Forward Secrecy): só ECDHE/DHE, RSA key exchange removido
Cipher suites simplificados
AEAD obrigatório — (Authenticated Encryption): removidos CBC, RC4, 3DES
Signature schemes — modernos: RSA-PSS, ECDSA, Ed25519
Certificate — , CertificateVerify, Finished todos cifrados (privacidade do handshake)
Removidos: compression (CRIME attack), renegotiation, static RSA
ECDHE = key exchange
RSA = autenticação (cert)
AES_128_GCM = cifra simétrica + modo
SHA256 = MAC/PRF
BEAST — (2011, CBC/TLS 1.0)
CRIME — (2012, compressão TLS)
BREACH — (2013, compressão HTTP)
Heartbleed — (2014, OpenSSL bug, vaza memória)
POODLE — (2014, SSL 3.0)
FREAK — (2015, export ciphers)
Logjam — (2015, DH fraco)
DROWN — (2016, SSLv2 residual)
▸Bloco 11 — HTTPS e HSTS9 conceitos
Header: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Servidor diz ao browser: "só me acesse via HTTPS pelos próximos N segundos
Impede downgrade attack (SSLstrip)
1º request
max-age ≥ 31536000 (1 ano)
includeSubDomains
preload directive
Site totalmente HTTPS
Certificate Transparency (CT)
▸Bloco 12 — OAuth 2.0 (autorização, RFC 6749)12 conceitos
Resource Owner — (RO): usuário dono do recurso
Client — aplicação que quer acessar
Authorization Server — (AS): emite tokens (Google, Auth0)
Resource Server — (RS): hospeda os recursos (API)
Access Token — curta duração (min-h), acessa recursos
Refresh Token — longa duração (dias-meses), troca por novo access token
/authorize — inicia fluxo, redireciona pra login
/token — troca code por token
/userinfo (OIDC)
/introspect — valida token (RFC 7662)
/revoke (RFC 7009)
Scopes — permissões granulares (read:email, write:posts)
▸Bloco 13 — OAuth 2.0 — 4 Flows13 conceitos
Authorization Code* (com PKCE) ✅ recomendado hoje
Cliente gera code_verifier aleatório (43-128 chars)
code_challenge = BASE64URL(SHA256(code_verifier))
Envia challenge no /authorize
Envia verifier no /token
AS confere: SHA256(verifier) == challenge
Impede code interception attack
PKCE hoje é OBRIGATÓRIO
Client Credentials* ✅
Implicit* ⛔ deprecado
Deprecado — OAuth Security BCP (RFC 8252) e OAuth 2.1 removem. Use Auth Code + PKCE
Resource Owner Password Credentials (ROPC)* ⛔ evitar
(bônus) Device Authorization Grant (RFC 8628)
▸Bloco 14 — OpenID Connect (OIDC)12 conceitos
Endpoint /userinfo — retorna claims do usuário
Scope openid — obrigatório pra ativar OIDC
Scopes padrão: profile, email, address, phone
Discovery: /.well-known/openid-configuration
iss (issuer), sub (subject/user ID), aud (audience/client_id), exp (expiration), iat (iss…
Authorization Code Flow — ✅ (recomendado)
Implicit Flow — ⛔
Hybrid Flow — (mistura)
JWS — (assinado) — mais comum
JWE — (cifrado) — payload cifrado
Algoritmos: HS256 (HMAC-SHA256), RS256 (RSA), ES256 (ECDSA)
⚠️ alg: none = ataque clássico. Sempre validar alg server-side
▸Bloco 15 — SSO: SAML × OIDC11 conceitos
SAML 2.0 (Security Assertion Markup Language, 2005)
Baseado em **XML
IdP — (Identity Provider) + SP (Service Provider)
Assertion — SAML: XML assinado com dados do usuário
Bindings: HTTP Redirect (parâmetro na URL), HTTP POST (form), **Artifact
Fluxos: SP-initiated (mais comum), **IdP-initiated
XML Signature — (XMLDSig) — vulnerável a XML Signature Wrapping (XSW) se mal implementado
Uso típico: enterprise B2B, universidades (Shibboleth), governo (gov.br usa SAML + OIDC)
Baseado em **JSON/JWT + HTTPS
Mais leve, mobile-friendly
Uso típico: web/mobile modernos, consumer (Login com Google/Facebook)
▸Bloco 16 — Ameaças OWASP e defesas comuns12 conceitos
OWASP Top 10 (2021) — as 10 categorias mais críticas de vulnerabilidade web
SQLi — prepared statements / parameterized queries, ORM
CSRF — token anti-CSRF, SameSite=Lax/Strict, verificar Origin/Referer
Clickjacking — X-Frame-Options: DENY / Content-Security-Policy: frame-ancestors 'none'
MITM — HTTPS + HSTS + CT
Timing attack — comparação em tempo constante (hmac.compare_digest)
Strict-Transport-Security (HSTS)
Content-Security-Policy (CSP)
X-Content-Type-Options: nosniff
X-Frame-Options ou CSP frame-ancestors
Referrer-Policy
Permissions-Policy
▸Bloco 17 — Segurança em cloud, mTLS, secrets13 conceitos
Zero Trust
⛔ Nunca commit secret no repo (gitleaks, truffleHog escaneiam)
✅ Vault (HashiCorp), AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, Kubernetes Secrets (…
Rotação automática
Fatores: algo que sabe (senha), algo que tem (token, celular), algo que é (biometria)
HOTP — (HMAC-based OTP, RFC 4226): contador em vez de tempo
SMS — ⚠️ vulnerável a SIM swap — não é MFA forte
Consentimento, finalidade, minimização
Direitos do titular
DPO/Encarregado — obrigatório
Notificação de incidente à ANPD e ao titular
Cifrar dados em repouso e em trânsito
Anonimização vs pseudoanonimização
▸41-governanca-deep138 conceitos · 0🟢 0🟡 0🟠 0🔴 138⚪
▸Bloco 1 — Governança vs Gerenciamento (fundamento)5 conceitos
Governança — COBIT (foca em governança + gestão, mas o eixo é governança)
Gerenciamento de serviços — ITIL v4 (operação de serviços de TI)
Gerenciamento de projetos — PMBOK (projetos temporários com escopo definido)
Maturidade de processos — CMMI (medir onde a org está)
Modelagem de processos — BPMN 2.0 (notação visual)
▸Bloco 2 — ITIL v4 (2019)26 conceitos
ITIL = Information Technology Infrastructure Library
v3 = ciclo de vida de serviço (estratégia → design → transição → operação → melhoria)
v4 = SVS (Service Value System) + 34 práticas (não mais "processos", pra soar mais moderno/…
4 Dimensões (holismo — ignorar qualquer uma degrada o serviço)
7 Princípios-Guia (v4)
SVS (Service Value System)
Guiding Principles — (7 acima)
Service Value Chain
Practices — (34)
Continual Improvement
34 Práticas (agrupadas em 3 categorias)
General Management (14)
Service Management (17)
Technical Management (3)
Incident Management — restaurar serviço o mais rápido possível (foco: restauração, não causa raiz)
Problem Management — encontrar CAUSA RAIZ de incidentes recorrentes
Change Enablement — (era Change Management na v3) — mudanças autorizadas e seguras
Service Level Management — SLA, SLO, SLI, XLA
Service Desk — ponto único de contato usuário↔TI
Service Request Management — pedidos rotineiros (não incidente)
Diferença Incidente × Problema × Requisição × Mudança
Requisição de Serviço
SLA/SLO/SLI/XLA
SLI — (Indicator) = MÉTRICA (ex.: latência p95 = 240ms)
SLO — (Objective) = META interna (ex.: latência p95 < 300ms)
XLA — (Experience LA) = medir EXPERIÊNCIA (NPS, CSAT) além de métrica técnica
▸Bloco 3 — COBIT 201913 conceitos
Governança × Gestão (COBIT distingue os 2)
Governança — 5 objetivos EDM (Evaluate, Direct, Monitor) — conselho/board
Gestão — 35 objetivos em 4 domínios
6 Princípios do Sistema de Governança (COBIT 2019)
7 Componentes do Sistema de Governança
Design Factors (11) — novo em 2019
Modelo de capacidade (CMMI-derived)
Nível 0 — Incomplete Process
Nível 1 — Initial (feito, imprevisível)
Nível 2 — Managed (planejado, monitorado)
Nível 3 — Defined (padronizado)
Nível 4 — Quantitatively Managed (medido, estatístico)
Nível 5 — Optimizing (melhoria contínua)
▸Bloco 4 — BPMN 2.038 conceitos
BPMN = Business Process Model and Notation
4 categorias de elementos
Event — (evento) — círculo. Start (fino), Intermediate (dupla linha), End (grosso)
Activity — (atividade) — retângulo arredondado. Task (simples), Sub-Process (com +)
Gateway — (decisão) — losango
Sequence Flow — seta cheia (fluxo dentro do mesmo pool)
Message Flow — seta tracejada (mensagem entre pools)
Association — linha pontilhada (liga artefato a elemento)
Pool — participante inteiro (organização, sistema). Um pool = uma "raia principal"
Lane — divisão dentro do pool (departamento, papel)
Data Object — dado consumido/produzido
Group — agrupamento visual
Annotation — texto explicativo
Tipos de Gateway (losango)
Exclusive (XOR) — X ou nada dentro. UMA saída (a que atender condição)
Parallel (AND) — + dentro. TODAS as saídas em paralelo
Inclusive (OR) — O dentro. UMA OU MAIS saídas (condições avaliadas independentemente)
Event-based — pentágono dentro. Rota conforme QUAL evento chegar primeiro
Complex — * dentro. Lógica avançada (raro)
Tipos de Task
User Task — humano usando sistema
Service Task — sistema automatizado
Manual Task — humano SEM sistema
Script Task — engine BPM roda script
Send/Receive Task — envia/recebe mensagem
Business Rule Task — engine de regras
Tipos de Sub-Process
Embedded — fluxo interno visível quando expande
Call Activity — chama outro processo reutilizável
Event Sub-Process — só executa se evento disparar
Transaction — commit/rollback
Eventos importantes
Timer — dispara em tempo definido
Message — chegou mensagem
Error — captura erro
Signal — broadcast (múltiplos ouvintes)
Compensation — desfaz atividade
Terminate — mata TODO o processo (não só a instância)
▸Bloco 5 — PMBOK (Project Management Body of Knowledge)14 conceitos
PMBOK = guia do PMI (Project Management Institute)
PMBOK 6 — = 49 processos, 10 áreas de conhecimento, 5 grupos de processo
PMBOK 6 — 5 Grupos de Processo
PMBOK 6 — 10 Áreas de Conhecimento
PMBOK 7 — 12 Princípios
PMBOK 7 — 8 Domínios de Desempenho
EVM (Earned Value Management) — cai muito
PV — (Planned Value) = valor orçado pra ser feito até a data
EV — (Earned Value) = valor orçado do que foi FEITO até a data
AC — (Actual Cost) = custo real do que foi feito
SV — (Schedule Variance) = EV − PV. Positivo = adiantado
CV — (Cost Variance) = EV − AC. Positivo = economia
SPI — (Schedule Performance Index) = EV / PV. >1 = adiantado
CPI — (Cost Performance Index) = EV / AC. >1 = abaixo do orçado
▸Bloco 6 — CMMI (Capability Maturity Model Integration)17 conceitos
CMMI = CMMI Institute (comprado pela ISACA em 2016)
5 Níveis de Maturidade
Constelações (visão 1.3)
CMMI-DEV — desenvolvimento
CMMI-SVC — serviços
CMMI-ACQ — aquisição
Modo de representação (CMMI 1.3)
Contínua — mede capacidade em CADA área de processo (nível 0-5)
Estagiada — mede maturidade ORGANIZACIONAL (nível 1-5, agregado)
Áreas de Processo (CMMI-DEV 1.3, algumas exemplos)
REQM — Requirements Management (nível 2)
PP — Project Planning (nível 2)
CM — Configuration Management (nível 2)
RSKM — Risk Management (nível 3)
DAR — Decision Analysis and Resolution (nível 3)
OPP — Organizational Process Performance (nível 4)
CAR — Causal Analysis and Resolution (nível 5)
▸Bloco 7 — Confusões clássicas FGV14 conceitos
ITIL define governança
COBIT tem 5 níveis de maturidade
PMBOK 7 tem 49 processos
BPMN é ferramenta
Incidente = problema
Parallel gateway = uma saída
SLI = contrato com cliente
CMMI 5 = medido estatisticamente
ITIL v4 usa ciclo de vida
COBIT é ISO
SPI > 1 = atrasado
PMBOK é metodologia
Automatize primeiro (ITIL)
Change Management ITIL v4
▸Bloco 8 — Outras normas ISO relacionadas6 conceitos
ISO 20000 — Gestão de Serviços de TI (equivalente certificável do ITIL)
ISO 9001 — Sistema de Gestão da Qualidade
ISO 21500 — Gestão de Projetos (equivalente ISO do PMBOK)
ISO 31000 — Gestão de Riscos
ISO 38500 — Governança Corporativa de TI (base do COBIT)
ISO 15504 — SPICE, avaliação de processos (base histórica do CMMI)
▸Bloco 9 — Ágil no contexto de governança (Scrum, Kanban, SAFe)5 conceitos
SAFe (Scaled Agile Framework)
Indivíduos e interações MAIS QUE processos e ferramentas
Software funcionando MAIS QUE documentação abrangente
Colaboração com cliente MAIS QUE negociação de contratos
Responder a mudanças MAIS QUE seguir um plano
▸42-orfaos-deep189 conceitos · 0🟢 0🟡 0🟠 0🔴 189⚪
▸Bloco 1 — Blockchain (conceitos)21 conceitos
Estrutura de um bloco
Body — lista de transações
Merkle Tree
Consenso — mecanismos
DPoS — (Delegated PoS) — EOS, Tron. Votação de delegados
PoA — (Proof of Authority) — permissioned, validadores identificados
PoH — (Proof of History) — Solana
Tipos de blockchain
Pública/permissionless — Bitcoin, Ethereum. Qualquer um lê/escreve
Privada/permissioned — Hyperledger Fabric, Corda. Nós autorizados
Consortium — múltiplas orgs (ex.: bancos)
Smart Contracts
DeFi / NFT / DAO
DeFi — (Decentralized Finance) — Uniswap, Aave, MakerDAO
NFT — (Non-Fungible Token) — ERC-721 padrão. Cada token único
ERC-20 — token fungível padrão Ethereum
Aplicações governo BR
Blockchain Brasil (RNB) — Rede Nacional de Blockchain (2020, MCTI+Serpro+Dataprev)
Serpro Blockchain — plataforma de rastreabilidade
b-Cadastros — Receita Federal, prova de existência de documentos
Justiça (STJ, TSE) — cadeia de custódia de evidências digitais
▸Bloco 2 — RPA (Robotic Process Automation)18 conceitos
Ferramentas líderes
UiPath — líder Gartner. Studio (dev) + Robots + Orchestrator
Automation Anywhere — plataforma cloud-native
Blue Prism — pioneiro corporativo
Microsoft Power Automate Desktop — grátis com Win 11 (antigo WinAutomation)
Open source — Robocorp, TagUI
RPA × BPM × Integração via API
BPM — (Business Process Management) — redesenha e orquestra processo end-to-end
API integration — troca de dados sistema↔sistema via API/webhook. Robusto, exige API disponível
Regra de bolso
RPA atendida (não-atendida) × assistida
Não-atendida (unattended) — roda em servidor, agendado, sem humano
Atendida (attended) — humano dispara, robô assiste (ex.: call center)
Tipos de bot
Screen scraping — lê tela
Form filler — preenche formulários
Data extraction — extrai de PDFs/emails (junto com OCR)
Hyperautomation / IPA
▸Bloco 3 — XML + SOAP legado15 conceitos
Tecnologias XML
XQuery — SQL-like pra XML. Include XPath
DTD — (Document Type Definition) — validação legada, menos expressiva que XSD
XLink/XPointer — links entre XML
SOAP (Simple Object Access Protocol)
WS-Security — segurança em nível de mensagem
WS-ReliableMessaging — entrega garantida
WS-Addressing — endereçamento SOAP
WS-Policy — políticas de serviço
WSDL (Web Services Description Language)
UDDI (Universal Description, Discovery and Integration)
SOAP × REST (comparação clássica)
JAX-WS × JAX-RS (Java)
JAX-WS — Java API for XML Web Services (SOAP)
JAX-RS — Java API for RESTful Web Services. Implementações: Jersey, RESTEasy
▸Bloco 4 — Mobile: Android × iOS × Flutter × React Native35 conceitos
Android nativo
Linguagens: Kotlin (recomendado desde 2017) ou Java
IDE: Android Studio (baseado IntelliJ). Ferramenta oficial Google
Build: Gradle. Package: APK
UI moderna: Jetpack Compose (declarativa, ~2020). Alternativa antiga: XML Views
Distribuição: Google Play Console (~US$25 vitalício)
Arquitetura recomendada: MVVM + Repository + LiveData/Flow + ViewModel + Room (SQLite)
iOS nativo
Linguagens: Swift (recomendado desde 2014) ou Objective-C
IDE: Xcode (só roda em macOS)
Build: Xcode/xcodebuild. Package: IPA
UI moderna: SwiftUI (declarativa, 2019). Alternativa antiga: UIKit + Storyboards
Distribuição: App Store Connect (US$99/ano). Approval manual (revisão humana)
Arquitetura recomendada: MVVM + Combine + SwiftData/Core Data
Flutter (Google)
Linguagem: Dart. Framework Google 2017
Compila pra código nativo (Skia rendering engine — próprio renderizador, não usa nativo do OS)
Um único código → iOS + Android + Web + Desktop (Win/Mac/Linux) + embarcado
Hot reload rápido
Widgets: Material (Android-like) + Cupertino (iOS-like)
State management: Provider, Riverpod, BLoC, GetX
Prós: performance quase nativa, UI consistente. Contras: bundle grande
React Native (Meta)
Linguagem: JavaScript/TypeScript. Facebook 2015
Renderiza usando componentes NATIVOS (não desenha próprio). Ponte JS ↔ native
Nova arquitetura (2024)
Frameworks: Expo (SDK + tooling, hoje default). Alternativa: React Native CLI puro
Prós: comunidade React, hot reload, code sharing web (Next+RN)
Contras: performance nativa às vezes limitada, dependência de ponte antes de Fabric
Comparação rápida
Time única code
PWA (Progressive Web App)
Hybrid apps (antigos)
Cordova/PhoneGap — WebView wrapper. Deprecated
Ionic — Cordova/Capacitor + Angular/React/Vue
▸Bloco 5 — Low-code / No-code14 conceitos
Microsoft Power Platform
OutSystems — enterprise low-code
Mendix — enterprise low-code (Siemens)
Appian — BPM + low-code
Bubble — no-code web apps
Adalo — no-code mobile apps
Airtable — banco + no-code app
Notion — docs + banco leve
Zapier / Make (Integromat) — integração no-code
Retool — internal tools low-code
Quando usar
Governo BR
gov.br Plataforma Digital de Serviços — parte usa Power Apps interno
Órgãos experimentando OutSystems (BB, Serpro), Mendix
▸Bloco 6 — Portais corporativos + SharePoint18 conceitos
SharePoint (Microsoft)
SharePoint Server — (on-premises) — 2019, Subscription Edition (contínua desde 2022)
SharePoint Online — parte do Microsoft 365
Outros portais/CMS enterprise
Liferay — portal open source Java
Adobe Experience Manager (AEM) — CMS enterprise premium
Sitecore — CMS .NET
Drupal — CMS open source PHP
WordPress — CMS mais usado (~43% da web) mas raro em portal corporativo grande
Microsoft Teams — chat + video + arquivos + apps. Integrado com SharePoint
Slack — chat corporativo
Confluence (Atlassian) — wiki corporativo
Notion — docs colaborativos
ECM (Enterprise Content Management) / GED
SharePoint / M365 — dominante
Alfresco — open source
OpenText Documentum — enterprise legado
Nuxeo — open source
▸Bloco 7 — CI/CD deep29 conceitos
Pipeline típico
GitHub Actions
CircleCI — SaaS, YAML, Docker-first
Travis CI — pioneiro OSS (2011), perdeu força depois de virar pago
Azure DevOps Pipelines — Microsoft
Bitbucket Pipelines — Atlassian
Argo CD — GitOps pra Kubernetes
Flux — GitOps K8s (alternativa Argo)
Dockerfile — recipe declarativa
docker-compose — múltiplos containers (dev local)
Docker Hub — registry público
BuildKit — build moderno (paralelo, cache eficiente)
Kubernetes (K8s)
Estratégias de deploy
Rolling — substitui pods aos poucos
Blue-Green — 2 ambientes, switch atômico via LB
Canary — % pequena do tráfego pra versão nova, aumenta gradual
Shadow — versão nova recebe cópia do tráfego mas resposta descartada
A/B — divisão por atributo (país, cohort) pra experiência
Feature Flag — código deployado mas escondido atrás de flag
IaC (Infrastructure as Code)
Terraform — (HashiCorp) — declarativo, HCL. Multi-cloud
CloudFormation — AWS nativo, JSON/YAML
Pulumi — código real (Python/TS/Go) pra IaC
Ansible — configuração/deploy, YAML playbooks, agentless (SSH)
Chef/Puppet — legado config management
DevOps × DevSecOps × SRE
DevOps — cultura + prática de dev+ops juntos
DevSecOps — DevOps + segurança embutida no pipeline (Shift-Left Security)
▸Bloco 8 — Bônus: outras tecnologias potencialmente "órfãs"13 conceitos
Message brokers
RabbitMQ — AMQP, filas rica, roteamento complexo
Apache Kafka — event streaming, alto throughput, retenção longa
Redis Pub/Sub / Streams — leve
AWS SQS/SNS — serverless
NATS — leve, cloud-native
Redis — chave-valor em memória. Padrão de fato
Memcached — cache mais simples
CDN — (CloudFlare, Akamai, Fastly, CloudFront) — cache de borda
Data streaming
Kafka Streams / ksqlDB — stream processing
Apache Flink — real-time analytics
Spark Streaming — micro-batching
▸Bloco 9 — Confusões clássicas FGV19 conceitos
PoW é ambientalmente sustentável
Blockchain é imutável absoluto
RPA precisa API do sistema-alvo
SOAP e REST são iguais
REST obriga JSON
UDDI ainda é usado amplamente
React Native usa WebView
Flutter compila pra JS
SwiftUI substitui Xcode
PWA é app nativo
Low-code = no-code
Docker = VM
K8s substitui Docker
Rolling = Canary
GitOps precisa Argo obrigatoriamente
Terraform é configuração
Kotlin é linguagem Android exclusiva
SharePoint é só documento
Smart contract exige Ethereum
▸Bloco 10 — Panorama geral (o que FGV cobra em "órfãos")7 conceitos
Blockchain — 1q típica — conceito bloco/hash, PoW×PoS, smart contract
RPA — 1q — quando usar RPA vs API vs BPM
SOAP legado — 1q — SOAP × REST comparação
Mobile — 1q — nativo × cross-platform (Flutter × RN)
Low-code — 1q — Power Apps/OutSystems/Mendix
SharePoint — 1q — features colaboração
CI/CD — 2-3q — Jenkins/GHA/GitLab + Docker/K8s + estratégias deploy
▸Banco de Dados6 tópicos
▸32a-sql-geral114 conceitos · 0🟢 0🟡 0🟠 0🔴 114⚪
▸Bloco 1 — Álgebra relacional (σ π ⋈ ρ ×)4 conceitos
Produto cartesiano
σ — = seleção horizontal (linhas)
π — = projeção vertical (colunas)
⋈ — = junção (2 pontas se encontram)
▸Bloco 3 — JOINs (INNER, LEFT, RIGHT, FULL, CROSS, SELF)13 conceitos
INNER JOIN (padrão)
Sinônimos: JOIN puro (implícito INNER), INNER JOIN
Cliente sem pedido → **não aparece
LEFT (OUTER) JOIN
Cliente sem pedido aparece com valor = NULL
Truque pra "quem está SEM" — LEFT JOIN ... WHERE p.id IS NULL → clientes sem nenhum pedido
RIGHT (OUTER) JOIN
FULL (OUTER) JOIN
MySQL não suporta nativo — (simular com LEFT UNION RIGHT)
Postgres, Oracle, SQL Server suportam
CROSS JOIN (produto cartesiano)
NATURAL JOIN (⚠️ evitar em prod)
USING vs ON
▸Bloco 4 — WHERE: operadores e predicados12 conceitos
Comparação — =, <> (ou !=), <, >, <=, >=
Intervalo — BETWEEN a AND b (⚠️ inclusivo dos 2 lados)
Lista — IN (v1, v2, ...) / NOT IN (...) (⚠️ perigoso com NULL — ver bloco 13)
Padrão — LIKE 'abc%', LIKE '%abc', LIKE 'a_c' (% = 0+ chars, _ = 1 char)
Regex — ~ (Postgres), REGEXP (MySQL), LIKE avançado
Nulos — IS NULL, IS NOT NULL (⚠️ NUNCA = NULL)
Booleanos — AND, OR, NOT
Existência — EXISTS (subquery), NOT EXISTS (subquery)
Precedência — NOT > AND > OR. Usar parênteses pra evitar surpresa
Postgres: sensível por padrão (usar ILIKE pra case-insensitive)
MySQL: depende da collation (_ci = case-insensitive default)
SQL Server: depende da collation do banco
▸Bloco 5 — Chaves e integridade13 conceitos
Tipos de chave
Chave candidata
Chave primária (PK)
Chave alternativa
Chave estrangeira (FK)
Chave composta
Chave substituta (surrogate)
Chave natural
Ações de FK (ON DELETE / ON UPDATE)
CASCADE — propaga (deleta filho quando pai é deletado)
SET NULL — filho vira NULL
SET DEFAULT — filho vira valor default
RESTRICT / NO ACTION — impede a operação se houver filho
▸Bloco 6 — Constraints de coluna e tabela7 conceitos
NOT NULL — não permite NULL
UNIQUE — não permite duplicata (permite 1 NULL na maioria dos SGBDs; SQL Server permite só 1)
PRIMARY KEY — implica NOT NULL + UNIQUE
FOREIGN KEY (col) REFERENCES tab(col) — integridade referencial
CHECK (predicado) — regra de domínio (CHECK (idade >= 0))
DEFAULT valor — valor padrão se INSERT não informa
EXCLUDE (Postgres) — generalização de UNIQUE com operadores customizados
▸Bloco 7 — Tipos de dados (categorias)17 conceitos
Inteiro exato — SMALLINT (2B), INTEGER/INT (4B), BIGINT (8B)
Decimal exato
Ponto flutuante — REAL (4B), DOUBLE PRECISION (8B) — imprecisos, evitar em dinheiro
Tamanho fixo — CHAR(n) — preenche com espaço até n
Variável limitado — VARCHAR(n) — até n chars
Variável ilimitado — TEXT (Postgres/MySQL), CLOB (Oracle)
DATE — data (ano-mês-dia)
TIME — hora
TIMESTAMP — data + hora
TIMESTAMPTZ (Postgres) — timestamp com timezone
INTERVAL — duração
BOOLEAN — TRUE/FALSE/NULL (Postgres nativo; MySQL usa TINYINT(1); SQL Server usa BIT)
BYTEA (Postgres), BLOB (MySQL/Oracle), VARBINARY (SQL Server)
Estruturados / semi
JSON / JSONB (Postgres) — documento JSON
ARRAY (Postgres) — vetor de tipo
UUID — identificador universal
▸Bloco 8 — INSERT, UPDATE, DELETE6 conceitos
TRUNCATE (DDL, não DML)
Apaga TODAS as linhas rapidamente
Auto-commit — (não dá pra rollback fácil)
Reseta auto-increment/sequence
Dispara triggers de nível DDL, mas geralmente não os de DML
Triggers DML
▸Bloco 9 — Agregações (COUNT, SUM, AVG, MIN, MAX) + GROUP BY12 conceitos
Funções de agregação padrão
COUNT(*) — conta linhas (inclusive com NULLs)
COUNT(coluna) — conta valores não-NULL
COUNT(DISTINCT coluna) — conta valores únicos não-NULL
SUM(coluna) — soma (ignora NULLs)
AVG(coluna) — média (denominador ignora NULLs)
MIN(coluna) — menor valor
MAX(coluna) — maior valor
WHERE — filtra ANTES de agrupar; HAVING filtra grupos DEPOIS
WHERE não pode usar agregação; HAVING pode
Default: ASC
NULL: comportamento varia (ver bloco NULL em 33-sql-avancado)
▸Bloco 11 — Alias, expressões, string, data20 conceitos
Alias de tabela: opcional o AS (FROM clientes c)
Alias de coluna: alguns SGBDs exigem AS pra clareza
Aspas duplas: identificador com espaço/case-sensitive
Concatenação de string
Padrão SQL / Postgres / Oracle — || → 'a' || 'b' = 'ab'
MySQL — função CONCAT('a', 'b') (|| é OR lógico se PIPES_AS_CONCAT off)
SQL Server — + → 'a' + 'b'
Funções de string comuns
UPPER(s), LOWER(s)
LENGTH(s) (Postgres) / LEN(s) (SQL Server)
SUBSTRING(s FROM x FOR y) ou SUBSTR(s, x, y)
TRIM(s), LTRIM, RTRIM
REPLACE(s, de, para)
POSITION(sub IN s) ou INSTR(s, sub)
Funções de data
CURRENT_DATE, CURRENT_TIMESTAMP, NOW()
EXTRACT(YEAR FROM data), EXTRACT(MONTH FROM data)
DATE_TRUNC('month', data) (Postgres)
Aritmética: data + INTERVAL '30 days'
CAST / conversão
▸Bloco 12 — Views (básico) e sinônimos5 conceitos
View (virtual)
Não armazena dados; query recalculada a cada leitura
Vantagens: encapsulamento, segurança (GRANT em view), simplificação
Atualizável se for simples (1 tabela, sem agregação/DISTINCT)
Sinônimo / alias de objeto (Oracle, SQL Server)
▸Ganchos pro JM5 conceitos
Toda API Laravel sua
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ...
LEFT JOIN + IS NULL
BETWEEN inclusivo dos 2 lados
Ordem lógica ≠ escrita
▸33-sql-avancado169 conceitos · 0🟢 0🟡 0🟠 0🔴 169⚪
▸Bloco 1 — Classificação de comandos SQL (DDL/DML/DCL/TCL)22 conceitos
DDL — Data Definition Language
CREATE TABLE, CREATE INDEX, CREATE VIEW, CREATE SCHEMA, CREATE SEQUENCE
ALTER TABLE, ALTER INDEX
DROP TABLE, DROP INDEX, DROP VIEW
TRUNCATE TABLE (⚠️ **contexto
COMMENT ON
DML — Data Manipulation Language
SELECT (⚠️ alguns puristas separam como DQL — Data Query Language)
INSERT, UPDATE, DELETE
MERGE (padrão SQL:2003, "UPSERT")
DCL — Data Control Language
GRANT — concede privilégio (SELECT, INSERT, EXECUTE, ALL)
REVOKE — remove privilégio
(algumas classificações incluem DENY, mas é específico do SQL Server)
TCL — Transaction Control Language
COMMIT — confirma transação
ROLLBACK — desfaz transação
SAVEPOINT — ponto intermediário pra rollback parcial
SET TRANSACTION — nível de isolamento, read-only, etc
TRUNCATE é DDL (não DML) — sem rollback fácil, reset de PK auto-increment, mais rápido que DELETE
SELECT — a maioria bota em DML; puristas em DQL. Em prova FGV, DML é aceito
MERGE é DML (padrão SQL:2003)
▸Bloco 2 — Window Functions (funções de janela)16 conceitos
Sintaxe geral
Funções de ranking
ROW_NUMBER() — número sequencial único (1, 2, 3, 4, ...) mesmo com empates
RANK() — permite empate; deixa GAP após empate (1, 2, 2, 4, ...)
DENSE_RANK() — permite empate; SEM gap após empate (1, 2, 2, 3, ...)
NTILE(n) — divide em n grupos iguais (quartis n=4, decis n=10, percentis n=100)
Funções de acesso (LAG/LEAD)
LAG(coluna, offset, default) — valor da linha ANTERIOR
LEAD(coluna, offset, default) — valor da linha SEGUINTE
Muito usado pra calcular diferenças entre linhas consecutivas
Funções agregadas em janela
Exemplo prático — top-N por grupo
Frame (ROWS vs RANGE)
ROWS = número de linhas físicas
RANGE = intervalo de valores lógico
Frames comuns
▸Bloco 3 — CTEs (Common Table Expressions) — `WITH`7 conceitos
CTE simples
CTE múltipla (encadeada)
CTE recursiva (WITH RECURSIVE)
CTE vs subquery vs view
Subquery — inline, sem nome externo, não recursiva
View — persistente no schema; pode ser materializada (MATERIALIZED VIEW)
Temp table — persistente na sessão
▸Bloco 4 — Subqueries (correlacionadas × não-correlacionadas)9 conceitos
Subquery não-correlacionada (independente)
Subquery correlacionada (dependente da linha externa)
Padrões comuns
WHERE EXISTS (subquery) — testa existência (não retorna dados, só true/false)
WHERE NOT EXISTS (subquery) — testa não-existência (padrão pra "sem correspondência")
WHERE coluna IN (subquery) — coluna está no resultado da subquery
WHERE coluna NOT IN (subquery)
Subquery em FROM (derived table)
Subquery em SELECT (scalar subquery)
▸Bloco 5 — Set Operations (UNION, INTERSECT, EXCEPT)4 conceitos
UNION vs UNION ALL
UNION — combina resultados + **remove duplicatas
UNION ALL — combina + preserva duplicatas (mais rápido, sem sort)
EXCEPT (SQL Server: EXCEPT; Oracle: MINUS)
▸Bloco 6 — Índices (B-tree, hash, covering, parcial, composto)26 conceitos
Por que existem
B-tree (Balanced Tree) — DEFAULT
Igualdade (WHERE id = 42)
Comparação (WHERE valor > 100)
Range (WHERE data BETWEEN X AND Y)
Ordenação (ORDER BY)
Prefixo de LIKE (LIKE 'abc%' — sim; LIKE '%abc' — NÃO usa índice B-tree)
Hash Index
Igualdade exata (WHERE id = 42)
NÃO serve pra range, ORDER BY, LIKE, comparação
Postgres: existe mas raramente supera B-tree; MySQL: apenas em Memory tables
Covering Index (índice de cobertura)
Índice composto (multi-coluna)
Regra do prefixo mais à esquerda
Ordem das colunas importa muito
Índice parcial (WHERE)
Só indexa linhas que satisfazem o WHERE — menor, mais rápido
Postgres suporta; MySQL não
⚠️ gotcha Laravel/SQLite (visto no [[reference_laravel_sqlite_partial_index_lost_on_fk_rebuild]])
Índices especiais
GIN (Generalized Inverted Index) — Postgres, pra arrays, full-text, JSONB
GiST (Generalized Search Tree) — Postgres, pra geoespacial, ranges
BRIN (Block Range INdex)
Bitmap Index — Oracle, pra colunas de baixa cardinalidade (sexo, status)
Ganho — leituras rápidas
Custo — WRITE mais lento (INSERT/UPDATE/DELETE mantém o índice), espaço em disco, RAM
▸Bloco 7 — Plano de Execução (EXPLAIN)18 conceitos
PostgreSQL/MySQL
Oracle: — EXPLAIN PLAN FOR <query> + SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)
SQL Server: — SET SHOWPLAN_TEXT ON ou "Include Actual Execution Plan" no SSMS
Operações comuns que aparecem
Seq Scan / Table Scan — full table scan (SEM índice) — 🔴 alerta em tabela grande
Index Scan — usa índice pra buscar linhas
Index Only Scan — usa só o índice (covering index funcionou)
Bitmap Heap Scan — combinação de bitmap + heap (Postgres, pra múltiplos índices)
Nested Loop — join simples, para tabelas pequenas
Hash Join — build hash table + probe, bom pra tabelas médias/grandes sem ordem
Merge Join — sort + merge, ótimo para tabelas grandes já ordenadas
Sort — operação de ordenação (cara em memória)
Custo e cardinalidade
cost — estimativa (números arbitrários, comparativo)
rows — estimativa de linhas retornadas
actual time — (com ANALYZE): tempo real gasto
actual rows
Regra de ouro do tuning
▸Bloco 8 — MERGE / UPSERT8 conceitos
Padrão SQL:2003 — combina INSERT + UPDATE em 1 comando
MERGE (padrão)
UPSERT (Postgres — ON CONFLICT)
EXCLUDED é referência à linha que causou conflito
ON CONFLICT DO NOTHING = insert-ignore
REPLACE (MySQL/SQLite)
⚠️ DELETE + INSERT por baixo, não é UPDATE — dispara triggers de DELETE, muda auto-increment
Preferir INSERT ... ON DUPLICATE KEY UPDATE (MySQL) em vez de REPLACE
▸Bloco 9 — Views e Materialized Views10 conceitos
View normal
Virtual — não armazena dados; query é executada toda vez que a view é acessada
Vantagens: encapsulamento, segurança (GRANT em view sem dar acesso à tabela), simplificação
Views atualizáveis (INSERT/UPDATE via view)
Materialized View
Armazena — o resultado da query fisicamente
Precisa REFRESH manual (ou trigger, ou agendado)
Vantagem: leituras rápidas (é uma tabela)
Desvantagem: dado potencialmente desatualizado
Suporte: Postgres, Oracle. MySQL não tem nativo (simular via tabela + trigger)
▸Bloco 10 — GROUP BY + HAVING + agregação (revisão + avançado)11 conceitos
Diferença WHERE × HAVING (já cobrado em bd-003, revisão)
WHERE — filtra linhas ANTES do agrupamento
HAVING — filtra grupos APÓS o agrupamento
WHERE não pode usar agregações (SUM, COUNT, AVG); HAVING pode
GROUPING SETS, ROLLUP, CUBE (SQL:1999)
ROLLUP — hierárquico (do menor detalhe pro total)
CUBE — todas as combinações possíveis
GROUPING SETS — controle explícito
SELECT DISTINCT col FROM tab — remove duplicatas do resultado
COUNT(DISTINCT col) — conta valores únicos
Pode ser lento em tabelas grandes (precisa sort ou hash)
▸Bloco 11 — Transações e isolamento (revisão + níveis)16 conceitos
ACID (revisão do banco-dados.yaml bd-004)
A — tomicidade — tudo ou nada
C — onsistência — regras respeitadas
I — solamento — transações paralelas não se interferem
D — urabilidade — commit persiste após falha
Níveis de isolamento SQL:1992 (revisão bd-010, bd-011)
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
PostgreSQL, Oracle: **READ COMMITTED
MySQL InnoDB: **REPEATABLE READ
SQL Server: **READ COMMITTED
Dirty Read — T1 lê dado não-commitado de T2 (T2 depois rollback → T1 leu "sujo")
Non-repeatable Read — T1 lê linha X, T2 commita UPDATE, T1 lê X de novo → valores diferentes
Phantom Read
SAVEPOINT + rollback parcial
▸Bloco 12 — CASE / COALESCE / NULLIF (expressões condicionais)3 conceitos
CASE — if/else em SQL
COALESCE — primeiro não-NULL
NULLIF — retorna NULL se os 2 forem iguais
▸Bloco 13 — NULL — comportamento especial14 conceitos
NULL não é valor — é ausência de valor. Regras contra-intuitivas
NULL = NULL → NULL (não TRUE, não FALSE)
NULL <> qualquer → **NULL
1 + NULL → **NULL
WHERE coluna = NULL → nunca retorna linhas (correto: WHERE coluna IS NULL)
NOT IN (1, 2, NULL) → retorna sempre 0 linhas (UNKNOWN)
COUNT(coluna) → NÃO conta NULLs; COUNT(*) conta todas
SUM(coluna) → ignora NULLs
AVG(coluna) → ignora NULLs (denominador não conta NULLs)
Ordenação com NULL
Postgres/Oracle default: NULLS LAST em ASC, NULLS FIRST em DESC
MySQL default: NULLS FIRST em ASC, NULLS LAST em DESC
Padrão SQL: implementação-dependente
Explicitar sempre: ORDER BY col ASC NULLS LAST
▸Ganchos pro JM5 conceitos
Todo projeto seu
Laravel Query Builder
CTE recursiva
Window functions
Índice parcial
▸32-modelagem-relacional-avancada152 conceitos · 0🟢 0🟡 0🟠 0🔴 152⚪
▸Bloco 2 — Notações de Diagrama ER19 conceitos
Chen (1976) — original
Retângulo = entidade
Losango = relacionamento
Elipse = atributo
Elipse dupla = multivalorado
Elipse tracejada = derivado
Elipse com sublinhado = chave
Elipse dupla com sublinhado = chave multivalorada
Linha simples = participação parcial; linha dupla = participação total
Cardinalidade escrita nas pontas: (1,1), (0,N), (1,N), (M,N)
Retângulo duplo = entidade fraca; losango duplo = relacionamento identificador
Crow's Foot (Pé de Galinha)
Retângulo com nome e atributos dentro (compacto)
Símbolos nas pontas da linha indicam cardinalidade
Combina símbolos
UML Class (adaptado pra dados)
Class = entidade
Cardinalidade escrita nas pontas: 1, 0..1, 1.., 0.., *, 2..5
Agregação (losango vazio) e composição (losango cheio) pra relacionamento parte-todo
▸Bloco 3 — Cardinalidade min-max (Chen)7 conceitos
Notação (min, max)
(0, 1) — pode não participar; se participar, no máximo 1
(1, 1) — participa exatamente 1 vez (participação total, cardinalidade 1)
(0, N) — pode não participar; se participar, N vezes
(1, N) — participa pelo menos 1 vez, no máximo N
Ler: cada Pedido está associado a exatamente 1 Cliente (participação total, 1 vez)
Ler: cada Cliente pode ter **1 ou N pedidos
▸Bloco 4 — Conversão ER → Relacional (7 regras)11 conceitos
Regra 1 — Entidade forte
Regra 2 — Entidade fraca
Regra 3 — Relacionamento 1:1
Regra 4 — Relacionamento 1:N
Regra 5 — Relacionamento N:N
Regra 6 — Relacionamento ternário (ou N-ário)
Regra 7 — Atributo multivalorado
Regra bônus — Especialização/Generalização (herança)
Single Table — 1 tabela pra hierarquia toda + coluna discriminadora
Class Table (JOINED) — tabela por subclasse com FK pra superclasse
Concrete Table (TABLE_PER_CLASS) — tabela por subclasse concreta (super não vira tabela)
▸Bloco 5 — Taxonomia completa de Chaves12 conceitos
Ex em Aluno(matricula, cpf, nome, email)
Chave Candidata
Chave Primária (PK)
Chave Alternativa
Ex: se matricula virou PK, cpf vira chave alternativa (declarada UNIQUE)
Chave Composta
Ex: Matricula(id_aluno, id_disciplina) — precisa dos dois pra identificar
Chave Artificial (surrogate / substitute key)
Ex: id BIGSERIAL PRIMARY KEY — não é CPF nem código de negócio, é só um número
Oposto: chave natural (CPF, código do produto vindos do domínio)
Chave Estrangeira (FK / Foreign Key)
Ações referenciais — ao apagar/atualizar o referenciado
▸Bloco 6 — Dependências Funcionais (DFs)15 conceitos
X é o determinante, Y é o **dependente
X e Y podem ser conjuntos de atributos ({cpf, data} → {idade})
Dependência funcional trivial
{cpf, nome} → nome (trivial)
Dependência funcional parcial
Matricula(id_aluno, id_disciplina, nome_aluno, nota)
Dependência funcional transitiva
Funcionario(id, dept_id, dept_nome)
Dependência funcional total
Dependência multivalorada (X →→ Y)
Axiomas de Armstrong (regras de inferência)
Reflexividade: — se Y ⊆ X, então X → Y
Aumentatividade: — se X → Y, então XZ → YZ
Transitividade: — se X → Y e Y → Z, então X → Z
Derivadas: União, Decomposição, Pseudotransitividade
▸Bloco 7 — Formas Normais (revisão + BCNF que faltava)22 conceitos
1FN (Primeira Forma Normal)
Todos os atributos são atômicos (não multivalorados, não compostos)
Nada de "telefones: 123, 456" numa mesma célula
2FN (Segunda Forma Normal)
Está em 1FN
Nenhum atributo não-chave depende parcialmente da chave primária composta
Se PK é composta, todo atributo não-chave depende da PK inteira, não de parte
Trivialmente 2FN se PK é simples
3FN (Terceira Forma Normal)
Está em 2FN
Nenhum atributo não-chave depende transitivamente da PK
Não há PK → A → B onde B é não-chave
BCNF (Boyce-Codd Normal Form) — mais estrita que 3FN
Toda dependência funcional não-trivial X → Y tem X como **superchave
Ou seja: só chaves determinam outros atributos
3FN permite A → B onde A é PARTE de uma chave candidata (não a chave inteira)
BCNF proíbe isso — A tem que ser superchave inteira
4FN (Quarta Forma Normal)
Está em BCNF
Sem dependências multivaloradas não-triviais
5FN (Quinta Forma Normal) / PJNF
Rara na prática; trata dependências de junção
▸Bloco 8 — Anomalias de atualização (o "por quê" da normalização)6 conceitos
Anomalia de Inserção
Curso(cod_curso, nome_curso, cod_aluno, nome_aluno)
Anomalia de Atualização
Se nome_curso está em 500 linhas de matrícula e o nome muda, precisa atualizar 500
Anomalia de Exclusão
Se apagar a última matrícula do curso, apaga a existência do curso
▸Bloco 9 — Integridade Relacional (Codd)14 conceitos
Integridade de Domínio
Coluna idade INTEGER CHECK (idade >= 0 AND idade <= 150)
Integridade de Entidade
Sem PK definida = não é uma "entidade" válida no modelo
Integridade Referencial
Se pedido.id_cliente = 42, tem que existir cliente.id = 42
NOT NULL — obrigatório
UNIQUE — sem duplicatas
CHECK — expressão booleana por linha
DEFAULT — valor padrão se não informado
FOREIGN KEY — integridade referencial
CHECK constraints
DOMAIN (SQL:1992, pouco usado — PostgreSQL suporta bem)
ASSERTION (SQL:1992, praticamente não implementado)
▸Bloco 10 — Especialização/Generalização e Herança19 conceitos
Especialização (top-down)
Funcionario → {Gerente, Analista, Estagiario}
Generalização (bottom-up)
{Carro, Caminhão, Moto} → Veículo
Total — toda instância da super é de alguma sub (nenhum Funcionario sem tipo)
Parcial — pode ter super sem sub
Disjunta — instância só pode estar em UMA sub (círculo com "d" em Chen)
Sobreposta / overlapping — instância pode estar em VÁRIAS subs (círculo com "o" em Chen)
Estratégias de mapeamento pro relacional (idem JPA do Ex 15)
Single Table (SINGLE_TABLE) — 1 tabela grande com discriminator column
✅ 1 tabela, joins fáceis
❌ colunas NULL em massa; herda 3FN complicada
Discriminador: tipo VARCHAR(20)
Class Table (JOINED) — 1 tabela por classe (super + cada sub), FK 1:1 entre elas
✅ Sem NULL desnecessário; totalmente normalizado
❌ Query envolve JOIN sempre
Concrete Table (TABLE_PER_CLASS) — 1 tabela por sub, super não existe fisicamente
✅ Sem JOIN pra ler subs
❌ UNION pra polimorfismo; duplica colunas da super em N subs
▸Bloco 11 — Modelo relacional × modelo em rede/hierárquico5 conceitos
Hierárquico — (IBM IMS, anos 60): árvore, pai-filho, sem N:N direto
Rede — (CODASYL, anos 70): grafo, N:N via sets
Relacional — (Codd 1970): tabelas, álgebra relacional, SQL — dominante desde anos 80
Objeto-relacional — (anos 90): PostgreSQL, Oracle 8+ — tipos complexos, herança de tabelas
NoSQL — (anos 2000-2010): document, column, graph, KV — flexibilidade × ACID
▸Bloco 12 — Álgebra Relacional (fundamento do SQL)18 conceitos
σ (SELECT / seleção) — filtra linhas por predicado: σ_{idade>18}(Aluno) = SQL WHERE
π (PROJECT / projeção) — filtra colunas: π_{nome, email}(Aluno) = SQL SELECT colunas
ρ (RENAME / renomeação) — muda nome de relação/atributo
∪ (UNION) — união (mesmos atributos)
∩ (INTERSECT) — interseção
− (DIFFERENCE) — diferença
× (CARTESIAN PRODUCT / produto cartesiano) — todas as combinações
÷ (DIVISION / divisão) — pra "quem tem TODOS os X
⋈ (NATURAL JOIN) — join por atributos de mesmo nome
⋈_θ (THETA JOIN) — join com predicado θ
⋈_condição (EQUIJOIN) — theta join com condição de igualdade
⟕, ⟖, ⟗ (OUTER JOIN esquerda, direita, plena)
σ → WHERE
π → SELECT (colunas)
⋈ → JOIN ON
∪ → UNION
− → EXCEPT (SQL Server: MINUS em Oracle)
∩ → INTERSECT
▸Ganchos pro JM4 conceitos
EmiteAPI, Skynet, Aliado, Alter
JPA @Id + @GeneratedValue
Migrations Laravel/JPA/Alembic
Não vai cair prático de SQL escrever — o exercício é conceitual/nomenclatura
▸34-nosql179 conceitos · 0🟢 0🟡 0🟠 0🔴 179⚪
▸1. Contexto histórico — por que NoSQL surgiu14 conceitos
2004: — Google Bigtable paper (base pra HBase/Cassandra)
2006: — Google MapReduce paper
2007: — Amazon Dynamo paper (base pra DynamoDB/Riak/Voldemort)
Schema rígido (schema-on-write) → schema-on-read
JOINs cross-collection (evitados por design — desnormalização)
ACID forte cross-nó (relaxado pra eventual consistency)
SQL padronizado (cada banco tem sua linguagem)
Escalabilidade horizontal — (adicionar máquinas commodity — scale-out)
Alta disponibilidade — (replicação nativa)
Modelo de dados flexível — (JSON aninhado, colunas variáveis, grafos, chaves opacas)
Throughput — (milhões de ops/s)
❌ "NoSQL = sem SQL sempre" — errado, "Not Only SQL" (Cassandra tem CQL, Neo4j tem Cypher)
❌ "NoSQL é sempre mais rápido que relacional" — errado, depende do padrão de acesso
❌ "NoSQL não tem ACID
▸2. As 4 famílias — visão geral1 conceitos
Column-Family** (wide-column)
▸3. Key-Value stores — Redis, DynamoDB13 conceitos
In-memory (RAM) → persistência opcional via RDB (snapshot) e/ou AOF (append-only file)
Tipos de dados ricos
Single-threaded — (event loop) — atomicidade garantida em ops individuais
Pub/Sub nativo, scripting Lua, cluster mode (16384 slots hash)
Casos: cache, sessões HTTP, leaderboards
Baseado no paper Dynamo (2007)
Chave primária = partition key (hash) OU partition key + sort key (composite)
Modo de capacidade: — provisionada (RCU/WCU pré-definidos) vs on-demand (pay-per-request)
Auto-scaling nativo, streams (change data capture), TTL, DAX (cache in-memory)
ACID via transactions (2018), backups PITR, criptografia at-rest default
❌ "Redis é só cache" — errado, é banco de dados com persistência opcional e estruturas ricas
❌ "Memcached é melhor que Redis pra tudo
❌ "Redis é single-threaded logo é lento
▸4. Document stores — MongoDB, CouchDB16 conceitos
BSON — (Binary JSON) — tipos adicionais (ObjectId, Date, Decimal128, Binary)
Query language rica com aggregation pipeline ($match, $group, $lookup, $unwind, $facet)
Índices B-tree em qualquer campo (inclusive dentro de arrays via multikey)
Sharding — por shard key (hashed OU ranged)
Replica set — com eleição de primário (Raft-like)
Transações ACID multi-doc — desde 4.0 (2018) — antes só single-doc era atômico
Schema flexível — mas suporta schema validation ($jsonSchema)
Casos: catálogo, CMS, IoT, dados semi-estruturados com padrão evolutivo
Multi-master replication (offline-first) — força
MVCC completo, HTTP API RESTful pura
Design docs + MapReduce pra views
Casos: sincronização mobile/offline (PouchDB é o client browser)
❌ "MongoDB não tem transação" — errado, tem desde 4.0 (multi-doc)
❌ "MongoDB é schemaless
❌ "Document = XML
⚠️ Aggregation pipeline ≠ SQL query
▸5. Column-Family / Wide-Column — Cassandra, HBase18 conceitos
Origem híbrida: modelo de dados do Bigtable + arquitetura distribuída do Dynamo (masterless, gossip)
Masterless — (ring topology) — cada nó é peer, sem SPOF
Consistent hashing — com virtual nodes (vnodes) pra distribuição
Tunable consistency: — cada read/write escolhe ONE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM
CQL (Cassandra Query Language) — sintaxe SQL-like MAS sem JOIN, sem subquery, sem foreign key
Otimizado pra write-heavy (LSM-Tree
Casos: time series (métricas), event logging, IoT, escrita massiva
❌ Não serve pra: JOINs complexos, transações multi-partição, ad-hoc queries
Baseado no paper Bigtable, roda sobre HDFS
Master + RegionServers — (não masterless)
Bom pra: random real-time read/write sobre big data no Hadoop
Casos: Facebook Messages (histórico), analytics near-real-time
Cassandra (column-family)
Redshift/ClickHouse/Parquet (columnar)
❌ "Cassandra tem master" — errado, é masterless (peer-to-peer com gossip)
❌ "Cassandra suporta JOIN
❌ "Cassandra é orientado a colunas como Redshift" — não, são coisas diferentes (ver acima)
⚠️ Partition key define distribuição
▸6. Graph databases — Neo4j, ArangoDB12 conceitos
Cypher — query language (padrão ISO GQL desde abr/2024 — Cypher inspirou o GQL)
Sintaxe pattern-matching declarativa: MATCH (a:Pessoa)-[:AMIGO]->(b) WHERE a.nome = "Ana" RETURN b
ACID — completo (Neo4j sempre foi ACID — não é eventual)
Index-free adjacency (relacionamento é ponteiro direto entre nós)
Casos: rede social, recomendação, detecção de fraude, knowledge graph, master data management
Fraud detection
Recommendation: — "produtos comprados por pessoas que compraram os produtos que você comprou
Social network: — "amigos de amigos que curtiram X
Impact analysis: — "se este servidor cair, quais serviços falham
❌ "Grafo é sempre melhor
❌ "Neo4j é eventual consistency" — errado, é ACID completo desde sempre
⚠️ Cypher vs SPARQL vs Gremlin
▸7. Quando usar cada — matriz de decisão13 conceitos
Cache HTTP / sessões
Rate limiting
Catálogo produto com atributos variáveis
CMS / blog / documentos aninhados
Time-series de sensores IoT (milhões/s)
Logs distribuídos
Rede social / recomendação / grafo de conhecimento
Detecção de fraude com padrões
Full-text search
E-commerce carrinho de compras
Analytics OLAP colunar
Transações bancárias fortes
Dados relacionais tradicionais (users/orders/products com JOINs comuns)
▸8. CAP theorem aplicado — CP × AP na prática12 conceitos
MongoDB (default)
Redis (single)
Redis Cluster
Neo4j (causal cluster)
RDBMS master-slave
PC/EC: — MongoDB, HBase — CP durante partição, consistência normal (mais latência)
PA/EC: — raro
PC/EL: — existiria em teoria mas praticamente vazio
❌ "CAP diz que você escolhe 2 de 3 sempre
❌ "Cassandra é CP" — errado, é AP (com consistência tunable por request)
❌ "MongoDB é AP" — errado, é CP (primário único, writes bloqueiam em partição)
✅ PACELC adiciona a dimensão de trade-off em ops normais (L vs C)
▸9. Sharding — particionamento horizontal9 conceitos
Directory-based
Consistent hashing
Nós e chaves são mapeados em um anel de hash (0 a 2^32)
Cada chave vai pro próximo nó no sentido horário
Ao adicionar/remover nó, só o arco adjacente é rebalanceado (não tudo)
Virtual nodes — (vnodes) — cada nó físico tem N tokens no anel, melhora balanceamento
❌ "Sharding = replicação
❌ "Consistent hashing evita rebalanceamento
⚠️ "Vertical sharding" = separar tabelas por servidor
▸10. Replicação — cópias pra HA e leitura17 conceitos
Durabilidade — (perda de nó não perde dado)
Disponibilidade — (nó cai, réplica assume)
Leitura escalável — (várias réplicas atendendo reads)
Latência geográfica — (réplica perto do usuário)
Master-Slave** (leader-follower)
Masterless** (peer-to-peer)
Semi-síncrona (MySQL): — espera pelo menos 1 réplica ack
N = réplicas totais
W = réplicas que devem ack o write
R = réplicas consultadas no read
W + R > N → consistência forte — (pelo menos 1 réplica no read tem o write mais recente)
W=1, R=1 → alta disponibilidade, eventual consistency
W=3, R=1 → write lento, read rápido consistente
W=2, R=2 → QUORUM balanceado (Cassandra default LOCAL_QUORUM)
❌ "Replicação garante consistência forte sempre
❌ "Master-Slave = zero-loss" — errado, em async pode perder writes recentes em failover
⚠️ Split-brain: partição de rede + eleição pode gerar 2 masters
▸11. BASE vs ACID10 conceitos
Atomicity — tudo ou nada
Consistency — invariantes de integridade preservados
Isolation — transações não veem parciais uma das outras
Durability — commit persiste
B — asically Available — sempre responde (mesmo com dado stale)
S — oft state — estado muda ao longo do tempo mesmo sem input
E — ventual consistency — se pararem writes, todos os nós convergem
❌ "NoSQL é sempre BASE" — errado, Neo4j é ACID, MongoDB tem transactions
❌ "Eventual consistency = dado incorreto" — errado, é temporariamente stale mas converge
❌ "ACID exige single-node" — errado, PostgreSQL/Oracle têm ACID distribuído via 2PC
▸12. Modelagem NoSQL — patterns5 conceitos
Tabela por query
Materialized view — o próprio Cassandra pode manter uma view desnormalizada auto-atualizada
Subset pattern
Computed pattern — armazenar agregados pré-calculados (total de likes, media)
Bucket pattern — agrupar documentos por período (métricas de sensor por hora)
▸13. NewSQL — o meio-termo6 conceitos
Google Spanner — (2012) — SQL + ACID global via TrueTime (relógios atômicos GPS)
CockroachDB — (2015) — Spanner-inspired, open-source
YugabyteDB — PostgreSQL-compatible distribuído
TiDB — MySQL-compatible distribuído
VoltDB — in-memory OLTP escala
FGV pode citar NewSQL como categoria — memorizar Spanner + CockroachDB
▸14. Search engines — Elasticsearch, OpenSearch, Solr5 conceitos
OpenSearch — (2021, Amazon fork de Elasticsearch 7.10 após mudança de licença ES→SSPL)
Solr — (2004, Apache) — Lucene-based, mais tradicional, XML/JSON
⚠️ Não é banco primário
❌ "Elasticsearch é banco primário" — não, é search engine (sem garantias ACID clássicas)
⚠️ Elasticsearch é AP por padrão (com refresh window de 1s pra "near real-time")
▸15. Ferramentas correlatas do ecossistema BigData/NoSQL15 conceitos
HDFS — file system distribuído (blocos de 128MB replicados 3x)
MapReduce — modelo de processamento em batch
YARN — resource manager
HBase — NoSQL column-family sobre HDFS
Hive — SQL sobre HDFS (via MapReduce/Tez/Spark)
Pig — DSL pra pipelines
Spark Core — engine in-memory (10-100x mais rápido que MapReduce)
Spark SQL — SQL sobre dataframes
Spark Streaming — micro-batch de stream
MLlib, GraphX
Kafka — log distribuído pub/sub particionado (visto Ex 30)
Pulsar — alternativa Apache
Flink — stream processing real-time
Kinesis — Kafka gerenciado AWS
Data Lake — armazena raw em S3/HDFS (Parquet/Avro/ORC)
▸Checklist de revisão13 conceitos
[ ] Sei desenhar as 4 famílias com exemplo canônico
[ ] Sei o caso típico de cada família (cache/catalog/timeseries/graph)
[ ] Sei classificar CAP: MongoDB CP, Cassandra AP, DynamoDB AP
[ ] Sei PACELC: PA/EL vs PC/EC
[ ] Sei diferença column-family × columnar
[ ] Sei fórmula quorum W+R>N
[ ] Sei que Cassandra é masterless e não tem JOIN
[ ] Sei que MongoDB tem transação multi-doc desde 4.0
[ ] Sei que Neo4j é ACID
[ ] Sei sharding strategies (range/hash/consistent)
[ ] Sei replicação (master-slave/multi-master/masterless)
[ ] Sei consistency models (linearizability → eventual)
[ ] Sei Polyglot Persistence e NewSQL como conceitos
▸35-dw-modelagem-dimensional142 conceitos · 0🟢 0🟡 0🟠 0🔴 142⚪
▸1. OLTP × OLAP — a divisão fundadora4 conceitos
Escrita/leitura
❌ "OLAP substitui OLTP" — errado, coexistem (ETL leva dados do OLTP pro OLAP)
❌ "OLTP normalizado é sempre melhor" — no OLTP sim; no OLAP a desnormalização é padrão
❌ "OLAP é sempre em tempo real" — errado, latência de horas/dias é comum
▸2. Data Warehouse — definição e características9 conceitos
Fontes — (OLTP, planilhas, APIs, arquivos)
Staging area — (área de transformação, temporária)
DW — (armazenamento consolidado)
Data marts — (subconjuntos por área/departamento)
Ferramentas OLAP/BI — (Tableau, Power BI, Looker)
Metadados — (dicionário de dados, linhagem)
❌ "DW é banco relacional normalizado" — errado, é dimensional (desnormalizado)
❌ "DW sofre UPDATE frequente" — errado, é NÃO-VOLÁTIL (append via ETL)
⚠️ Data Mart é um subconjunto do DW por área/tema; DW é o corporativo
▸3. Inmon vs Kimball — as duas escolas7 conceitos
Modelagem DW
Data marts
Livros clássicos
Adequado quando
❌ "Inmon é dimensional" — errado, Inmon é 3FN normalizado no DW corporativo
❌ "Kimball é top-down" — errado, Kimball é BOTTOM-UP
❌ "Inmon e Kimball são incompatíveis" — coexistem em muitas arquiteturas modernas
▸4. Modelagem dimensional — Fato e Dimensão15 conceitos
Tabela central com métricas quantitativas (valor_venda, quantidade, custo, receita)
Chaves estrangeiras — apontando pra dimensões
Muitas linhas (bilhões), poucas colunas
Sem descrição textual (só números + FKs)
Tabela periférica com atributos descritivos (nome do produto, cidade do cliente, categoria)
Muitas colunas (dezenas a centenas), poucas linhas (milhares)
Suporta filtros, agrupamentos e drill-downs
Isola o DW de mudanças na chave da fonte
Suporta SCD Tipo 2 (múltiplas linhas do mesmo cliente com skid diferente)
Performance (INT × VARCHAR)
❌ "Fato armazena atributos descritivos" — errado, isso é papel da DIMENSÃO
❌ "Dimensão armazena métricas quantitativas" — errado, isso é papel da FATO
❌ "Grão é opcional" — errado, definir o grão é O PRIMEIRO passo da modelagem dimensional Kimball
⚠️ Junk dimension — agrupa flags e códigos pequenos que sobrariam esparsos
⚠️ Degenerate dimension — atributo dimensional que vive DENTRO da fato (ex: nº do pedido)
▸5. Star vs Snowflake vs Constellation18 conceitos
Fato central + dimensões desnormalizadas ao redor
Cada dimensão = 1 tabela (mesmo que tenha hierarquia)
Menos JOINs → melhor performance
Redundância dentro da dimensão (nome_categoria repetido em toda linha de produto)
Fato central + dimensões normalizadas em hierarquias
Uma dimensão pode se subdividir (produto → categoria → departamento)
Mais JOINs → performance pior
Menos redundância (normalização 3FN nas dimensões)
Múltiplas fatos compartilhando dimensões comuns
Ex: FATO_VENDAS + FATO_ESTOQUE compartilham DIM_PRODUTO
Corresponde a um DW corporativo com múltiplos processos de negócio
Performance query
Espaço em disco
Preferência Kimball
❌ "Star schema é normalizado" — errado, é DESNORMALIZADO nas dimensões
❌ "Snowflake tem menos JOIN" — errado, tem MAIS JOIN (normalização introduz tabelas intermediárias)
❌ "Constellation é anti-padrão
⚠️ Kimball prefere STAR; Snowflake só quando a economia de espaço compensa o custo de JOIN
▸6. Tipos de fato — aditiva, semi-aditiva, não-aditiva12 conceitos
Pode ser somada em TODAS as dimensões
Ex: valor_venda, quantidade_vendida, custo
Somar valor_venda por produto + por cliente + por período = todos válidos
Pode ser somada em ALGUMAS dimensões, mas NÃO em outras (tipicamente NÃO no tempo)
Ex: saldo bancário, estoque em prateleira, **headcount de funcionários
Somar saldo dos clientes na mesma data = OK; somar saldo do MESMO cliente em datas diferentes = ERR…
NUNCA pode ser somada (usa média ponderada, min/max, ou última leitura)
Ex: percentuais, razões, temperatura, preço unitário, **taxa de conversão
Somar 10% + 20% = 30%? Não, depende do denominador
❌ "Saldo é aditivo no tempo" — errado, é SEMI-aditivo (não soma no tempo)
❌ "Percentual pode ser somado se ponderar" — só se armazenar num+den separado
⚠️ **Factless fact
▸7. Tipos de dimensão — SCD (Slowly Changing Dimensions)20 conceitos
Nunca muda (imutável)
Ex: data de nascimento, país de origem
Sobrescreve o valor antigo (perde histórico)
Simples, mas apaga história
Ex: correção de erro de digitação em nome
Cria NOVA linha com nova surrogate key + campos de validade (data_inicio, data_fim, flag_atual)
Preserva TODO histórico
Ex: cliente muda de segmento
É o mais usado em DW — e cai muito em FGV
Adiciona coluna "valor_anterior" no mesmo registro
Preserva só ÚLTIMA mudança
Ex: departamento_atual + departamento_anterior
Tabela separada só com histórico; principal só com valor atual
Combina simplicidade com auditoria
Combina técnicas para dimensões com múltiplos requisitos temporais
❌ "SCD Tipo 1 preserva histórico" — errado, SOBRESCREVE (perde)
❌ "SCD Tipo 2 usa mesmo surrogate key pras versões" — errado, cada versão tem SK NOVA
❌ "SCD Tipo 3 preserva todo histórico" — errado, só uma versão anterior (a última)
⚠️ Rapidly changing dimension = quando a dimensão muda tão rápido que Tipo 2 explode. Solução
⚠️ **Conformed dimension
▸8. OLAP operations — cubo multidimensional10 conceitos
Ex: vendas por dia → vendas por mês → vendas por trimestre
Ex: vendas por ano → vendas por trimestre → vendas por mês → vendas por dia
Ex: "vendas de 2025" (fixa ano=2025, mostra as outras dimensões)
Ex: "vendas de produtos eletrônicos em SP no primeiro trimestre de 2025
Ex: matriz produto × mês → matriz mês × produto
Ex: comparar VENDAS + ESTOQUE ambos por produto+mês
Ex: "quero ver a nota fiscal original que compõe esse total
❌ "Slice e dice são a mesma operação" — não, slice = 1 dimensão fixada, dice = múltiplas
❌ "Roll-up detalha os dados" — errado, roll-up AGREGA (drill-down é que detalha)
⚠️ Cubo com N dimensões tem 2^N combinações de agregação possíveis
▸9. Arquiteturas OLAP — MOLAP × ROLAP × HOLAP14 conceitos
Cubo pré-calculado armazenado em estrutura multidimensional proprietária (arrays)
Rápido pra queries agregadas — , requer pré-processamento
Limite de escala (cubo estoura em RAM/disco)
Ex: Microsoft Analysis Services (modo Multidimensional), Essbase (Oracle), TM1
Dados ficam no banco relacional (star/snowflake), agregações são calculadas em tempo real via SQL
Escala melhor — , mas queries mais lentas
Suporta drill-through nativo (dados detalhados sempre lá)
Ex: MicroStrategy, Analysis Services (modo Tabular com DirectQuery)
Combina: agregações em MOLAP (cubo) + detalhes em ROLAP (relacional)
Melhor dos dois mundos, complexidade maior
Ex: Analysis Services em modo híbrido
❌ "MOLAP escala melhor que ROLAP" — errado, ROLAP escala melhor (relacional distribui)
❌ "ROLAP é mais rápido em queries agregadas
⚠️ DOLAP (Desktop OLAP)
▸10. ETL/ELT — carga do DW12 conceitos
Ordem invertida: carrega raw primeiro no data lake / DW, transforma DEPOIS via SQL/dbt
Cabe em arquiteturas modernas (BigQuery, Snowflake, Redshift) onde o compute é escalável
Vantagem: mantém dados brutos históricos, permite re-transformar sem re-extrair
Captura MUDANÇAS incrementais das fontes (não carrega tudo toda vez)
Fontes: log de transações (Postgres WAL, MySQL binlog), triggers, timestamps
Ferramentas: Debezium, AWS DMS, Oracle GoldenGate
Full load — recarrega tudo (só pra tabelas pequenas)
Incremental — só o delta desde a última carga (baseado em CDC ou timestamps)
Upsert (MERGE) — insere novos + atualiza existentes
❌ "ELT é sempre melhor que ETL" — depende do contexto (ELT precisa de compute escalável)
❌ "ETL não faz transformação" — faz sim, é o T de ETL
⚠️ Deep dive em ETL/ELT + Redis/Memcached fica pro Ex 36. Aqui só panorâmica
▸11. Data Lake vs Data Warehouse vs Lakehouse3 conceitos
❌ "Data Lake substitui DW" — não, são complementares (DW = BI curado; Lake = raw pra ML)
❌ "Data Lake exige schema definido" — errado, é SCHEMA-ON-READ (schema aplicado na consulta)
⚠️ Formatos abertos Lakehouse: Delta Lake
▸12. BI + ferramentas7 conceitos
Business Intelligence
Tableau — (Salesforce) — dashboards visualmente ricos
Power BI — (Microsoft) — integração forte com Excel/Azure
Looker — (Google) — modelagem via LookML
Qlik Sense/QlikView — associative model
Metabase / Superset — open-source
SAP BO, Cognos, MicroStrategy — enterprise legado
▸Checklist de revisão11 conceitos
[ ] Sei as 4 características do DW (Inmon)
[ ] Distingo Inmon (top-down 3FN) × Kimball (bottom-up dimensional)
[ ] Sei diferença fato × dimensão
[ ] Sei classificar métricas em aditiva/semi-aditiva/não-aditiva
[ ] Sei as 5 principais operações OLAP (roll-up/drill-down/slice/dice/pivot)
[ ] Sei os 5 tipos principais de SCD (0/1/2/3/4)
[ ] Sei diferença star × snowflake × constellation
[ ] Sei distinguir MOLAP × ROLAP × HOLAP
[ ] Sei o que é surrogate key e por que usar
[ ] Sei diferença DW × Data Lake × Lakehouse
[ ] Sei o que é Data Swamp e como evitar
▸36-etl-bd-memoria140 conceitos · 0🟢 0🟡 0🟠 0🔴 140⚪
▸1. ETL — Extract, Transform, Load (o padrão histórico)13 conceitos
Informatica PowerCenter — (líder enterprise histórico)
IBM DataStage — (parte do InfoSphere)
SSIS — (SQL Server Integration Services — Microsoft)
Talend — (open-source com edição paga)
Pentaho Data Integration — (Kettle) — open-source
Oracle Data Integrator (ODI)
Servidor ETL separado com engine proprietário
Transformação em memória do servidor ETL (não no banco)
Janela batch noturna típica
Adequado quando o DW tem capacidade limitada (bancos on-premise dimensionados)
❌ "ETL carrega antes de transformar" — errado, é o ELT que carrega antes. ETL transforma ANTES
❌ "ETL não usa staging area" — usa sim; é onde o T acontece
❌ "ETL é sempre pior que ELT" — depende do contexto (ETL faz sentido quando DW é caro/limitado)
▸2. ELT — Extract, Load, Transform (o padrão moderno)13 conceitos
Preserva dados brutos — históricos (pode retransformar quando requisito muda, sem re-extrair)
Paralelismo — do warehouse cloud (transformação distribuída em N nós)
Simplifica arquitetura — (menos ferramenta separada; SQL é conhecido)
Latência menor — pra dados fresh (streaming ELT vira comum)
Depende de destino escalável (não faz sentido em bancos on-premise limitados)
Custo de compute pode escalar se transformações são pesadas e frequentes
Extract — Fivetran, Airbyte, Stitch, AWS DMS, Debezium (CDC)
Load — nativo dos DWs (COPY do Snowflake, LOAD do BigQuery)
Transform — dbt (padrão de fato, SQL + Jinja + testes), Dataform (Google), matillion
Orchestration — Airflow, Prefect, Dagster, Azure Data Factory
❌ "ELT é substituto do ETL
❌ "ELT elimina staging" — o "staging" muda de forma (schema raw no DW cloud), mas conceito continua
❌ "dbt substitui Airflow
▸3. CDC — Change Data Capture17 conceitos
Cada linha tem updated_at ou versão. Extrai WHERE updated_at > última_carga
Simples mas: precisa da coluna, não pega DELETE, sujeito a clock skew
Trigger no OLTP dispara insert em tabela de auditoria/queue a cada mudança
Confiável mas: overhead no OLTP (cada write dispara trigger)
Lê o log de transações do banco (WAL do Postgres, binlog do MySQL, redo log Oracle)
Extrai mudanças em ordem cronológica sem tocar no OLTP
Zero overhead — no banco fonte, captura DELETE, ordem preservada
AWS DMS, Oracle GoldenGate, HVR são alternativas comerciais
Consulta o OLTP + compara com snapshot anterior. Pouco eficiente. Uso raro
Alimentar DW cloud em near-real-time (minutos vs horas do batch noturno)
Replicar entre bancos (Postgres → Elasticsearch pra busca)
Event sourcing / audit trail
Cache invalidation
Sincronização de microsserviços (transactional outbox pattern via CDC)
❌ "CDC exige triggers" — errado, log-based (Debezium) é o padrão e não usa triggers
❌ "CDC não captura DELETE" — log-based captura tudo (INSERT/UPDATE/DELETE)
⚠️ Transactional Outbox Pattern
▸4. Redis — deep dive25 conceitos
In-memory — (RAM) — throughput altíssimo (100k+ ops/s por instância single-thread)
Single-threaded — (event loop) — ops individuais atômicas por design; evita contention de lock
Persistência OPCIONAL — (não é só cache)
Cluster mode
Sorted Set (Zset)
SET key value [EX segundos] [NX] — SET com TTL e "only if not exists
INCR key — incremento atômico (rate limiting)
EXPIRE key seg — TTL em segundos
TTL key — retorna TTL restante
SCAN cursor — iterar chaves sem bloquear (contra KEYS que bloqueia)
MULTI/EXEC — transação (ops enfileiradas, executam atômicas)
SUBSCRIBE/PUBLISH channel — pub/sub
Cache HTTP — com TTL (session cache, page cache, API response cache)
Session storage — distribuído (múltiplos backends compartilham)
Rate limiting — (INCR + EXPIRE — sliding window)
Fila — (List + BLPOP bloqueante) ou Streams pra consumer groups
Leaderboard — (Sorted Set — ZADD + ZRANGEBYSCORE)
Pub/Sub — simples (SUBSCRIBE/PUBLISH — fire-and-forget)
Distributed lock — (SET NX EX — algoritmo Redlock pra multi-master)
Casos ideais
❌ "Redis é só cache" — errado, é banco in-memory com persistência opcional e estruturas ricas
❌ "Redis é multi-thread
❌ "Memcached tem replicação nativa" — errado, replicação Memcached é responsabilidade do cliente
⚠️ Redis Cluster exige 16384 slots hash-based; NÃO é range-based
⚠️ KEYS bloqueia em produção (O(N) sobre todo o keyspace); usar SCAN cursor iterativo
▸5. In-memory databases — panorâmica geral10 conceitos
Oracle TimesTen
MemSQL / SingleStore
Apache Ignite
✅ Latência sub-milissegundo, throughput altíssimo
✅ Modelos simples (K-V, colunar in-memory)
❌ Custo da RAM > SSD > HDD (limite de escala em preço)
❌ Recovery mais lento se dataset é grande (carrega tudo em RAM)
❌ Durabilidade requer persistência secundária (WAL, snapshots)
❌ "Banco in-memory perde dados no shutdown
⚠️ Data grid ≠ banco in-memory. Data grid
▸6. Orquestração de pipelines — Airflow, Prefect, Dagster13 conceitos
Python-based, pipelines como código
DAG — (Directed Acyclic Graph) — grafo de tarefas com dependências
Executor separado do scheduler (LocalExecutor, CeleryExecutor, KubernetesExecutor)
Web UI robusta pra monitoramento, retries, logs
Padrão de fato — em data engineering
Weak points: state em DB, backfill quirky, complexity operacional
Azure Data Factory / AWS Glue / GCP Dataflow — orquestradores managed dos hyperscalers
SQL + Jinja + testes (unique, not_null, referential_integrity)
ref('other_model') gera DAG entre models automaticamente
dbt run compila e executa em ordem topológica no DW
Analytics Engineer — é o papel formal criado por dbt (engenheiro que faz T do ELT)
❌ "Airflow é ETL tool" — não, é ORQUESTRADOR (chama outras ferramentas em ordem)
❌ "dbt substitui Airflow
▸7. Data Lake — arquitetura raw12 conceitos
Object storage: — S3 (AWS), ADLS (Azure), GCS (Google), MinIO (on-prem)
Catálogo: — AWS Glue Catalog, Hive Metastore, Nessie, Unity Catalog (Databricks)
Compute: — Spark (Databricks/EMR), Presto/Trino, Athena, BigQuery external tables
Bronze / Raw — dados brutos como vieram
Silver / Curated — dados limpos, deduplicados, com schema estável
Gold / Business — dados agregados prontos pra BI/ML
Presto / Trino — SQL federated, sem armazenar
Athena — (AWS) — Presto managed
BigQuery external tables — SQL sobre Parquet no GCS
Spark SQL — pipelines mais complexos
Databricks SQL — SQL cloud sobre Delta Lake
Anti-padrão: Data Swamp
▸8. Lakehouse — o "melhor dos dois mundos"10 conceitos
Delta Lake
Apache Iceberg
Apache Hudi
ACID — sobre arquivos Parquet no object storage
UPSERT / DELETE / MERGE — (impossível em Parquet puro)
Time travel — consultar snapshot de N dias atrás
Schema evolution — adicionar/renomear colunas sem reescrever tudo
Concurrent writers — com isolamento
❌ "Lakehouse é o mesmo que Data Lake" — não, Lakehouse adiciona camada transacional ACID
❌ "Lakehouse elimina DW" — não substitui em todos os casos; é uma alternativa/complemento
▸9. Pipelines em streaming — near-real-time7 conceitos
Kafka — (visto Ex 30) — backbone pub/sub particionado
Debezium — CDC de bancos pra Kafka
Flink — stream processing stateful (windowing, joins, CEP)
Kafka Streams — biblioteca Java pra processamento in-process
Spark Structured Streaming — micro-batch (100ms mínimo)
Materialize / RisingWave — SQL streaming novo (incremental views)
Delta streaming, Iceberg CDC
▸10. Data quality — testes e monitoramento6 conceitos
Great Expectations (Python) — expectations declarativas sobre datasets
dbt tests — unique, not_null, accepted_values, relationships
Deequ (AWS) — tests distribuídos com Spark
Monte Carlo, Bigeye, Anomalo, Soda — plataformas de data observability
Data Contract Specification — schema + SLA + owner + governance formalizados como código
Movement 2022+, ainda emergente
▸Checklist de revisão14 conceitos
[ ] Distingo ETL (T antes) × ELT (T depois)
[ ] Sei os 3 padrões de CDC (timestamp/trigger/log)
[ ] Sei que Debezium é log-based CDC padrão
[ ] Sei os 9 tipos de dados do Redis
[ ] Sei diferença Redis (rico) × Memcached (só string)
[ ] Sei persistência Redis (RDB snapshot × AOF log)
[ ] Sei que Redis é single-thread e o motivo (evita locks)
[ ] Sei HTAP (mesmo banco OLTP+OLAP)
[ ] Sei que Airflow é orquestrador, dbt é transformação
[ ] Sei Data Lake × DW × Lakehouse
[ ] Sei o problema do Data Swamp
[ ] Sei os 3 formatos Lakehouse (Delta/Iceberg/Hudi)
[ ] Sei Medallion (Bronze/Silver/Gold)
[ ] Sei Reverse ETL e Data Mesh conceitualmente
▸BI · IA · ML3 tópicos
▸37-bi-aprofundamento311 conceitos · 0🟢 0🟡 0🟠 0🔴 311⚪
▸Bloco 1 — Business Intelligence: definição e evolução5 conceitos
Ciclo clássico de BI
Evolução (5 ondas)
Diferença BI × Analytics × Data Science
❌ "BI = ferramenta de dashboard
Não são conceitos rigorosamente excludentes
▸Bloco 2 — Os 4 tipos de Analytics (maturidade Gartner)4 conceitos
Escala de complexidade × valor
Analytics cognitiva (5ª geração, pós-2018)
Trocar diagnóstica com preditiva. Diagnóstica olha pro PASSADO
Prescritiva ≠ preditiva. Prescritiva RECOMENDA ação
▸Bloco 3 — Arquitetura BI corporativa (camadas)11 conceitos
Fontes operacionais — sistemas transacionais (OLTP): ERP, CRM, e-commerce, planilhas
Staging area (DSA — Data Staging Area)
ODS (Operational Data Store)
DW corporativo — Inmon 3FN ou Kimball dimensional
Data Marts
Cubos OLAP — MOLAP pré-calculados ou ROLAP em runtime
Semantic Layer — traduz nomes técnicos em termos de negócio (revenue = SUM(sales_amount))
Dashboards / relatórios — apresentação final
❌ "ODS = DW
❌ "Data Mart é redundante com DW
⚠️ ODS × DW × Data Mart: ODS = near-real-time integrado curto histórico; DW = histórico complet…
▸Bloco 4 — OLTP × OLAP2 conceitos
Volume por transação
Backup / recuperação
▸Bloco 5 — DW × Data Lake × Lakehouse18 conceitos
Data Warehouse (DW) — clássico (Inmon 1990, Kimball 1996)
Estruturado — dados em schema pré-definido (star, snowflake)
Schema-on-write — schema imposto ANTES da ingestão
Otimizado para consulta analítica — (colunar, agregações)
Fontes — ERP, CRM, sistemas operacionais
Ferramentas históricas — Teradata, Oracle Exadata, IBM Netezza
Cloud modernos — Snowflake, BigQuery, Redshift, Synapse
Data Lake (2010s)
Bruto, semiestruturado, não estruturado — JSON, CSV, imagens, vídeos, logs
Schema-on-read — schema aplicado NA hora da leitura
Volume massivo, custo baixo
Ferramentas — HDFS, S3, Azure Data Lake Storage, Google Cloud Storage
Problema clássico
Data Lakehouse (2020s, Databricks)
Combina Data Lake + camada analítica de DW
Delta Lake, Apache Iceberg, Apache Hudi — formatos de tabela ACID sobre object storage
Ganho — um só sistema pra BI + Data Science, sem duplicar dados
Comparativo rápido
▸Bloco 6 — Modelagem dimensional (recap do 35-dw, foco BI)19 conceitos
Star Schema (estrela)
1 tabela FATO central — + N tabelas DIMENSÃO ao redor
Dimensões DESNORMALIZADAS (redundância aceita)
Mais simples, mais rápido em consulta
Snowflake Schema (floco de neve)
Star schema + dimensões normalizadas em hierarquias
Menos redundância, mais economia de espaço
Consulta mais lenta (mais joins)
Tabela Fato
Armazena medidas quantitativas (valor vendido, quantidade, custo)
Granularidade — = nível de detalhe (1 linha = 1 venda, 1 dia, 1 hora?). Definida pelo grão
Chaves estrangeiras para todas as dimensões
Tabela Dimensão
Armazena atributos descritivos (nome do cliente, categoria do produto)
Slowly Changing Dimensions (SCD) — como lidar com mudança de atributo ao longo do tempo
Data Vault (2000, Dan Linstedt)
Hubs — chaves de negócio
Links — relacionamentos entre hubs
Satellites — atributos históricos com data
▸Bloco 7 — OLAP aprofundado (cubo, sparsity, operações completas)28 conceitos
Modelo multidimensional formal
Cubo — estrutura N-dimensional (embora chamado cubo, pode ter N > 3 dimensões)
Cell — (célula) — interseção de coordenadas dimensionais, contém 1+ measures
Measure — (medida) — valor quantitativo agregável (SUM, AVG, COUNT, MIN, MAX)
Dimension — (dimensão) — eixo do cubo (Tempo, Produto, Loja)
Level — (nível) — degrau da hierarquia
Attribute — propriedade descritiva de um membro da dimensão
3 arquiteturas de OLAP
ROLAP — (Relational OLAP) — cubos como queries SQL em tabelas relacionais
Operações OLAP clássicas
Roll-up — subir hierarquia (Ano ← Mês) — AGREGA
Drill-down — descer hierarquia (Mês → Dia) — DETALHA
Slice — fixar 1 dimensão em 1 valor (Ano=2025)
Dice — fixar múltiplas dimensões em ranges (Ano=2025 AND Região=Sul)
Pivot (Rotate) — trocar eixos linha↔coluna
Drill-across — múltiplas fatos via dimensões comuns
Drill-through — DW → OLTP fonte (nota fiscal original)
Materialized aggregates (agregações pré-calculadas)
Cubo com N dimensões tem 2^N combinações possíveis de agregação
Pré-calcular todas — = explode em espaço
Pré-calcular nenhuma — = query lenta
Estratégia intermediária: — materializar as agregações MAIS CONSULTADAS + calcular resto em runtime
Ferramentas decidem baseado em telemetria (query log)
Sparsity (esparsidade)
Cubo com N dimensões grandes tem MUITAS células vazias (nem toda combinação tem dado)
Ex: nem todo produto foi vendido em toda loja em todo dia
MOLAP — trata esparsidade com compressão nativa; ROLAP só linhas populadas existem
Cai em FGV como "por que MOLAP escala pior" — não é só volume, é MULTIPLICAÇÃO combinatória vazia
▸Bloco 8 — ETL × ELT1 conceitos
Onde transforma
▸Bloco 9 — MDX (MultiDimensional eXpressions)6 conceitos
Estrutura básica
[Measures] — dimensão especial que contém as medidas
[Dimension].[Hierarchy].[Level].&[Member] — path canônico
ON COLUMNS / ON ROWS / ON PAGES — eixos da query (até 128 eixos possíveis)
WHERE (slicer) — filtro que restringe (o "slice" da operação OLAP)
Funções: .CHILDREN, .PARENT, .MEMBERS, .LAG(n), PARALLELPERIOD, YTD(), QTD()
▸Bloco 10 — DAX (Data Analysis Expressions) + MDX × DAX15 conceitos
Funções principais
Agregação: — SUM, AVERAGE, COUNT, MIN, MAX
Iteradores: — SUMX, AVERAGEX (avaliam linha a linha)
Filtro: — CALCULATE (o mais importante), FILTER, ALL, ALLEXCEPT, KEEPFILTERS
Time Intelligence: — DATESYTD, SAMEPERIODLASTYEAR, DATEADD, DATESBETWEEN
Relacionamento: — RELATED, RELATEDTABLE, USERELATIONSHIP
Conceito-chave: CONTEXTO de avaliação
Row context — linha corrente na iteração (SUMX linha por linha)
Filter context — filtros ativos (slicers, visual, WHERE)
CALCULATE — MODIFICA o filter context — é o coração do DAX
MDX × DAX (dupla clássica FGV)
Complexidade inicial
❌ "DAX é substituta do MDX" — coexistem em ecossistema Microsoft, DAX ganhou terreno com Power BI
❌ "DAX é linguagem de query
⚠️ CALCULATE é a função mais importante de DAX — modifica filter context
▸Bloco 11 — Semantic Layer16 conceitos
Físico: SELECT SUM(sale_amt) FROM fact_sales JOIN dim_time ON ... WHERE year=2024
Semantic: Total Revenue 2024
Governança — única definição de "receita"
Reuso — mesma métrica em N dashboards
Segurança — row-level security via metadata
Independência de ferramenta — mesma semântica alimenta Tableau, Power BI, Excel
LookML — (Looker/Google) — YAML declarativo com joins/measures/dimensions
dbt Semantic Layer — (dbt Cloud) — metrics definidas com dbt, consumidas via API
Cube.js — open-source semantic layer
AtScale — universal semantic layer comercial
MicroStrategy schema — semantic layer histórico enterprise
Power BI datasets — modelos tabulares Analysis Services + DAX
Metrics Store / Metrics Layer
Headless BI
❌ "Semantic layer = OLAP cube" — não, cubo é IMPLEMENTAÇÃO física; semantic é DEFINIÇÃO lógica
❌ "Semantic layer só serve pra Power BI/Tableau" — errado, ferramenta-agnóstico é o valor
▸Bloco 12 — Data Mining (descoberta de padrões)19 conceitos
Tarefas fundamentais (decorar)
Detecção de anomalia
Supervisionado × Não-supervisionado
Supervisionado — tem RÓTULO de treino (Classificação, Regressão)
Não-supervisionado — sem rótulos (Clustering, Associação, Anomalia)
Semi-supervisionado — poucos rótulos + muitos não-rotulados
Reforço — feedback por recompensa (aprende agindo — jogos, robótica, RL)
Regras de associação — métricas (decorar)
Suporte (support): — P(A ∩ B) — frequência do padrão no dataset
Confiança (confidence): — P(B|A) = suporte(A∩B) / suporte(A) — probabilidade condicional
Exemplo Market Basket
suporte(fralda→cerveja) = 150/1000 = 15%
confiança(fralda→cerveja) = 150/200 = 75%
lift(fralda→cerveja) = 0,75 / 0,30 = 2,5
❌ "Data mining = ML
❌ "Classificação é não-supervisionada" — errado, é SUPERVISIONADA (precisa de rótulos)
❌ "Clustering é supervisionado" — errado, é NÃO-SUPERVISIONADO
❌ "Suporte = confiança
⚠️ Apriori é o algoritmo pai das regras de associação (Agrawal 1994)
▸Bloco 13 — KDD × CRISP-DM × SEMMA (metodologias)11 conceitos
KDD (Knowledge Discovery in Databases, Fayyad et al. 1996)
CRISP-DM (Cross-Industry Standard Process for Data Mining, 1996-2000)
SEMMA (SAS 1998)
TDSP (Team Data Science Process, Microsoft)
Comparativo (cai em FGV)
Foco business
❌ "KDD é o mesmo que Data Mining" — errado, DM é UMA etapa do KDD
❌ "CRISP-DM tem 5 fases" — errado, tem 6
❌ "SEMMA começa em Business
⚠️ CRISP-DM começa com Business Understanding, NÃO com Data
⚠️ Data Preparation costuma consumir 60-80% do esforço — não é etapa "menor"
▸Bloco 14 — KPIs, métricas e frameworks de indicadores24 conceitos
KPI × Metric × Measure — desambiguação
Measure — (medida) — valor quantitativo cru (revenue, users, latency)
Metric — (métrica) — measure com contexto (revenue Q4, users mensais). Termo mais amplo
Indicador — métrica associada a um objetivo (taxa de conversão)
Métricas SMART
S — pecific (específica)
M — easurable (mensurável)
A — chievable (atingível)
R — elevant (relevante)
T — ime-bound (com prazo)
Métricas comuns por área
Marketing: — CAC, LTV, churn rate, NPS
Vendas: — taxa de conversão, ticket médio, ciclo de venda, deal size
Operações: — OEE, throughput, lead time, uptime, MTTR, MTBF, SLA compliance
Cliente: — NPS, CSAT, CES, Churn rate, Retention rate
Produto: — DAU, MAU, DAU/MAU, feature adoption, engagement
RH: — turnover, engagement, cost per hire
Frameworks de indicadores
Balanced Scorecard (Kaplan & Norton, 1992)
OKR (Objectives and Key Results)
KPI Trees — hierarquia de KPIs (KPI-topo → KPIs intermediários → drivers operacionais)
North Star Metric
❌ "KPI = métrica qualquer" — KPI é crítica pra estratégia e tem meta
⚠️ Balanced Scorecard = 4 perspectivas (não 3, não 5)
▸Bloco 15 — Self-Service BI14 conceitos
Ferramentas líderes
Tableau — (Salesforce) — pioneira em visualização interativa drag-and-drop
Power BI — (Microsoft) — dominante em empresas Microsoft, DAX + Power Query
Looker — (Google Cloud) — LookML-based, cloud-native, forte governança
Qlik Sense / QlikView — associative model (in-memory), forte em exploração
Metabase / Superset — open-source self-service
Sigma Computing — planilha na cara de DW cloud
Sisense — embedded analytics
Requisitos pra self-service funcionar (5 condições)
Report Sprawl
Data Silos disguised — self-service isolado por área sem governança central
Shadow IT — usuários extraem CSV do DW e trabalham no Excel offline (perde governança)
❌ "Self-service BI dispensa TI
❌ "Self-service BI = perfeito" — precisa das 5 condições listadas ou vira caos
▸Bloco 16 — Dashboards e visualização21 conceitos
Princípios (Stephen Few, Edward Tufte)
Data-ink ratio — (Tufte) — maximizar tinta usada pra representar dados, minimizar decoração
Chart junk — (Tufte) — evitar 3D desnecessário, gradientes, sombras
Pre-attentive attributes — cor, tamanho, posição comunicam ANTES do texto
Small multiples — grade de mini-gráficos comparáveis (Tufte)
Sparklines — mini-gráfico inline no texto
Tipos de dashboard (por propósito)
Operacional — real-time monitoring (KPIs voláteis, alertas)
Tático — análise de tendências (departamental, semanal/mensal)
Estratégico — visão executiva (KPIs corporativos, trimestral/anual)
Escolha de gráfico (regra de ouro)
Comparação categorias
Tendência temporal
Correlação 2 vars
Composição parte-todo
Pie chart com >5 fatias (impossível comparar)
Eixo Y truncado sem indicar (visual engana)
3D em bar chart (distorce percepção de altura)
Cores rainbow sem significado (arco-íris confunde)
❌ "Pie chart é sempre bom pra composição
⚠️ Tufte cunhou "chart junk" — decoração que não comunica dado
▸Bloco 17 — Governança de dados (DAMA + papéis + qualidade)24 conceitos
DAMA-DMBOK — (Data Management Body of Knowledge) — 11 áreas de conhecimento
DCAM — (Data Management Capability Assessment Model, EDM Council)
ISO 8000 — (Data Quality)
DGI Framework — (Data Governance Institute)
DAMA-DMBOK — 11 áreas de conhecimento
Data Quality — 6 dimensões clássicas (DAMA)
Papéis clássicos
CDO — (Chief Data Officer) — executivo responsável por estratégia de dados
Data Owner — accountable de negócio pelo dado (não técnico)
Data Steward — responsável operacional por qualidade e definição de dados em uma área
Data Custodian — TI, gerencia armazenamento e infra
Instrumentos de governança
Data Catalog
Data Lineage — rastreabilidade "de onde veio, transformações, quem consome"
Data Contracts — schema + SLA + owner formalizados como código (emergente 2022+)
Master Data Management (MDM)
Ferramentas de teste de qualidade
Great Expectations — Python, expectations declarativas
dbt tests — unique, not_null, accepted_values, relationships (referencial)
Deequ — Spark distribuído (AWS)
Soda Core — YAML declarativo
⚠️ **Data Steward ≠ Data Owner
⚠️ Lineage ≠ Catalog — lineage rastreia fluxo; catalog inventaria
⚠️ MDM (Master Data Management) ≠ MDM (Modelagem Dimensional) — em BI, MDM = Master Data
▸Bloco 18 — Data Observability2 conceitos
Monte Carlo, Bigeye, Anomalo, Soda Cloud — plataformas comerciais
Detecção proativa de anomalias antes de virar problema no dashboard
▸Bloco 19 — Big Data (5 Vs)3 conceitos
Os 3 Vs originais (Gartner 2001 — Doug Laney)
Extensões — 5 Vs (padrão consolidado)
Extensões — 7 Vs (algumas classificações)
▸Bloco 20 — Ecossistema Big Data: Hadoop, Spark, Kafka21 conceitos
Hadoop (2006, Doug Cutting)
MapReduce — modelo de programação batch (Map → Shuffle → Reduce)
YARN — (Yet Another Resource Negotiator) — gestor de recursos do cluster
HBase — NoSQL colunar sobre HDFS
Hive — SQL sobre HDFS
Pig — linguagem de fluxo de dados (Latin)
Spark (2010, UC Berkeley)
Batch — (Spark Core, RDDs, DataFrames)
Streaming — (Spark Structured Streaming)
SQL — (Spark SQL)
ML — (MLlib)
Grafos — (GraphX)
Kafka (2011, LinkedIn)
Producer — publica em Topic
Consumer — lê do Topic
Broker — nó do cluster Kafka
Partition — divisão do topic para paralelismo
Offset — posição de leitura por consumer
Outros do ecossistema
Airflow — orquestrador de workflows (não específico de Big Data, mas ubíquo)
Flink — streaming stateful em tempo real, alternativa ao Spark Streaming
▸Bloco 21 — Ferramentas de BI e visualização13 conceitos
Qlik Sense / QlikView — engine associativa, análise ad-hoc
SAP BusinessObjects, SAP Analytics Cloud — foco corporativo com ERP SAP
IBM Cognos — grande porte, mercado corporativo tradicional
MicroStrategy — enterprise, foco em governança forte
Looker — (Google) — LookML, camada semântica versionável
Sisense — embedded analytics
Open-source / self-hosted
Metabase — foco em usabilidade, baixo custo
Apache Superset — moderno, escalável
Redash — SQL-first, ad-hoc queries
Grafana — monitoramento + dashboards de séries temporais
Kibana — visualização sobre Elasticsearch
Comparativo rápido
▸Bloco 22 — Batch × Streaming (Lambda × Kappa)13 conceitos
Batch (lotes)
Processa conjunto de dados finito de cada vez
Latência: minutos a horas
Ferramentas: Spark, Hadoop MapReduce, Airflow, Snowflake
Uso: relatórios diários, fechamento contábil, DW loads noturnos
Streaming (contínuo)
Processa eventos em tempo real (ou near-real-time)
Latência: milissegundos a segundos
Ferramentas: Kafka Streams, Flink, Spark Streaming, AWS Kinesis
Uso: fraude, monitoramento, IoT, personalização
Lambda Architecture (Marz, 2011)
Kappa Architecture (Kreps, 2014)
Só streaming
▸Bloco 23 — Augmented Analytics + GenBI (BI 5.0)13 conceitos
Augmented Analytics (Gartner 2017)
Power BI Q&A — pergunta em linguagem natural
Tableau Ask Data — NLP query
ThoughtSpot — pioneira em search-driven analytics
Qlik AutoML — ML embedded no BI
GenBI (Generative BI, 2023+)
Microsoft Copilot — no Power BI — descreve dashboard em linguagem natural, ele monta
Tableau Pulse (Einstein GPT) — narrativa gerada de dados
Snowflake Cortex — LLM integrado no DW
Riscos GenBI
Alucinação — LLM inventa insight que não está no dado
Governança — LLM pode contornar semantic layer se não conectado
Explicabilidade — usuário não sabe se o insight é confiável
▸Ganchos pro JM8 conceitos
Como dev fullstack em vários projetos
BI clássico
Distinção prescritiva × preditiva
Kafka aparece em cauda longa TI
Data Mining suporte×confiança×lift
DAMA 11 áreas
Papéis de governança
Chart junk — Tufte cunhou. Se aparecer o nome, é sobre "decoração inútil"
▸38-ia-ml-tecnico277 conceitos · 0🟢 0🟡 0🟠 0🔴 277⚪
▸1. AI × ML × DL × Data Science — desambiguação4 conceitos
Data Science
❌ "AI = ML = DL" — errado, são níveis diferentes de aninhamento
❌ "DL substituiu ML clássico
❌ "Data Science = ML" — errado, DS é interdisciplinar, ML é ferramenta
▸2. Paradigmas de aprendizado (recap + deep)7 conceitos
Não-supervisionado
Semi-supervisionado
Reforço (RL)
Autossupervisionado
Transferência (Transfer)
❌ "Semi-supervisionado é sinônimo de supervisionado" — não, tem PARCIALMENTE rótulos
❌ "RL é supervisionado" — não, RL tem RECOMPENSA (numérica), não rótulos de classe
▸3. Tarefas de ML — classificação, regressão, clustering, etc.6 conceitos
Regressão — output contínuo (preço, temperatura, demanda)
Clustering — agrupar sem rótulos (K-means, DBSCAN, hierárquico)
Redução de dimensionalidade — projetar em menos dimensões preservando estrutura (PCA, t-SNE, UMAP)
Regras de associação — visto Ex 37 (Apriori, FP-Growth)
Detecção de anomalia — Isolation Forest, LOF, One-Class SVM
Estimação de densidade — GMM (Gaussian Mixture), KDE (Kernel Density)
▸4. Overfitting × Underfitting × Bias-Variance Tradeoff25 conceitos
Modelo memoriza dados de treino (inclusive ruído)
Alta variância — (varia muito com dados diferentes)
Excelente no treino, ruim no teste
Sinal: gap grande entre acurácia treino × teste
Causa: modelo complexo demais pra pouco dado
Modelo simples demais pra capturar padrão real
Alto viés — (bias)
Ruim no treino E no teste
Sinal: acurácia baixa em ambos
Causa: modelo simples demais, ou features insuficientes
Erro total = Bias² + Variância + Erro irredutível (ruído)
Modelo simples: alto bias, baixa variância (underfitting)
Modelo complexo: baixo bias, alta variância (overfitting)
Sweet spot: — minimizar soma
Mais dados
Regularização — (L1 Lasso, L2 Ridge, ElasticNet)
Simplificar modelo (menos features, menor profundidade)
Cross-validation
Early stopping — (parar treino quando val error subir)
Dropout — (redes neurais)
Ensemble — (bagging reduz variância)
Data augmentation — (imagem, texto)
❌ "Overfitting = alto bias" — errado, overfitting é ALTA VARIÂNCIA (baixo bias)
❌ "Underfitting = alta variância" — errado, é ALTO BIAS
❌ "Regularização aumenta overfitting" — errado, REDUZ (penaliza complexidade)
▸5. Cross-Validation19 conceitos
Dividir dataset em K partes (folds), tipicamente K=5 ou 10
Pra cada fold: treinar nas K-1 outras, testar no fold
Média das K acurácias = estimativa mais robusta
Padrão da indústria — K=5 costuma ser o padrão
Preserva proporção de classes em cada fold (essencial se dataset desbalanceado)
Padrão em scikit-learn pra classificação
K = N (número de amostras)
Cada amostra vira 1 fold sozinha
Custoso computacionalmente (N modelos treinados)
Usado em datasets muito pequenos
Pra séries temporais: NÃO pode misturar futuro no treino
Split respeita ordem: treino=passado, teste=futuro
Expanding window (treino cresce) ou sliding window (janela fixa)
Train (60-70%) — treinar o modelo
Validation (15-20%) — tunar hiperparâmetros
Test (15-20%) — avaliação FINAL única (não usar pra decidir)
❌ "Cross-validation elimina overfitting" — não, DETECTA/ESTIMA melhor, não elimina
❌ "K-Fold vale pra série temporal" — errado, precisa Time Series Split
⚠️ Data leakage — normalizar/preprocessar ANTES do split "vaza" info de teste no treino
▸6. Métricas de Classificação21 conceitos
Real Positivo
Real Negativo
Acurácia (Accuracy): — (TP+TN) / (TP+TN+FP+FN) — proporção de acertos
Precisão (Precision): — TP / (TP+FP) — dos que previ positivo, quantos são realmente
Recall (Sensibilidade, TPR): — TP / (TP+FN) — dos que são realmente positivo, quantos peguei
Especificidade (TNR): — TN / (TN+FP) — dos realmente negativos, quantos identifiquei
F1-Score: — 2 × (Precision × Recall) / (Precision + Recall) — média harmônica
F-beta: — generaliza F1, β=1 é F1; β>1 pesa mais recall; β<1 pesa mais precision
ROC (Receiver Operating Characteristic): — curva TPR vs FPR pra vários thresholds
PR-AUC (Precision-Recall AUC): — melhor que ROC pra desbalanceamento extremo (fraud detection 0,1%)
Log Loss (Cross-Entropy): — penaliza confiança alta em predição errada; usada como loss function
❌ "Acurácia é sempre a melhor métrica" — errado, ruim em desbalanceado
❌ "Precisão = Recall" — errado, cobrem trade-offs diferentes
❌ "AUC-ROC pode ser negativo" — errado, é [0, 1] (0,5 = aleatório)
⚠️ Sensibilidade = Recall = TPR — 3 nomes pra mesma métrica
100 emails, 20 spam real, modelo prediz 30 spam
Dos 30 preditos: 15 são spam real (TP), 15 falsos (FP)
Dos 20 spam reais: 15 pegos (TP), 5 escaparam (FN)
Precisão = 15/30 = 50%
Recall = 15/20 = 75%
F1 = 2 × (0,5 × 0,75) / (0,5+0,75) = 0,75/1,25 = 60%
▸7. Métricas de Regressão8 conceitos
MAE (Mean Absolute Error):
MSE (Mean Squared Error): — média de (y_real - y_previsto)² — penaliza erros grandes mais
RMSE (Root MSE): — √MSE — mesma unidade do target, sensível a outlier
R² (coeficiente de determinação)
MAPE (Mean Absolute Percentage Error):
❌ "R² sempre entre 0 e 1" — errado, pode ser negativo (modelo pior que baseline média)
❌ "MSE e RMSE são iguais" — RMSE é raiz de MSE, unidade diferente
⚠️ MAE robusto a outlier; MSE/RMSE penalizam outlier
▸8. Feature Engineering + Pré-processamento19 conceitos
Criar novas features a partir das existentes (age → age_group, date → day_of_week)
Domain expertise crítica
Feature selection — escolher subset (filter/wrapper/embedded methods)
One-Hot Encoding
Label Encoding — mapeia categoria pra inteiro (só pra ordinal — senão introduz ordem falsa)
Target Encoding
Frequency Encoding — substitui categoria pela sua frequência
Normalização (Min-Max) — [0, 1]: (x - min) / (max - min)
Padronização (Standard/Z-score) — média 0, std 1: (x - μ) / σ
Necessário pra: SVM, KNN, redes neurais, PCA, regressão logística
Não necessário pra: árvores (invariantes a escala)
Deletar linhas (se poucas)
Deletar coluna (se muita missing)
Imputação: média/mediana (numérica), moda (categórica), KNN imputer, MICE
Detectar (IQR, Z-score, Isolation Forest)
Cap (winsorização), transformar (log), remover
❌ "Label Encoding é bom pra nominais" — errado, introduz ordem falsa; usar One-Hot
❌ "Árvores exigem normalização" — errado, são invariantes a escala
❌ "Escalonamento e normalização são a mesma coisa" — normalização é MIN-MAX, padronização é Z-SCORE
▸9. Split de dados + Data Leakage12 conceitos
Train → Validation → Test
Test set nunca deve influenciar decisões — (só olhar UMA vez no final)
Time series: split RESPEITANDO ordem temporal
Feature leakage: — feature contém info do target (target incorporado indiretamente)
Temporal leakage: — usar dados futuros pra prever passado
Split leakage: — normalizar/PCA/imputar ANTES do split (usa estatística de todo dataset)
Group leakage: — amostras do mesmo grupo (paciente) em train + test (cross-group)
Split ANTES de qualquer pré-processamento
Pipeline scikit-learn (fit no treino, transform em ambos)
Cross-validation por grupo (GroupKFold, StratifiedGroupKFold)
❌ "Data leakage é problema de segurança
⚠️ Pipeline scikit-learn é a defesa canônica
▸10. Regularização12 conceitos
L1 (Lasso)
L2 (Ridge): — penaliza soma dos coeficientes² — reduz coefs sem zerar
ElasticNet: — combina L1 + L2 (parâmetros α + ratio)
α=0 → sem regularização
α alto → coefs pequenos, modelo simples (pode causar underfitting)
Tunar via cross-validation
Dropout — desliga aleatoriamente % de neurônios durante treino
Batch Normalization — normaliza ativações por batch (ajuda convergência + regulariza)
Early Stopping — parar treino quando val error subir
❌ "L1 e L2 fazem a mesma coisa" — L1 faz feature selection (zera); L2 reduz sem zerar
❌ "Regularização sempre melhora" — se α excessivo, causa underfitting
⚠️ Ridge = L2; Lasso = L1
▸11. Ensemble Methods14 conceitos
Treina N modelos em amostras bootstrap (com reposição) do dataset
Predição: voto majoritário (classificação) ou média (regressão)
Reduz variância — (paraleliza)
Exemplo: Random Forest (bagging + subset aleatório de features por árvore)
Treina modelos SEQUENCIAIS, cada um corrigindo erros do anterior
Reduz bias — (sequencial)
Treina N modelos base + 1 meta-modelo que combina suas predições
Meta-modelo aprende como pesar cada base
Mais complexo, ganhos marginais em geral
Combinação simples (hard/majority ou soft/probabilities)
Velocidade treino
❌ "Random Forest usa boosting" — errado, é BAGGING
❌ "XGBoost é bagging" — errado, é BOOSTING (Gradient Boosting)
❌ "Boosting paralelo é mais rápido" — errado, é SEQUENCIAL por design
▸12. Algoritmos clássicos — panorâmica28 conceitos
y = β₀ + β₁x₁ + ... + βₙxₙ
Minimiza MSE via mínimos quadrados
Interpretável, base pra outros
Classificação binária (apesar do nome "regressão")
Sigmoid: P(y=1|x) = 1 / (1 + e^(-z))
Loss: log-loss
Divide espaço recursivamente por thresholds (Gini ou Entropia)
Interpretável (regras if-then)
Alto overfitting sozinha → ensemble
Encontra hyperplano com margem máxima
Kernel trick pra não-linearidade (RBF, polynomial)
Bom em datasets pequenos com muitas features
Lazy learner (não treina, só armazena)
Prediz classe/valor pela média dos K vizinhos mais próximos
Sensível a escala e curse of dimensionality
Baseado em Bayes + assunção de independência entre features
Rápido, bom pra texto (spam filter clássico)
Clustering: escolhe K centroides, atribui pontos, atualiza centroides
Sensível a inicialização (K-means++), K precisa ser definido a priori
Clustering baseado em densidade
Não exige K, detecta outliers
Sensível a eps + min_samples
Redução de dimensionalidade linear
Encontra eixos de maior variância (autovetores da matriz de covariância)
Perde interpretabilidade
❌ "Regressão Logística é regressão" — errado, é CLASSIFICAÇÃO binária
❌ "KNN treina" — errado, é LAZY (só armazena treino, computa em runtime)
❌ "Naive Bayes não pressupõe nada" — errado, assume independência entre features
▸13. Redes Neurais — fundamentos21 conceitos
Modelo mais simples: y = sign(Σ wᵢxᵢ + b)
Só resolve problemas linearmente separáveis (Minsky 1969 mostrou limitação → AI winter)
Múltiplas camadas ocultas
Backpropagation — (Rumelhart 1986) — treino via gradient descent com regra da cadeia
Universal approximator (teorema de Cybenko 1989)
Camadas: — input → hidden(s) → output
Neurônios: — unidades de cálculo
Pesos + bias: — parâmetros treinados
Funções de ativação: — introduzem não-linearidade
Loss: — MSE (regressão), Cross-Entropy (classificação)
Optimizer: — SGD, Adam (default moderno), RMSProp
Epoch: — passagem completa pelo dataset
Batch size: — amostras por atualização de peso
CNN (Convolutional NN) — visão computacional (LeNet, AlexNet 2012 marco, ResNet, VGG)
RNN (Recurrent NN) — sequência (texto, séries) — LSTM, GRU
GAN (Generative Adversarial) — 2 redes competindo (gerador × discriminador)
Autoencoders — encoder + decoder, aprendizado não-supervisionado, compressão/denoising
❌ "Perceptron resolve qualquer problema" — errado, só LINEARMENTE SEPARÁVEIS
❌ "Backpropagation é técnica de otimização
❌ "ReLU é linear" — errado, é NÃO-LINEAR (piecewise: 0 pra x<0, x pra x≥0)
⚠️ Vanishing gradient — sigmoid/tanh em muitas camadas → gradientes vão a zero. ReLU resolve
▸14. Ferramentas Python — ecossistema19 conceitos
Padrão pra ML clássico (não deep learning)
API consistente: fit/predict/transform
Regressão, classificação, clustering, PCA, cross-validation, pipelines
Não escala pra dados massivos (single-machine)
Framework DL, produção enterprise, TensorFlow Serving, TFLite mobile
Keras (Chollet 2015, integrado 2019) — API alto nível
Framework DL, dinâmico (define-by-run), pesquisa acadêmica dominante
Ganhou terreno vs TensorFlow por facilidade + comunidade
Dominante em LLMs / GenAI — em 2026
API de alto nível pra construir NNs
Backend TensorFlow (default), pode ser JAX ou PyTorch (Keras 3.0 2023)
NumPy + autodiff + JIT compilation
Pesquisa avançada, alternativa ao PyTorch em research
Pandas + NumPy — manipulação de dados tabulares e arrays
Weights & Biases (W&B) — experiment tracking, colaboração
Hugging Face Transformers — biblioteca de LLMs pré-treinados (pytorch/tf/jax)
❌ "TensorFlow substituiu PyTorch" — na verdade PyTorch cresceu; ambos dominam DL em 2026
❌ "scikit-learn é pra deep learning" — errado, é pra ML CLÁSSICO
❌ "Keras é framework standalone" — hoje é API alto-nível dentro de TF/JAX/PyTorch
▸15. MLOps — DevOps pra ML25 conceitos
Código MAIS modelo MAIS dados versionados
Modelo pode degradar sem código mudar (drift)
Testes de comportamento, não só unitários
Retreino contínuo
Feature Store — repositório centralizado de features (Feast, Tecton)
Experiment Tracking — MLflow, W&B, Neptune (versiona modelos + métricas + params)
Model Registry — inventário versionado de modelos aprovados
Model Serving — TensorFlow Serving, TorchServe, BentoML, KServe
Monitoring — data drift, concept drift, latência, feature distribution
CI/CD pra ML — testes + deploy automatizado (Kubeflow, GitHub Actions)
Data versioning — DVC (Data Version Control), lakeFS
Data Drift — distribuição das FEATURES muda no tempo (novos padrões de uso)
Concept Drift — relação features → target muda (fraude muda de comportamento)
Label Drift — distribuição do TARGET muda
Estatística: KS test, PSI (Population Stability Index)
Ferramentas: Evidently AI, WhyLabs, Fiddler, Arize
Batch prediction — job periódico grava predições em tabela
Online prediction — API real-time (REST/gRPC)
Streaming prediction — Kafka/Flink processando eventos
Edge prediction — modelo no device (TFLite, ONNX Runtime)
Shadow deployment — modelo novo roda em paralelo, predições comparadas (sem afetar)
A/B testing — % do tráfego pra cada modelo
Canary deployment — pequena % primeiro, escala se OK
❌ "MLOps = DevOps" — sobrepõem-se mas MLOps inclui modelo + dados como artefatos
❌ "Data drift = concept drift
▸16. Conceitos teóricos importantes23 conceitos
Nenhum algoritmo é melhor que todos os outros pra TODOS os problemas
Escolher algoritmo depende do problema específico
Justifica experimentar múltiplos
Quanto mais features (dimensões), mais dados exponencialmente necessários
Distâncias perdem significado em alta dim (KNN sofre)
Motivação pra redução de dimensionalidade (PCA, t-SNE)
Modelo mais simples é preferível se performance similar
Alinhado com regularização
Statistical bias — erro sistemático do modelo (underfitting)
Data bias — dataset não representa realidade (viés amostral)
Algorithmic bias — discriminação por raça/gênero/idade (fairness)
Métricas: Demographic Parity, Equal Opportunity, Equalized Odds
Ferramentas: Fairlearn (Microsoft), AIF360 (IBM), What-If Tool (Google)
SHAP (SHapley Additive exPlanations) — game theory, contribuição de cada feature
LIME (Local Interpretable Model-agnostic Explanations) — modelo linear local pra explicar predição
Feature importance — (nativa em árvores)
Grad-CAM — (visão computacional — heatmap na imagem)
Attention weights — (transformers)
Interpretável — = mecanismo transparente (árvore rasa, regressão linear)
Explicável — = post-hoc, explicar caixa-preta (SHAP, LIME em NN complexa)
Art. 20 LGPD: direito à revisão de decisões automatizadas
Consentimento pra processamento de dados sensíveis
Governança IA + Data Protection Impact Assessment (DPIA/RIPD)
▸Checklist de revisão14 conceitos
[ ] Sei diferença AI × ML × DL × Data Science
[ ] Sei 4+ paradigmas de aprendizado (supervisionado/não/semi/reforço)
[ ] Sei diferença classificação × regressão × clustering
[ ] Sei overfitting × underfitting + bias-variance
[ ] Sei que L1 zera coefs (Lasso) e L2 só reduz (Ridge)
[ ] Sei calcular precisão/recall/F1 com matriz confusão
[ ] Sei que sensibilidade = recall = TPR
[ ] Sei diferença Random Forest (bagging) × XGBoost (boosting)
[ ] Sei que KNN é lazy e Naive Bayes assume independência
[ ] Sei arquiteturas DL principais (CNN/RNN/Transformer/GAN)
[ ] Sei ferramentas Python (scikit-learn ML × PyTorch/TF DL)
[ ] Sei drift types e MLOps essentials
[ ] Sei SHAP × LIME (explicabilidade)
[ ] Sei LGPD art. 20 (revisão decisão automatizada)
▸39-ia-generativa-llm146 conceitos · 0🟢 0🟡 0🟠 0🔴 146⚪
▸Bloco 1 — Discriminativo × Generativo (dicotomia base)11 conceitos
Fronteira histórica — modelos generativos existiam antes dos LLMs, mas eram limitados
2013 — VAE (Kingma & Welling): Variational Autoencoder, gera via espaço latente contínuo
2014 — GAN (Goodfellow): Generative Adversarial Network, gerador × discriminador competindo
2015 — Diffusion (Sohl-Dickstein)
2017 — Transformer
2018 — GPT-1 (OpenAI, 117M params) e BERT (Google, 340M): pré-treinamento + fine-tuning
2020 — GPT-3 (175B params) — mostra que escala + few-shot funciona
nov/2022 — ChatGPT — (GPT-3.5 + RLHF) — democratiza IA generativa
2023 — GPT-4, Claude, LLaMA (Meta open-weight), Gemini (Google)
2024 — GPT-4o multimodal nativo, Claude 3.5 Sonnet, LLaMA 3, Sora (video)
2025-2026 — Claude Opus 4.x, GPT-5 família, agentes autônomos, MCP como padrão
▸Bloco 2 — Arquitetura Transformer (Vaswani et al. 2017)2 conceitos
Decoder-only** (causal)
Encoder-Decoder
▸Bloco 3 — Pré-treinamento × Fine-tuning × Alinhamento12 conceitos
Fase 1 — Pré-treinamento (pretraining)
Corpus massivo (trilhões de tokens: Common Crawl, Wikipedia, livros, código)
Duração: semanas/meses em milhares de GPUs
Custo: US$ milhões a dezenas de milhões
Resultado: modelo base que "sabe línguas" mas ainda não segue instruções
Fase 2 — SFT (Supervised Fine-Tuning)
Dataset muito menor
Treina o modelo base a **seguir instruções
Ainda não é "alinhado" com preferências humanas complexas
Fase 3 — RLHF (Reinforcement Learning from Human Feedback)
Constitutional AI
RLAIF — (Reinforcement Learning from AI Feedback) — genérico
▸Bloco 4 — Prompt Engineering (padrões)6 conceitos
Zero-shot — só a instrução, sem exemplos
Few-shot / In-context learning — exemplos no prompt (o GPT-3 mostrou que isso funciona sem treinar)
Chain-of-Thought (CoT) — Wei et al. 2022 — pedir pra "pensar passo a passo"
Self-Consistency — gerar N respostas com CoT + voto majoritário (mais robusto)
Tree of Thoughts (ToT) — explora árvore de raciocínios com backtracking
Prompt injection
▸Bloco 5 — RAG (Retrieval-Augmented Generation)14 conceitos
Embedding model
Vector database — armazena e busca vetores rapidamente (ANN — Approximate Nearest Neighbor)
Chunking — dividir docs em pedaços (~500-1500 tokens; overlap 10-20%)
Reranker — modelo secundário que reordena os top-K (Cohere Rerank, BGE-reranker)
Hybrid search — combina busca semântica (vector) + lexical (BM25)
Atualização sem re-treino
Reduz alucinação (LLM cita fonte real)
Custo baixo vs fine-tuning
Compliance/LGPD (dados sensíveis ficam no vector store, não no modelo)
Qualidade depende da qualidade do retriever (garbage in → garbage out)
Chunking ruim quebra contexto semântico
Lost in the middle" — LLMs prestam menos atenção no meio de contextos longos
Novo conhecimento factual
Novo formato/estilo
▸Bloco 6 — Fine-tuning eficiente (PEFT)10 conceitos
Full fine-tuning
PEFT (Parameter-Efficient Fine-Tuning) — só uma fração dos params
LoRA (Low-Rank Adaptation) — Hu et al. Microsoft, 2021
Congela os pesos originais W
Adiciona matrizes de baixo rank ΔW = A·B onde A e B têm rank r (ex.: r=8, 16, 64)
Só treina A e B (ordens de magnitude menos params)
Inferência: usa W + A·B (custo zero adicional se fundir)
Adapter tuning — insere camadas pequenas entre transformer blocks
Prefix tuning — treina prefixo virtual aprendido, não muda o modelo
Prompt tuning — só treina embeddings de "soft prompts
▸Bloco 7 — Tokenização e Context Window13 conceitos
BPE (Byte-Pair Encoding) — merge iterativo de pares mais frequentes. Usado por GPT-2/3/4, LLaMA
WordPiece — variação BPE, usada por BERT
SentencePiece — Google, independente de idioma (bytes puros). Usado por T5, LLaMA
tiktoken — implementação OpenAI (BPE otimizado)
GPT-3 (2020): 2k tokens · GPT-3.5: 4k → 16k · GPT-4: 8k → 32k → 128k
Claude 2: 100k · Claude 3+: 200k
Gemini 1.5: 1M-2M tokens (multimodal)
LLaMA 3.1: 128k
Problema O(n²) — atenção quadrática no comprimento. Soluções
FlashAttention — (Dao 2022) — reorganiza I/O de GPU, mesmo output, muito mais rápido
Sparse attention — só atende subset (Longformer, BigBird)
Sliding window — atenção local (Mistral)
Ring attention / distributed attention — divide entre GPUs
▸Bloco 8 — Multimodalidade5 conceitos
DALL-E 2/3
Sora — (OpenAI 2024), Runway Gen-3, Veo (Google), **Kling
Whisper — (OpenAI, ASR — reconhecimento de fala) — open source, dominante
Bark, XTTS, ElevenLabs — TTS (síntese de voz)
MusicGen — (Meta), Suno, Udio — geração de música
▸Bloco 9 — Agentes e Tool Use7 conceitos
Function calling / Tool use
Model Context Protocol (MCP)
LlamaIndex — focado em RAG
AutoGen — (Microsoft) — multi-agente conversacional
CrewAI — multi-agente com papéis
Claude Code, Cursor, Devin — agentes de código de próxima geração
Chatbot: 1 turno de conversa, gera resposta
▸Bloco 10 — Avaliação de LLMs6 conceitos
MMLU** (Massive Multitask Language Understanding)
ARC** (AI2 Reasoning Challenge)
Chatbot Arena** (LMSys)
Contaminação — modelo viu o benchmark no pré-treinamento (memorizou)
Saturação — modelos top empatam em 95%+ (perde poder de discriminar)
Gaming — otimizar pra benchmark ≠ utilidade real
▸Bloco 11 — Riscos, Alinhamento e Safety10 conceitos
Alinhamento — garantir que o LLM age de acordo com valores humanos. Abordagens
RLHF, DPO, Constitutional AI
Red teaming (equipes tentam quebrar o modelo)
Guardrails (filtros pré/pós output
Interpretabilidade mecanicista (entender internals — Anthropic circuits research)
Alignment — modelo faz o que queremos
Robustness — resiste a inputs adversariais
Interpretability — humanos entendem por que decidiu X
Corrigibility — modelo aceita correção humana
X-risk / existential risk — riscos catastróficos de IA avançada (superalignment)
▸Bloco 12 — Deployment e Inferência20 conceitos
TGI — (Text Generation Inference, Hugging Face)
Ollama — local, fácil (Mac/Linux/Windows), formato GGUF
llama.cpp — inferência em CPU/GPU otimizada, GGUF
TensorRT-LLM — (NVIDIA) — máxima performance em GPUs NVIDIA
Quantização — reduzir precisão dos pesos pra caber mais e rodar mais rápido
FP16 / BF16
INT4 (GPTQ, AWQ, GGUF Q4)
Speculative decoding
Prompt caching
Batching — juntar múltiplas requests concorrentes → melhor uso da GPU
OpenAI (GPT-4o, GPT-5, o1/o3)
Anthropic (Claude 4.7/4.8, Haiku 4.5)
Google (Gemini 2.5)
AWS Bedrock (múltiplos providers)
Azure OpenAI, Vertex AI
LLaMA 3.1/3.3 — (Meta) — 8B, 70B, 405B
Mistral / Mixtral — (Mistral AI França) — MoE
Qwen 2.5 — (Alibaba) — bom em várias línguas
DeepSeek V3, R1 — (DeepSeek China) — reasoning
Gemma — (Google) — LLaMA-like open
▸Bloco 13 — Reasoning models e MoE3 conceitos
Mixture of Experts (MoE)
Vantagem: capacidade grande, custo de inferência de modelo menor
Desvantagem: memória VRAM total pra caregar tudo, treino instável
▸Bloco 14 — Regulação e Ética5 conceitos
PL 2338/2023
Sem legislação federal específica. Ordem Executiva Biden
Voluntary Safety Commitments com labs (2023)
Copyright em treinamento
Deepfakes — TSE Brasil proibiu deepfake em eleições 2024 (Resolução 23.732/2024)
▸Bloco 15 — Setor Público Brasileiro10 conceitos
Dataprev — empresa pública, TI da Previdência Social. Aplicações potenciais IA generativa
Automação de análise de processos (BPC, benefícios)
Chatbot pra segurados (Meu INSS)
Sumarização de laudos médicos
Detecção de fraude com embeddings
Geração de código interna (Copilot-like)
Prova deve cobrar conceitos gerais + LGPD art. 20 + governança de IA em órgão público
TCU acórdãos sobre IA na administração pública
e-Digital / Estratégia Brasileira de IA (EBIA)
Serpro — irmão do Dataprev; ChatSerpro é iniciativa própria de LLM interno
▸Bloco 16 — Custos, Economia, Sustentabilidade12 conceitos
Input geralmente 3-5× mais barato que output
Prompt caching desconto 50-90% na parte cacheada
Batch API (assíncrono) 50% desconto tipicamente
GPT-4o class: ~US$ 2.50 / 1M input, ~US$ 10 / 1M output
Claude Opus class: ~US$ 15 / 1M input, ~US$ 75 / 1M output
Haiku class: ~US$ 0.25 / 1M input, ~US$ 1.25 / 1M output
Open source self-hosted: só custo de GPU (variável)
Treinar GPT-3: ~1.287 MWh (Patterson et al.) — carbono equivalente a ~500 tCO2
Treinar GPT-4: estimado >10× GPT-3
Inferência de 1M queries: ~100-1000 kWh dependendo do modelo
Watermarking hídrico (Microsoft/Google) — datacenters gigantes consomem água pra resfriamento
Green AI × Red AI — Schwartz et al. 2019 — movimento por eficiência energética em ML
▸Arquitetura · Ágil · Frontend5 tópicos
▸27-agil147 conceitos · 0🟢 0🟡 0🟠 0🔴 147⚪
▸Bloco 1 — Manifesto Ágil (2001) — 4 valores + 12 princípios7 conceitos
4 valores (par: esquerda MAIS que direita — direita NÃO é ruim)
Valorizar MAIS
Indivíduos e interações
Software em funcionamento
Colaboração com o cliente
Responder a mudanças
12 princípios (grupos mentais)
▸Bloco 2 — Scrum Guide 2020 — mudanças-chave vs 20178 conceitos
Papéis chamados de
Product Goal
Sprint Goal
Definition of Done (DoD)
Perguntas do Daily
Tamanho do time
Servant leader
Auto-organizado
▸Bloco 3 — Papéis / Accountabilities Scrum16 conceitos
Product Owner (PO)
Accountable por MAXIMIZAR O VALOR — do produto resultante do trabalho do Scrum Team
UMA ÚNICA PESSOA — (não comitê) — pode representar vários stakeholders, mas decide sozinha
Gerencia o Product Backlog
Pode delegar tarefas, mas **mantém a accountability
Decisão do PO deve ser **respeitada
Scrum Master (SM)
Accountable pela EFETIVIDADE do Scrum Team
True leader que serve — o Scrum Team e a organização inteira
Serve o **Scrum Team
Serve o **PO
Serve a **organização
⚠️ NÃO é gerente do time, NÃO é PM, NÃO atribui tarefas
Accountable por criar qualquer aspecto de um Increment usável a cada Sprint
Cross-functional (têm todas as habilidades) e self-managing (decidem quem faz o quê)
Responsáveis por
▸Bloco 4 — Artefatos + Commitments (Scrum Guide 2020)10 conceitos
Product Backlog
Sprint Backlog
Atividade contínua (não é evento formal!) — dividir, detalhar, refinar itens
Adiciona detalhes: descrição, ordem, tamanho (size)
Atributos variam com o domínio
Devs que dimensionam — os itens (não o PO); PO influencia ajudando a entender e negociar trade-offs
Descrição formal do estado do Increment quando atende às medidas de qualidade
Se organização já tem uma → mínimo obrigatório do time
Se organização não tem → **Scrum Team cria uma apropriada
Se um item NÃO atende a DoD, não pode ser liberado nem apresentado no Review; volta ao Product…
▸Bloco 5 — Eventos Scrum (5 eventos, timeboxes)4 conceitos
Sprint Planning
Daily Scrum
Sprint Review
Sprint Retrospective
▸Bloco 6 — DoR vs DoD9 conceitos
Definition of Done (DoD) — **ESTÁ NO SCRUM GUIDE 2020
Commitment do **Increment
Descrição formal do estado do Increment quando "pronto
Cria transparência sobre qualidade
Item que não atende DoD **NÃO é liberado, NÃO é apresentado no Review
Definition of Ready (DoR) — **NÃO ESTÁ NO SCRUM GUIDE
Convenção adotada por muitos times (não é obrigação Scrum)
Critérios que um item do PB deve atender antes de entrar em Sprint Planning
FGV pega isso — se questão afirmar "segundo o Scrum Guide, DoR é obrigatório" → **ERRADO
▸Bloco 7 — Estimativa + métricas17 conceitos
Story Points
Unidade relativa (não é hora!) — considera esforço, complexidade, incerteza
Comumente usa sequência de Fibonacci modificada (1, 2, 3, 5, 8, 13, 21, 40, 100)
Comparação: item de 5 pts ≈ 5× o esforço de um item de 1 pt
Planning Poker (Wideband Delphi)
Técnica de estimativa colaborativa e **anônima simultânea
Cada Dev mostra sua carta ao mesmo tempo — evita ancoragem
Diferenças grandes → discussão → nova rodada
Média de story points concluídos por Sprint (atingiram DoD)
Métrica do time (não comparar entre times!)
Usada pra previsibilidade
Burn-down Chart
Eixo Y: trabalho restante; eixo X: tempo (sprints ou dias)
Linha desce → conclusão
Burn-up Chart
Eixo Y: trabalho concluído + linha de escopo total; eixo X: tempo
Vantagem sobre burn-down: mostra mudanças de escopo (escopo cresce ou diminui visível)
▸Bloco 8 — Kanban6 conceitos
Princípios centrais
Métricas Kanban (LT/CT/Throughput)
Cycle Time
Pull system
Kanban é PULL (puxado): trabalho novo entra na coluna seguinte só quando abrir vaga (WIP)
Contrasta com PUSH (empurrado): trabalho é empurrado independente da capacidade
▸Bloco 9 — Kanban vs Scrum (comparativo direto)4 conceitos
Artefatos obrigatórios
Mudança de escopo
Comprometimento
Limite de trabalho
▸Bloco 10 — XP (Extreme Programming)18 conceitos
12 práticas centrais (agrupadas)
TDD — (Test-Driven Development) — teste ANTES do código (Red → Green → Refactor)
Programação em pares — (pair programming) — 2 pessoas, 1 teclado
Cliente no local — (on-site customer) — cliente disponível para dúvidas
Design simples — YAGNI (You Aren't Gonna Need It) — só o necessário agora
Refatoração — contínua — melhorar código sem mudar comportamento
Metáfora — narrativa comum entre time e cliente
Releases pequenos — entregas frequentes
Ciclos curtos — de iteração (1-3 semanas)
Integração contínua — commits pequenos, integrados várias vezes ao dia
Semana de 40 horas — (ritmo sustentável)
Padrões de código — (coding standards)
Propriedade coletiva do código
5 valores XP
XP vs Scrum
XP prescreve práticas de engenharia (TDD, pair, refactor)
Scrum prescreve framework de gestão (papéis, eventos, artefatos)
Complementares — muitos times fazem "Scrum + XP" (Scrum pro processo, XP pra engenharia)
▸Bloco 11 — Lean Software Development8 conceitos
7 princípios Lean SW
7 desperdícios (waste) em SW
Waste (manufatura)
Processamento extra
3 M's japoneses (Toyota)
Muda — desperdício
Mura — inconsistência/variabilidade
Muri — sobrecarga
▸Bloco 12 — SAFe (Scaled Agile Framework) — panorâmica13 conceitos
Níveis SAFe (do essencial ao full)
Conceitos-chave SAFe
PI Planning
ART (Agile Release Train) — "trem" de 50-125 pessoas alinhadas numa missão
RTE (Release Train Engineer) — Scrum Master do ART (nível de programa)
PO — no nível de time; PM (Product Manager) — no nível de programa
System Demo — demo integrada ao fim de cada iteração do PI
Inspect & Adapt (I&A) — retrospectiva do PI
Críticas ao SAFe
Muito prescritivo (contrário ao Manifesto?)
Reintroduz hierarquia
Certificações caras
Defensores respondem: "Ágil só na base não escala; precisa framework
▸Bloco 13 — LeSS (Large-Scale Scrum) — panorâmica12 conceitos
2 variantes
LeSS — (2-8 times, ~50 pessoas) — 1 PO, 1 Product Backlog, mesma Sprint
Princípios LeSS
1 Product Backlog — (não 1 por time!)
1 Product Owner — (mesmo com muitos times)
1 Definition of Done — compartilhada
1 Sprint sincronizada — todos os times começam/terminam junto
Sprint Review comum — todos os times apresentam juntos
Overall Retrospective — retro cross-team ao fim, complementar à retro de cada time
LeSS vs SAFe (contraste)
Papéis extra
Ideal para
▸Bloco 14 — User Story — INVEST + 3Cs + critérios de aceite7 conceitos
Formato clássico
INVEST (critérios de uma boa User Story — Bill Wake, 2003)
3Cs (Ron Jeffries)
Card** (Cartão)
Conversation** (Conversação)
Confirmation** (Confirmação)
Critérios de aceite — formato Gherkin (Given-When-Then)
▸Bloco 15 — Comparativo + armadilhas FGV típicas3 conceitos
Matriz frameworks/métodos
Armadilhas FGV recorrentes
Checklist mental antes de responder Ágil na prova
▸Ganchos pro dev sênior (JM)4 conceitos
JM já usa Scrum diariamente há anos
Diferenciar "Product Owner" da prática vs teórico
XP não é "extremo/exagerado" — é "levar boas práticas ao extremo" (frequência máxima)
Refinamento — ≠ evento. É atividade contínua (dedicar até ~10% da capacidade do time)
▸Próximo1 conceitos
Calibração 5q (conceitual) → FGV 7q (estilo prova) → migração 12q pro banco agil.yaml (12 → 24q)
▸28-requisitos146 conceitos · 0🟢 0🟡 0🟠 0🔴 146⚪
▸Bloco 1 — Requisitos Funcionais (RF) vs Não-Funcionais (RNF)14 conceitos
Requisitos Funcionais (RF)
O QUE o sistema DEVE FAZER — funcionalidades, comportamentos, serviços prestados
Descrevem **entradas, processamento e saídas
Requisitos Não-Funcionais (RNF)
COMO o sistema deve ser/se comportar — atributos de qualidade, restrições
Também chamados de atributos de qualidade ou **restrições
Classificação clássica de Sommerville para RNF
Requisitos de produto — desempenho, usabilidade, confiabilidade, portabilidade
Requisitos organizacionais — padrões de codificação, ambiente, processo
Requisitos externos — legais, éticos, interoperabilidade
Requisitos de domínio
Derivados do domínio da aplicação (não do usuário direto)
Ex.: "Cálculo de aposentadoria deve seguir Lei 8.213/1991
Podem ser funcionais (regra de cálculo) ou não-funcionais (conformidade legal)
▸Bloco 2 — ISO/IEC 25010 (SQuaRE) — modelo de qualidade8 conceitos
8 características principais de qualidade em uso do PRODUTO
ISO/IEC 25010:2023 — atualização
Safety — (Segurança contra danos físicos)
Interaction Capability — (renomeou Usability)
Flexibility — (Adaptability + Scalability + Installability + Replaceability agrupadas)
Comparativo com ISO/IEC 9126 (antiga)
ISO 9126 (2001, obsoleta)
Manutenibilidade
▸Bloco 3 — Elicitação de Requisitos (técnicas)11 conceitos
Técnicas principais (BABOK + Sommerville)
Workshop / JAD** (Joint Application Design/Development)
Observação** (etnografia)
Questionário / Survey
Análise de documentos
Casos de uso
Reverse engineering
Focus group
Stakeholder analysis
Identificar TODOS os interessados
Matriz poder × interesse (Mendelow): 4 quadrantes
▸Bloco 4 — Priorização de Requisitos14 conceitos
MoSCoW (mais cobrada em FGV)
M — ust have — obrigatório, sem ele o projeto falha
S — hould have — importante, mas se faltar tem workaround
C — ould have — desejável, agrega valor se sobrar tempo
W — on't have (this time) — decidido conscientemente pra NÃO fazer nesta versão
Kano Model
Must-be / Basic — se falta, cliente insatisfeito; se tem, não gera satisfação extra (higiênicos)
Performance / One-dimensional — quanto mais, mais satisfação (linear)
Attractive / Delight — se falta, cliente não sente; se tem, cliente encantado (diferenciais)
Indifferent — cliente não liga
Reverse — presença gera insatisfação
WSJF (Weighted Shortest Job First) — SAFe
Método de 100 dólares (100 dollar test)
Dot voting / Sticker voting
▸Bloco 5 — SRS (Software Requirements Specification) — IEEE 8309 conceitos
Estrutura recomendada
8 características de um bom requisito (IEEE 830)
Clear / Unambiguous
Verifiable / Testable
Ranked / Prioritizable
ISO/IEC/IEEE 29148:2018 (sucessora)
Integra terminologia com ISO/IEC 25010
Divide requisitos em
Ciclo de vida: elicitar → analisar → especificar → validar → gerenciar
▸Bloco 6 — Casos de Uso (Use Cases) — formalismo Cockburn15 conceitos
Estrutura de um caso de uso (Cockburn)
Ator primário
Stakeholders + interesses
Garantias mínimas** (fail guarantees)
Garantias de sucesso** (success guarantees)
Cenário principal de sucesso
Extensões / Fluxos alternativos
Notação UML
Ator — boneco
Caso de uso — elipse
Associação — linha simples entre ator e caso
<<include>> — caso B é obrigatoriamente incluído no A (reuso de comportamento comum)
Generalização — herança entre atores ou casos
Seta aponta de
Ponto de inserção
▸Bloco 7 — User Stories + INVEST + 3Cs + Formato Connextra6 conceitos
Formato Connextra (padrão)
INVEST (revisão)
3Cs (Ron Jeffries)
User Story vs Caso de Uso — comparativo FGV
Ideal para
Nem "melhor" nem "pior" — contexto define. FGV pode cobrar as duas
▸Bloco 8 — IFPUG / Análise de Pontos de Função (APF)5 conceitos
5 tipos de função (2 de dados + 3 transacionais)
Complexidade e pontos
RLR — (Registros Lógicos Referenciados)
DER — (Dados Elementares Referenciados)
Direção de dados: EE = entrando; SE/CE = saindo
▸Bloco 9 — PERT (Program Evaluation and Review Technique)9 conceitos
Fórmula de estimativa PERT (BETA-PERT)
O — = Otimista (melhor cenário — 1% de chance)
M — = Mais provável / Modo (Most likely)
P — = Pessimista (pior cenário — 1% de chance)
Desvio padrão
Exemplo cobrado em FGV
Te = (4 + 4×6 + 10) / 6 = **38/6 ≈ 6,33 dias
σ = (10 - 4)/6 = **1 dia
PERT vs CPM (Critical Path Method)
▸Bloco 10 — BABOK v3 — 6 áreas de conhecimento1 conceitos
6 áreas de conhecimento
▸Bloco 11 — Ciclo de vida da Engenharia de Requisitos13 conceitos
5 atividades clássicas (Sommerville / IEEE 29148)
Verificação — "estamos construindo o produto CORRETO?" (aderência à spec)
Validação — "estamos construindo o PRODUTO CORRETO?" (atende necessidade real)
Análise — atividades específicas
Classificação — funcional vs não-funcional, prioridade, fonte
Modelagem — casos de uso, diagramas de fluxo, DER, protótipos
Negociação — trade-offs entre stakeholders com conflitos
Priorização — MoSCoW, Kano, WSJF (Bloco 4)
Validação — técnicas
Revisão / Inspeção — walkthrough, revisão formal (Fagan)
Prototipagem — validar com uso simulado
Casos de teste de aceitação — derivados dos requisitos, validam se sistema real atende
Consistência automática — ferramentas verificam contradições, ambiguidade
▸Bloco 12 — Rastreabilidade (Traceability)9 conceitos
Forward** (pra frente)
Backward** (pra trás)
Matriz de rastreabilidade (RTM — Requirements Traceability Matrix)
Cobertura: todo requisito tem ao menos um teste
Impacto: mudar este requisito afeta o quê
Órfãos: existe código sem requisito de origem
CMMI e maturidade
CMMI-DEV nível 2 (Managed) requer rastreabilidade documentada
Sistemas críticos (aeroespacial, saúde, financeiro) exigem rastreabilidade rigorosa
▸Bloco 13 — Gestão de Mudanças de Requisitos9 conceitos
Change Control Board (CCB)
Processo de mudança
Requirements baseline — versão aprovada e congelada dos requisitos
Mudanças após baseline precisam passar pelo CCB
Sem baseline — = scope creep incontrolado
Scope Creep
Crescimento não controlado do escopo — inclusão de requisitos sem processo formal
Causa principal de estouro de prazo/orçamento
Combate: baseline formal + CCB + rastreabilidade
▸Bloco 14 — Requisitos em contextos ágeis15 conceitos
Requisitos emergentes
Product Backlog Item (PBI) — pode ser
User Story — (mais comum em times Scrum)
Bug / Defect
Spike — (investigação técnica timeboxed)
Enabler — (trabalho de arquitetura/infra que habilita features futuras — SAFe)
Épico — (User Story grande, precisa ser quebrada)
Feature — (agrupa User Stories relacionadas — SAFe)
Hierarquia SAFe
Estimativa em times ágeis
Story Points — (relativos, Fibonacci) — Ex 27
T-shirt sizes — (P, M, G, GG, XG) — mais grossa, menos precisa
Ideal days — quantos dias ininterruptos levaria (desconsidera interrupções)
NoEstimates — abordagem que dispensa estimativa formal, foca em fluxo (Kanban)
Refinamento (revisão do Ex 27)
▸Bloco 15 — Armadilhas FGV + Checklist Mental2 conceitos
Armadilhas recorrentes
Checklist mental antes de responder Requisitos
▸Ganchos pro dev sênior (JM)5 conceitos
JM tem intuição de "User Story" mas menos formalismo de "Caso de Uso Cockburn"
APF é conteúdo NOVO na intuição
PERT vs CPM — dev raramente usa; concurso cobra. Memorizar fórmula
BABOK — é tudo teoria — decorar as 6 áreas
Norma vs prática
▸Próximo1 conceitos
Calibração 5q (conceitual) → FGV 7q (estilo prova) → migração 12q pro banco requisitos.yaml (10 →…
▸29-arquitetura-pt1161 conceitos · 0🟢 0🟡 0🟠 0🔴 161⚪
▸Bloco 1 — Definição e escopo de "arquitetura de software"3 conceitos
Estilo arquitetural
Padrão arquitetural — = solução recorrente para problema recorrente (camadas, MVC, hexagonal, CQRS)
Padrão de projeto (design pattern)
▸Bloco 2 — Monolito (clássico)11 conceitos
Simplicidade de deploy (1 artefato)
Chamadas internas são in-process (sem latência de rede)
Debugging fácil (stack trace atravessa tudo)
Transações ACID triviais (1 BD)
Barato pra começar
Escala só verticalmente OU replicando o app inteiro (mesmo módulos que não precisam)
Acoplamento tende a crescer sem disciplina (virar "big ball of mud")
Deploy monolítico = qualquer mudança exige rebuild+redeploy total
Time único bloqueia — merge conflict, releases sincronizadas
Stack única (não dá pra usar Python numa parte e Java noutra)
Falha em módulo mata tudo (sem isolamento)
▸Bloco 3 — Monolito Modular (Modular Monolith)7 conceitos
Cada módulo tem schema/tabelas próprias (ou pelo menos convenção: nenhum outro módulo lê direto)
Comunicação entre módulos por interfaces públicas do módulo (API interna)
Dependências entre módulos são explícitas e acíclicas (não pode haver A→B→A)
Idealmente cada módulo poderia ser extraído pra serviço separado sem grande sofrimento
Preserva simplicidade operacional do monolito
Prepara migração pra microsserviços SE necessário (não precisa quebrar tudo cedo)
Evita "microsserviços prematuros" (que trazem complexidade sem benefício)
▸Bloco 4 — Microsserviços22 conceitos
Executável independente (processo próprio)
Deployável independentemente
Comunicando por rede (HTTP/REST, gRPC, mensageria)
Idealmente com BD próprio (Database per Service)
Ownership por time (um time = um ou poucos serviços)
Escala granular (só o serviço que precisa)
Deploy independente (times não bloqueiam uns aos outros)
Stack heterogênea (cada serviço na tech mais adequada)
Isolamento de falha (serviço A caído não derruba B)
Fácil substituir/reescrever serviço pequeno
Complexidade operacional gigante (deploy, monitoring, tracing, service discovery)
Latência de rede em toda chamada entre serviços
Transações distribuídas — são difíceis (ACID vira Saga, ver pt.2)
Consistência eventual (não imediata)
Debug distribuído (correlation IDs, distributed tracing tipo Jaeger/Zipkin)
Duplicação de código utilitário
Custo de infra maior (containers, orquestração)
Time grande o suficiente pra ter múltiplos times autônomos
Necessidade real de escala independente
CI/CD maduro (senão vira pesadelo de deploy)
Observabilidade robusta (logs centralizados, tracing distribuído)
Se falta qualquer um: fique no monolito modular
▸Bloco 5 — Arquitetura em Camadas (Layered / N-tier)9 conceitos
Camada N chama camada N-1 (dependência descendente)
Camada N NÃO conhece camada N+1 (upper layers desconhecidas)
Camada N NÃO pula pra N-2 (regra "strict layered"); versão "relaxed" permite pular
Separação de responsabilidades clara
Fácil de ensinar, dominante em enterprise
Troca de camada isolada (mudar BD sem mexer em apresentação)
Vira "arquitetura anêmica" facilmente (regras vazam pra services)
Dependência da infra "empurra pra cima" (repositório dita como o domínio pensa)
Não dá bem com múltiplos canais de entrada (web + API + fila)
▸Bloco 6 — Arquitetura Hexagonal (Ports & Adapters)13 conceitos
Núcleo (Application/Domain):
Portas (Ports): — interfaces que o núcleo expõe (ou consome)
Adaptadores (Adapters)
Testabilidade: — domínio testado sem infra (mocks/fakes nas portas de saída)
Trocar tecnologia é trivial: — trocar Postgres por Mongo = escrever novo adaptador
Múltiplos canais de entrada — naturalmente suportados
Domínio protegido de frameworks (não "vaza" Spring/Django no core)
Overhead pra sistemas pequenos (muita interface pra pouco código)
Time precisa entender o padrão (curva de aprendizado)
Boilerplate (interface + implementação + factory/injeção)
Onion Architecture — (Jeffrey Palermo, 2008) — variação com camadas concêntricas, mesmo princípio
Clean Architecture — (Uncle Bob Martin, 2012) — outra variação, mesma essência
Todas seguem a Dependency Rule: dependências apontam pra dentro (pro domínio), nunca pra fora
▸Bloco 7 — Domain-Driven Design (DDD) — fundamentos23 conceitos
Conceitos estratégicos (macro)
Vocabulário compartilhado entre devs e negócio
Mesmo termo tem mesmo significado no código e na conversa
Se o negócio diz "pedido", o código tem Pedido, não Order
Fronteira explícita — onde um modelo/linguagem tem coerência
Cliente" no contexto de Vendas ≠ "Cliente" no contexto de Cobrança
Cada bounded context tem seu próprio modelo — não force um modelo universal
Diagrama que mostra como bounded contexts se relacionam
Tipos de relação
Camada de tradução entre bounded contexts que traduz e protege o modelo do contexto atual de "c…
Conceitos táticos (micro — dentro de um bounded context)
Value Object
Aggregate Root
Domain Service
Domain Event
Referências entre aggregates = só por ID (nunca objeto direto)
Uma transação = um aggregate (regra de Vaughn Vernon "Effective Aggregate Design")
Consistência dentro do aggregate = imediata; entre aggregates = **eventual
Entity — tem identidade (2 Pedidos com mesmos itens são pedidos DIFERENTES)
Relação DDD ↔ Microsserviços
Bounded Context é o candidato natural a virar microsserviço
Um microsserviço = um bounded context" é heurística comum (não regra absoluta)
DDD forneceu vocabulário estratégico que a comunidade de microsserviços adotou
▸Bloco 8 — Comparativo dos estilos7 conceitos
Base de dados
Stack tecnológica
Complexidade operacional
Times independentes
Transações ACID
Custo inicial
Custo pra evoluir sem disciplina
▸Bloco 9 — Estilos arquiteturais adicionais (menos cobrados mas úteis)22 conceitos
Cliente-Servidor
Estilo mais básico: cliente pede, servidor responde
Pode ser 2-tier (cliente + BD) ou N-tier (com servidores intermediários)
Pipes and Filters
Dados fluem através de sequência de transformações (filtros)
Cada filtro é independente, comunica via pipes (streams)
Ex: pipeline Unix (cat file | grep foo | sort | uniq), pipelines de ETL, compiladores
Event-Driven (pt.2 aprofunda)
Componentes se comunicam via eventos assíncronos
Producer emite, broker distribui, consumers reagem
Alto desacoplamento
Service-Oriented Architecture (SOA)
Precursor de microsserviços (anos 2000)
Serviços grandes, ESB centralizado, WS-* / SOAP
Governança pesada, contratos formais
P2P (Peer-to-Peer)
Sem servidor central, cada nó é cliente e servidor
Ex: BitTorrent, blockchain, IPFS
Serverless / FaaS
Funções pequenas, sem servidor gerenciado pelo dev, execução por evento
Ex: AWS Lambda, Azure Functions, GCP Cloud Functions
Autoescala, paga pelo uso, cold start é gotcha
▸Bloco 10 — Padrões arquiteturais dentro dos estilos15 conceitos
MVC (Model-View-Controller)
Model — = dados + regras
View — = renderização
Controller — = recebe input, orquestra
Origem Smalltalk (1979); usado em frameworks web (Rails, Spring MVC, Django)
MVP (Model-View-Presenter)
Variação: View passiva, Presenter faz binding manual
Comum em UI desktop e mobile
MVVM (Model-View-ViewModel)
View faz data binding com ViewModel (automatic)
Angular, WPF, SwiftUI
Broker centraliza roteamento de mensagens entre clientes e servidores
Ex: RabbitMQ, ActiveMQ (pt.2)
Componentes compartilham conhecimento numa "lousa" comum
Usado em IA, sistemas de reconhecimento de voz
▸Bloco 11 — Qualidade arquitetural (atributos não-funcionais)12 conceitos
Performance — latência, throughput
Escalabilidade — horizontal (adicionar máquinas) vs vertical (máquina maior)
Disponibilidade — % de uptime (99,9% = "3 noves")
Segurança — confidencialidade, integridade, autenticação, autorização
Manutenibilidade — facilidade de mudar
Portabilidade — rodar em ambientes diferentes
Testabilidade — facilidade de escrever/executar testes
Observabilidade — logs, métricas, traces (não está na ISO 25010 clássica, mas é padrão SRE)
Escalabilidade horizontal ↑ → consistência forte ↓ (CAP theorem, pt.2)
Desacoplamento ↑ → latência ↑ (chamadas de rede)
Flexibilidade ↑ (muitas abstrações) → simplicidade ↓
Performance ↑ (cache, denormalização) → complexidade de invalidação ↑
▸Bloco 12 — Teorema CAP (breve, aprofundado em pt.2)6 conceitos
C — onsistency — todos os nós veem o mesmo dado ao mesmo tempo
A — vailability — sistema sempre responde
P — artition tolerance — funciona apesar de falhas de rede
Bancos SQL tradicionais → CP
DynamoDB, Cassandra, Riak → AP
MongoDB, ZooKeeper → configurável
▸Bloco 13 — Anti-padrões clássicos6 conceitos
Big Ball of Mud
Distributed Monolith
Vendor Lock-in
Chatty Interface
Anemic Domain Model
Golden Hammer
▸Ganchos pro JM5 conceitos
Sua experiência em Laravel/Django/FastAPI já é MVC + camadas
DDD é onde a maioria dos devs trava porque parece abstrato
Alter/Lumiz/EmiteAPI
Hexagonal + DDD é o combo que empresas maduras usam (Nubank, Zup) — vale saber
FGV ama distinção Entity × VO e "smart endpoints, dumb pipes" (microsserviços × SOA)
▸30-arquitetura-pt2196 conceitos · 0🟢 0🟡 0🟠 0🔴 196⚪
▸Bloco 1 — Arquitetura Event-Driven (EDA)17 conceitos
Producer / Publisher — emite eventos (ex: PedidoConfirmado)
Broker / Message Bus — recebe, armazena, distribui (RabbitMQ, Kafka, ActiveMQ, SNS/SQS)
Consumer / Subscriber — reage aos eventos
Choreography (coreografia)
Orchestration (orquestração)
Desacoplamento temporal — producer não espera consumer estar vivo
Desacoplamento espacial — producer não conhece consumers
Escala independente — consumer lento não trava producer
Múltiplos consumers — mesmo evento consumido por N serviços (auditoria, notificação, analytics)
Resiliência — broker segura mensagem se consumer cair
Consistência eventual — resultado propaga em N ms
Debug difícil — fluxo não é linear, precisa de tracing distribuído
Ordenação de eventos — não é trivial (ver Kafka partitions)
Duplicação — mensagem pode chegar 2x (idempotência obrigatória)
Event — fato passado, imutável (PedidoConfirmado) — pode ter N consumers
Command — ordem imperativa (ConfirmarPedido) — 1 handler específico
Query — pergunta sem efeito colateral (BuscarPedido) — retorna dado
▸Bloco 2 — Mensageria — modelos e garantias18 conceitos
1 mensagem → 1 consumer (competing consumers para escala)
Ex: PedidoParaProcessar na fila pedidos.processar, N workers, cada msg vai pra 1
RabbitMQ default, ActiveMQ, SQS
1 mensagem → N subscribers
Ex: PedidoConfirmado publicado, notificação + BI + estoque consomem cada um
Kafka topics, RabbitMQ exchange fanout, SNS
Log distribuído append-only, particionado
Consumer groups = balanceamento entre workers do mesmo grupo
Retenção configurável (não some após consumir — reprocessável)
Ordem garantida por partição, não globalmente
Alta vazão, throughput altíssimo (Netflix, Uber, LinkedIn origem)
Broker AMQP tradicional
Exchange (direct, fanout, topic, headers) → Queue → Consumer
Push model (broker empurra); DLQ nativa; retry com delays
Baixa latência por mensagem, ótimo para RPC assíncrono
Garantias de entrega
Dead Letter Queue (DLQ)
Outbox Pattern (transactional outbox)
▸Bloco 3 — CQRS (Command Query Responsibility Segregation)11 conceitos
Command side (write)
Query side (read)
Sincronização — quando write muda, dispara evento; read side atualiza sua projeção
CQRS simples
CQRS com BD separado
Escala leitura e escrita independente (95% dos apps leem muito mais que escrevem)
Cada lado otimizado pro seu caso (write=integridade, read=performance)
Combina naturalmente com Event Sourcing (write emite eventos, read reconstrói)
Complexidade grande — 2 modelos, sincronização, consistência eventual
Overkill — pra CRUD simples
Time precisa de maturidade
▸Bloco 4 — Event Sourcing8 conceitos
Auditoria natural — todo histórico está lá
Time travel — reconstruir estado em qualquer ponto do passado
Combina com CQRS — write side grava eventos, read side monta projeções
Debug — replay do bug em dev
Schema evolution — de eventos é doloroso (evento imutável, mas versão do schema muda)
Consultas ad-hoc — exigem projeções pré-construídas (queries no event log são caras)
Snapshots — necessários pra performance (não replay do zero sempre)
Mudança mental grande pro time
▸Bloco 5 — Saga Pattern (transações distribuídas)13 conceitos
Dois estilos
Cada serviço emite evento; próximo serviço reage
Sem coordenador central
Simples pra fluxos curtos; caos pra fluxos longos
Ex: PedidoCriado → Estoque reage → emite EstoqueReservado → Pagamento reage →
Um orquestrador (Saga Coordinator) chama cada serviço em ordem, decide compensações
Fluxo explícito, fácil de visualizar/debugar
Central de falha (mas pode ser stateful e resiliente)
Ex: SagaCheckout chama Pedido, Estoque, Pagamento; se Pagamento falha, chama compensações
Compensating Transaction
NÃO é rollback ACID
Semânticas de negócio
Precisa ser **idempotente
▸Bloco 6 — API Gateway17 conceitos
Routing — /pedidos/ → serviço-pedido, /pagamentos/ → serviço-pag
Auth / AuthZ — validar JWT/OAuth, injetar identidade downstream
Rate limiting — throttling por cliente/rota
Request/response transformation — normalizar formatos, filtrar campos
Aggregation — combinar chamadas de N backends numa resposta única
SSL termination — HTTPS no gateway, HTTP interno
Logging / observability — ponto único pra métricas de entrada
Cache — respostas cacheáveis
Kong, Traefik, AWS API Gateway, Google Apigee
Spring Cloud Gateway (Java, Spring ecosystem)
Netflix Zuul (histórico, aposentado em favor do Gateway reactivo)
KrakenD, Tyk
Variação do API Gateway: um gateway por tipo de cliente (mobile, web, IoT)
Cada BFF otimizado pro cliente (dados/latência)
Origem SoundCloud (2015)
API Gateway — = ponto de entrada externo (norte-sul)
Service Mesh — = comunicação interna entre serviços (leste-oeste)
▸Bloco 7 — Service Mesh14 conceitos
Data plane — os sidecars (tipicamente Envoy) que interceptam tráfego
Control plane — orquestra configuração, políticas, telemetria (ex: Istiod no Istio)
mTLS — criptografia mútua entre serviços, sem código
Traffic management — canary release, blue/green, weighted routing, mirroring
Resilience — retry, timeout, circuit breaker declarativos
Observability — traces distribuídos, métricas de latência/erro sem instrumentar o código
Security policy — quem pode chamar quem (AuthorizationPolicy)
Rate limiting — interno
Istio — (Google/IBM/Lyft) — mais completo, mais complexo
Linkerd — (Buoyant) — mais simples, focado em Kubernetes
Consul Connect — (HashiCorp)
AWS App Mesh
Ganha: código do serviço fica limpo (só lógica de negócio)
Perde: complexidade operacional gigante (control plane, versões de sidecar, debug em 2 processos)
▸Bloco 8 — Patterns de Resiliência (Release It! — Nygard)23 conceitos
Circuit Breaker
Análogo ao disjuntor elétrico
Evita cascata — serviço fora do ar deixa de consumir threads da aplicação chamadora
Bibliotecas: Resilience4j (Java, sucessor Hystrix), Polly (.NET)
Tenta novamente após falha transiente
Exponential backoff — espera crescente entre tentativas (1s, 2s, 4s...)
Idempotência obrigatória — retry num POST não-idempotente cria duplicata
Toda chamada externa DEVE ter timeout
Evita threads bloqueadas indefinidamente
Regra da propagação: — timeout do chamador ≥ soma dos timeouts dos chamados
Bulkhead (anteparo)
Isola recursos: 1 pool de threads/conexões por dependência externa
Falha numa dependência não consome todo o pool geral
Analogia: compartimentos estanques de navio
Rate Limiter / Throttling
Limita chamadas por unidade de tempo
Protege serviço de sobrecarga (self-preservation)
Client-side (evita esgotar cota) ou server-side (protege servidor)
Se dependência falha, retornar valor default/cache/degradado
Exemplo: "recomendações" falhou → retorna lista genérica; não quebra a tela
Consumer sinaliza pro producer "estou lento, diminui
Reactive Streams (Java, RxJava, Reactor) implementa como spec
Sem backpressure: producer overwhelmes consumer → OOM
▸Bloco 9 — Idempotência10 conceitos
Retry pode chegar 2x
At-least-once delivery duplica
Cliente pode re-enviar por rede lenta
GET, HEAD, PUT, DELETE, OPTIONS, TRACE — idempotentes por spec
POST, PATCH — não-idempotentes por spec (embora PATCH possa ser projetado idempotente)
Idempotency-Key header
Chave natural — se dá pra deduplicar pelo dado (email único), rejeitar duplicata
Guardar message_id já processado (Redis, tabela processed_messages)
Antes de processar, checar se já foi processado
Combinado com at-least-once = exactly-once semântico
▸Bloco 10 — Escalabilidade — vertical vs horizontal11 conceitos
Máquina maior (CPU, RAM)
Simples, sem mudança de código
Limite físico e caro (dobrar CPU ≠ dobrar preço)
Single point of failure
Mais máquinas iguais, load balancer distribui
Escala teoricamente infinita
Exige stateless (ou state externalizado)
Complexidade: sync de sessão, cache distribuído, discovery
L4 (transporte, TCP) — rápido, sem visão HTTP
L7 (aplicação, HTTP) — pode rotear por path/header, mais features
Algoritmos: round-robin, least connections, IP hash (sticky), weighted
▸Bloco 11 — Padrões de consistência14 conceitos
Todo cliente vê o dado atualizado imediatamente após commit
Custo: coordenação (locks, 2PC) — não escala em WAN
Após parar de escrever, todas as réplicas convergem "eventualmente" (ms a segundos)
Escala; aceita janela de inconsistência
Padrão em NoSQL distribuído (Cassandra, Dynamo, Riak)
Garantia mais fraca
Comum em social feeds
Uma vez que cliente vê dado versão N, nunca vê versão < N depois
Se A causou B, todos veem A antes de B
CAP: em partição, escolhe C ou A
PACELC (Abadi, 2010): sem partição (Else), escolhe Latency ou Consistency
Ex: Cassandra = PA/EL (aceita eventual sempre, otimiza latência)
Ex: MongoDB = PA/EC (aceita eventual em partição, prefere consistência sem partição)
Ex: HBase = PC/EC (sempre prefere consistência)
▸Bloco 12 — Padrões complementares (frequentes na prova)26 conceitos
Strangler Fig (Strangler Pattern) — Fowler
Estratégia de migração gradual de legado
Novo sistema cresce em volta do velho, interceptando funcionalidades uma a uma
Analogia: figueira mata árvore lentamente
Um proxy/gateway roteia partes pro novo, resto pro legado
Sem big bang rewrite
Backends for Frontends (BFF)
1 backend por tipo de cliente (mobile, web, TV)
Cada BFF otimizado pra necessidades do cliente
SoundCloud, Netflix originaram
Sidecar Pattern (não confundir com Service Mesh)
Processo auxiliar deployado junto ao serviço (mesmo pod K8s)
Faz cross-cutting: logging, config reload, proxy
Service Mesh — = um caso especial de sidecar (proxy Envoy)
Sidecar como padrão geral existe antes do mesh
Ambassador Pattern
Sidecar que atua como proxy PARA fora (chamadas do serviço → dependência externa)
Encapsula retry, timeout, transformação
Simplifica código do serviço
Anti-corruption Layer (ACL) — visto no pt.1
Camada tradutora entre bounded contexts ou entre novo × legado
Aparece de novo aqui porque é aliado do Strangler
Materialized View / Read Model
View pré-computada pra query rápida
Atualiza via evento quando dado muda
Aparece com CQRS
▸Bloco 13 — Deploy patterns (bônus, aparece raramente)5 conceitos
2 ambientes idênticos (blue = atual, green = novo). Chaveia LB. Rollback = trocar de volta
Deploy pra % pequena de tráfego (5%, 20%, 100%). Observa métricas antes de aumentar
Substitui instâncias uma por uma (default K8s Deployment)
Feature Flag / Toggle
Código novo em produção mas escondido atrás de flag. Ativação separada de deploy
▸Bloco 14 — Anti-padrões avançados7 conceitos
Distributed Monolith
God Gateway
Chatty microservices
Shared Database
Sync everywhere
Missing observability
Pet servers
▸Ganchos pro JM2 conceitos
aastera-connect
CAP você já sabe — do pt.1; PACELC é o próximo nível — decorar "L ou C else (sem partição)"
▸31-frontend188 conceitos · 0🟢 0🟡 0🟠 0🔴 188⚪
▸Bloco 1 — SPA vs MPA (definições e trade-offs)18 conceitos
MPA (Multi-Page Application) — modelo clássico
Cada navegação = request completo ao servidor → HTML novo
Server-rendered (JSP, JSF, Rails, Django templates, PHP)
Simples, SEO natural, primeiro carregamento rápido
Navegação interna lenta (page reload full)
SPA (Single-Page Application) — carrega 1 vez, JS assume
Primeiro request retorna HTML "casca" + bundle JS
JS controla roteamento (History API), busca dados via fetch/AJAX
Navegação interna sem reload = UX fluida
Primeiro carregamento pesado (bundle grande), SEO desafio (crawler precisa executar JS)
Frameworks: React, Vue, Angular, Svelte
SSR (Server-Side Rendering)
SSG (Static Site Generation) — HTML pré-gerado em build, servido de CDN (Gatsby, Next.js SSG, Astro)
ISR (Incremental Static Regeneration) — SSG que se atualiza sob demanda (Next.js)
Islands Architecture — HTML estático + "ilhas" de JS interativo (Astro, Fresh)
Blog/marketing/docs → SSG (rápido, SEO, barato)
Painel administrativo interno → SPA (interatividade máxima, SEO irrelevante)
E-commerce/portal público → SSR (SEO + interatividade)
▸Bloco 2 — Vue.js10 conceitos
Single File Component (SFC) — arquivo .vue com <template>, <script>, <style scoped>
Reactive data — mudança em data re-renderiza automaticamente (proxy-based no Vue 3)
Diretivas — v-if, v-for, v-model, v-on:click (@click), v-bind:href (:href)
Composition API
Options API
Two-way binding — com v-model (açúcar sintático de :value + @input)
Vue Router — SPA routing
Pinia — state management (sucessor do Vuex)
Vite — build tool default (criado por Evan You também)
Nuxt — meta-framework SSR/SSG (equivalente ao Next.js do React)
▸Bloco 3 — Angular11 conceitos
AngularJS (1.x) — deprecated. Não confundir com Angular moderno
Angular (2+) — framework completo (não biblioteca; opinionado; tudo incluso)
TypeScript — obrigatório
Módulos NgModule — organizam a app (Angular 14+ pode ir standalone components sem NgModules)
Components — com @Component({ selector, template, styles })
Directives — estruturais (ngIf, ngFor) e de atributo (ngClass, ngStyle)
Services + Dependency Injection — DI nativa e forte (annotations @Injectable())
RxJS Observables — coração da comunicação assíncrona (não Promises)
Angular CLI — (ng generate, ng build, ng test) — ferramenta oficial pesada
Change detection — por zonas (Zone.js) ou zoneless (17+)
Angular Router
▸Bloco 4 — React10 conceitos
Componentes funcionais — com Hooks (padrão moderno, desde 2019 · React 16.8)
JSX — sintaxe HTML-in-JS (return <div>{count}</div>)
Virtual DOM — árvore in-memory, diff antes de mexer no DOM real
One-way data flow — props descem, eventos sobem (não tem two-way binding nativo tipo Vue)
Class components — legado ainda em código antigo; novo código = funcional + hooks
Server Components (React 18+) — renderização no servidor, zero JS pro cliente (Next.js App Router)
Routing: React Router, **TanStack Router
State: Redux Toolkit, Zustand, Jotai, TanStack Query (server state)
Forms: React Hook Form, **Formik
Meta-framework SSR/SSG: Next.js (o padrão de facto), Remix, **Gatsby
▸Bloco 5 — Comparativo Vue × Angular × React8 conceitos
Sintaxe UI
Data binding
Estado global
SSR meta-fw
Empresas típicas
Time novato + preciso entregar rápido → **Vue
Time grande + longa manutenção + tudo padronizado → **Angular
Máxima flexibilidade + ecossistema gigante + montar stack → **React
▸Bloco 6 — SSR / CSR / SSG / ISR28 conceitos
CSR (Client-Side Rendering) — SPA clássica
HTML mínimo + bundle JS → cliente renderiza tudo
Primeiro carregamento lento; navegação interna rápida
SEO custa esforço (SSR fallback, prerender, hydration)
SSR (Server-Side Rendering) — HTML pronto do servidor
Servidor executa framework, renderiza HTML, envia pronto
Cliente "hidrata" o HTML (attach de event listeners)
FCP/LCP melhores; SEO natural
Custo: servidor renderiza cada request (cache ajuda)
Ferramentas: Next.js (React), Nuxt (Vue), **Angular Universal
SSG (Static Site Generation) — HTML em build time
Toda página gerada uma vez no deploy
Servido de CDN (S3, Cloudflare, Netlify)
Rapidíssimo, escala infinitamente, barato
Custo: rebuild pra atualizar conteúdo (build de 10k páginas pode levar minutos)
Ferramentas: Gatsby, Astro, Next.js SSG, Hugo, **Jekyll
ISR (Incremental Static Regeneration) — meio-termo
SSG que re-gera páginas sob demanda em background
Cliente vê versão cached, próxima request pega a nova
Next.js originou esse modelo
Islands Architecture — HTML estático + "ilhas" de JS
Página é HTML servido do CDN; componentes interativos são "ilhas" que hidratam separadamente
Reduz JS drasticamente pro cliente
Ferramentas: Astro (líder), Fresh (Deno), **Marko
Conteúdo raramente muda + SEO → SSG (blog, docs, marketing)
Conteúdo dinâmico + SEO → SSR (e-commerce, portal)
Dashboard atrás de login → CSR (SEO irrelevante)
Marketing com pouco JS → Islands (Astro)
▸Bloco 7 — PWA (Progressive Web App)12 conceitos
Cache First — offline-first (assets estáticos)
Network First — fresh-first, cache como fallback (dados dinâmicos)
Stale While Revalidate — cache imediato + atualiza em background
Network Only — / Cache Only — nunca cache / só cache
install — cache inicial de assets
activate — limpa caches antigos
fetch — intercepta cada request
Só assume controle após reload da página — (ou clients.claim())
Push Notifications — (via Push API + Service Worker)
Background Sync — retry fila de requests quando volta a rede
Web Share API — compartilhar com apps nativos
File System Access API — ler/escrever arquivos locais (Chrome only)
▸Bloco 8 — Cookies + CORS13 conceitos
Cookies (RFC 6265 + 6265bis)
Secure — só transmitido em HTTPS
SameSite — controla envio em requisições cross-site (CSRF defense)
Domain — a que domínio pertence; sem prefixo . = só o host exato
Path — só envia em URLs sob esse path
Max-Age — ou Expires — TTL; sem = session cookie (some ao fechar navegador)
CORS (Cross-Origin Resource Sharing)
Browser envia OPTIONS antes do request real
Servidor responde autorizando
Só então browser envia o PUT real
Cliente: fetch(url, { credentials: 'include' })
Servidor: Access-Control-Allow-Credentials: true
Origin NÃO pode ser * — tem que ser explícito
▸Bloco 9 — CSP + SRI + Mixed Content11 conceitos
CSP (Content Security Policy)
default-src — fallback pra todas as outras
script-src — origens permitidas pra <script>
style-src — origens pra <style> e stylesheets
img-src / font-src / connect-src — imagens / fontes / fetch/XHR
frame-ancestors 'none'
Nonce — ou hash — permitir script inline específico sem 'unsafe-inline'
SRI (Subresource Integrity)
Mixed Content
Passivo (imagem, vídeo) — carrega mas alerta no console
Ativo (JS, CSS, iframe, XHR) — **bloqueia
▸Bloco 10 — Web Storage: Cookie vs localStorage vs sessionStorage vs IndexedDB2 conceitos
JS malicioso (XSS) lê localStorage.getItem('token') trivial
Cookie HttpOnly é infinitamente melhor pra auth (mas exige CSRF defense)
▸Bloco 11 — Web APIs modernas18 conceitos
Service Worker
Web Workers
Handshake HTTP inicial (Upgrade: websocket), depois protocolo binário próprio
Ambos lados podem enviar sem espera
Usado em: chat, notificação real-time, jogos multiplayer, colaboração ao vivo
Server-Sent Events (SSE)
Servidor mantém conexão HTTP aberta e envia data: xxx\n\n
Reconexão automática, Last-Event-ID header, sem lidar com protocolo binário
Mais simples que WebSocket quando só precisa broadcasting servidor→cliente (feed, notificação)
Precisa bidirecional (chat) → **WebSocket
Só empurra do servidor (feed) → **SSE
res.ok é true pra status 200-299
Erro de rede rejeita a Promise; erro HTTP (404, 500) NÃO rejeita (res.ok === false)
Suporta streams, abort via AbortController
History API
history.pushState(state, '', '/nova-url') — muda URL sem carregar
history.replaceState(...) — troca sem adicionar ao histórico
window.onpopstate — botão voltar/avançar
▸Bloco 12 — Web Vitals + Performance15 conceitos
LCP** (Largest Contentful Paint)
INP** (Interaction to Next Paint)
CLS** (Cumulative Layout Shift)
FCP — (First Contentful Paint) — primeiro pixel renderizado
TTFB — (Time to First Byte) — servidor respondeu o HTML
TTI — (Time to Interactive) — página respondendo a input
TBT — (Total Blocking Time) — soma de main thread bloqueada
Code splitting — bundle dividido em chunks, carrega sob demanda (React.lazy, import())
Lazy loading — <img loading="lazy">, <iframe loading="lazy">
Preload / Preconnect — <link rel="preload">, <link rel="preconnect"> pra recursos críticos
Tree shaking — bundler remove código não usado (ES modules necessário)
Compression — Brotli (melhor que gzip pra texto)
HTTP/2 e HTTP/3 — multiplexing, sem head-of-line blocking
Image formats — WebP, AVIF (30-50% menores que JPEG)
content-visibility: auto — CSS moderno que pula render de off-screen
▸Bloco 13 — HTML5 semântico + a11y (WAI-ARIA)19 conceitos
Tags semânticas HTML5
<header>, <footer>, <nav>, <main> (só UM por página), <section>, <article>, <aside>
<figure> + <figcaption>, <time datetime="2026-08-19">
<details> + <summary> — accordion nativo
<dialog> + .showModal() — modal nativo
WAI-ARIA (Web Accessibility Initiative — Accessible Rich Internet Applications)
role="button|dialog|menu|tab|listbox|..." — quando semântica HTML não cobre
aria-label="Fechar" — texto acessível quando não há texto visível
aria-labelledby="id" — referencia texto de outro elemento como label
aria-describedby="id" — descrição adicional
aria-hidden="true" — esconde de leitores de tela
aria-live="polite|assertive" — anuncia mudanças dinâmicas (chat, notificação)
aria-expanded="true|false" — estado de accordion/dropdown
aria-current="page|step" — item atual em navegação
WCAG (Web Content Accessibility Guidelines) — 4 princípios (POUR)
P — erceivable — texto alt em imagem, contraste, legendas em vídeo
O — perable — navegável por teclado, sem armadilha de foco
U — nderstandable — linguagem clara, mensagens de erro específicas
R — obust — funciona em tecnologias assistivas
▸Bloco 14 — CSS moderno9 conceitos
Menu horizontal, alinhar botões numa linha → **Flexbox
Layout de página inteira (header/sidebar/main/footer) → **Grid
Coexistem — Grid pra macro, Flex pra micro
Custom Properties (variáveis CSS)
Herdadas pela árvore (diferente de vars do preprocessador SASS/LESS)
Mudam em runtime (JS: element.style.setProperty('--cor-primary', 'red'))
Base pra dark mode dinâmico
Container Queries (2023)
:has() — parent selector (2023)
▸Ganchos pro JM4 conceitos
MandaAí — (Flutter) tem BFF pattern (delivery + web) — cai perfeitamente aqui
Aastera Connect / Skynet ERP
Alter Copilot
CSP + CORS — são armadilha certa em prova de nível superior — decorar preflight OPTIONS
▸3️⃣Tier 3 — Dev específicoJava/Spring/JEE4 temas · 20 tópicos
▸Java moderno2 tópicos
▸09-generics26 conceitos · 0🟢 0🟡 0🟠 0🔴 26⚪
▸Bloco 2 — Sintaxe básica: classes e interfaces genéricas3 conceitos
S, U, V
Type parameter (parâmetro de tipo) — o <T> na DECLARAÇÃO da classe
Type argument (argumento de tipo) — o <String> na INSTANCIAÇÃO/uso
▸Bloco 5 — Wildcards: `?`, `? extends T`, `? super T`4 conceitos
List<? extends T>
List<? super T>
Type parameter <T>
Wildcard ? — quando o tipo é usado UMA VEZ, é anônimo, você não precisa nomear
▸Bloco 6 — PECS: Producer Extends, Consumer Super (Joshua Bloch)7 conceitos
Se o parâmetro PRODUZ valores de T (você lê T dele) → ? extends T
Se o parâmetro CONSOME valores de T (você escreve T nele) → ? super T
Se AMBOS (lê e escreve) → tipo exato T sem wildcard
Método que só percorre a lista pra somar/imprimir
Método que só adiciona à lista
Método que lê E escreve
Método que aceita "qualquer coisa
▸Bloco 10 — Arrays vs Generics: por que não convivem2 conceitos
Reificação em runtime
Verificação de tipo em escrita
▸Bloco 11 — Raw types (legado) e unchecked warnings2 conceitos
List (raw)
List<?> (wildcard)
▸Bloco 12 — Heap pollution3 conceitos
Nunca misturar raw type com generic
Se precisar de varargs genérico, use @SafeVarargs e certifique-se de NÃO escrever no array e NÃO…
Prefira coleções (List<T>) a arrays quando o tipo é genérico
▸Ganchos pro JM5 conceitos
Você já USA generics todo dia em Java
PECS é a única sigla que precisa MEMORIZAR
FGV ama as proibições da erasure
Se cair questão de código longo, procure o wildcard e aplique PECS mentalmente antes de olhar as al…
Bridge methods e heap pollution são conteúdo de "cauda
▸10-java-funcional-streams-lambda111 conceitos · 0🟢 0🟡 0🟠 0🔴 111⚪
▸Bloco 2 — Lambda expressions — sintaxe9 conceitos
Sem parâmetros
Um parâmetro (sem parênteses)
Múltiplos parâmetros
Corpo com bloco
Target typing
Variável local: precisa ser effectively final (Java 8+)
Variável de instância (campo): sem restrição (pode ser mutável)
Variável estática (static field): sem restrição
this dentro
▸Bloco 3 — Functional interfaces (`java.util.function`)14 conceitos
Function<T,R>
BiFunction<T,U,R> — apply(T, U) retorna R
BiPredicate<T,U> — test(T, U) retorna boolean
BiConsumer<T,U> — accept(T, U) sem retorno
(Não há BiSupplier — sem entradas, faria contra a semântica.)
UnaryOperator<T> extends Function<T,T> — ex.: x -> x * 2
BinaryOperator<T> extends BiFunction<T,T,T> — ex.: (a,b) -> a + b (usada em reduce)
IntFunction<R>, IntPredicate, IntConsumer, IntSupplier, IntUnaryOperator, `IntBinaryOpera…
ToIntFunction<T> — int applyAsInt(T t) — converte objeto em primitivo int
Idem para Long e Double
Runnable — void run()
Callable<V> — V call() throws Exception
Comparator<T> — int compare(T a, T b) (sim, tem 1 abstrato + N default/static desde Java 8)
ActionListener (Swing), Runnable (Thread)
▸Bloco 4 — Method references (os 4 tipos)6 conceitos
Método estático
Método de instância de OBJETO específico
Método de instância de TIPO arbitrário
Quando precisa transformar o argumento antes de passar: x -> foo(x + 1) — não vira Foo::foo
Quando a lambda captura variável local: x -> foo(x, base) — precisa manter lambda
Quando o método retorna void mas o functional interface espera return: contexto muda
▸Bloco 5 — Optional (o antídoto contra `NullPointerException`)7 conceitos
Optional.of(x)
Optional.empty()
Optional.ofNullable(x)
SIM: como TIPO DE RETORNO de método que pode não ter valor a devolver
NÃO: como campo de entidade (não implementa Serializable — quebra serialização)
NÃO: como parâmetro de método (força o caller a wrappar — anti-padrão)
NÃO: como valor em Collection (use empty collection)
▸Bloco 6 — Stream API — arquitetura22 conceitos
NÃO armazena dados — flui de uma fonte
É consumido UMA vez (tenta usar de novo = IllegalStateException)
É funcional (sem side effect nas operações intermediárias)
É lazy (operações intermediárias não executam até um terminal chamar)
filter(Predicate)
map(Function)
flatMap(Function)
sorted() / sorted(Comparator)
peek(Consumer)
takeWhile(Predicate)
dropWhile(Predicate)
mapToInt/Long/Double
forEach(Consumer) / forEachOrdered(Consumer)
toArray() / toArray(IntFunction)
collect(Collector)
toList() (Java 16+)
min(Comparator) / max(Comparator)
findFirst() / findAny()
anyMatch/allMatch/noneMatch(Predicate)
Ordered × unordered: streams de List são ordered; de HashSet, unordered
Sequential × parallel: .parallel() alterna
Stateful × stateless
▸Bloco 7 — Collectors (`java.util.stream.Collectors`)8 conceitos
summingInt(ToIntFunction)
averagingInt(ToIntFunction)
summarizingInt(ToIntFunction)
minBy(Comparator) / maxBy(Comparator)
reducing(...)
teeing (Java 12+) — combina 2 collectors em um resultado
Permite null
Introduzido em
▸Bloco 8 — reduce × collect (a operação de dobra)4 conceitos
Reduzir a UM valor imutável (soma, produto, max)
Acumular em container mutável (List, Map, Set)
String concatenation
reduce sem identidade retorna Optional — porque stream vazio não tem valor a reduzir
▸Bloco 9 — Parallel streams10 conceitos
Fonte é splitable eficientemente (ArrayList, arrays, IntStream.range)
Operações são CPU-bound (não IO)
Volume de dados alto (milhares+)
Accumulator/combiner são thread-safe e associativos
Sem side effects nas operações
Fonte não-splitable (LinkedList, Iterator, Files.lines com arquivo pequeno)
Operações IO-bound (chamadas HTTP, DB) — thread bloqueia sem ganho de paralelismo real
Coleção pequena — overhead de fork/join supera ganho
Presença de side effects (contador compartilhado, HashMap não-sincronizado)
Collector não-thread-safe
▸Bloco 12 — Java funcional pós-8 (evolução até Java 21)23 conceitos
Stream.iterate(seed, hasNext, next) — versão finita com predicate
takeWhile(Predicate) / dropWhile(Predicate)
Optional.ifPresentOrElse(action, emptyAction)
Optional.or(Supplier<Optional<T>>) — encadeia optional
Optional.stream() — converte Optional em Stream de 0 ou 1 elemento
Collectors.filtering(predicate, downstream)
Collectors.flatMapping(mapper, downstream)
Collectors.toUnmodifiableList/Set/Map() — coleções imutáveis explícitas
var (não funcional, mas ajuda em lambda com tipo complexo — var f = (Function<X,Y>) ...)
Optional.isEmpty() — inverso de isPresent()
String::isBlank, String::lines, String::strip (funcionais em stream)
Collectors.teeing(down1, down2, merger) — combina 2 collectors
Stream.toList() — atalho para List IMUTÁVEL (diferente de Collectors.toList())
Stream.mapMulti(BiConsumer) — alternativa a flatMap para casos onde flatMap é ineficiente
Pattern matching for instanceof (não funcional puro, mas reduz boilerplate)
Sealed classes — controla herança (ajuda em modelagem imutável)
Records estabilizados — imutabilidade fica trivial (record Ponto(int x, int y) {})
Virtual threads (Project Loom)
Pattern matching for switch (usa em transformações funcionais)
Sequenced collections — interface SequencedCollection com getFirst, getLast, reversed
CPU-bound + volume grande → parallel stream
IO-bound → virtual threads (não parallel stream — bloqueia thread do commonPool)
Coleção imutável → Stream.toList() (16+) ou toUnmodifiableList()
▸Bloco 13 — Pegadinhas clássicas FGV (as 10 mais cobradas)4 conceitos
IntStream.range(0, 10).count() retorna long (não int)
stream.min(Comparator) e stream.max(Comparator) retornam Optional<T> (podem ser empty)
Collectors.groupingBy sem downstream retorna Map<K, List<T>> (List, não Set)
Lambdas NÃO podem lançar checked exceptions se a functional interface não declarar throws
▸Ganchos pro JM4 conceitos
Você já usou muito lambda/stream
Datar as adições
Streams primitivos
Não confundir Stream com iterador tradicional
▸Spring6 tópicos
▸18-spring-ioc-di18 conceitos · 0🟢 0🟡 0🟠 0🔴 18⚪
▸Big picture4 conceitos
IoC/DI — como padrão central
AOP — transparente via proxies
Abstração — sobre APIs de infra (JDBC, JPA, JMS...)
Modular — use só o que precisar
▸3 tipos de DI (com preferência)1 conceitos
Constructor** ⭐
▸Anotações estereótipo4 conceitos
@RestController
@Configuration
Controller → return "produtos/lista" (nome de view)
RestController → return produtoList (serializa como JSON)
▸Bean Scopes3 conceitos
singleton** ⭐ (default)
Spring singleton = 1 por container (pode ter múltiplos containers)
GoF Singleton = 1 **por JVM inteira
▸Config — 3 caminhos históricos3 conceitos
Java Config** ⭐
@Component na CLASSE, Spring cria via reflexão
@Bean em MÉTODO de @Configuration, VOCÊ cria o objeto (útil pra classes de terceiros)
▸ApplicationContext vs BeanFactory2 conceitos
Init de singletons
Ambiente/profiles
▸Spring Framework vs Spring Boot1 conceitos
Web server
▸19-spring-boot40 conceitos · 0🟢 0🟡 0🟠 0🔴 40⚪
▸Auto-configuration — o segredo4 conceitos
@ConditionalOnClass(X.class)
@ConditionalOnMissingBean(X.class)
@ConditionalOnProperty("app.x")
@ConditionalOnWebApplication
▸Starters — dependências agrupadas13 conceitos
spring-boot-starter-web
spring-boot-starter-webflux
spring-boot-starter-data-jpa
spring-boot-starter-data-jdbc
spring-boot-starter-data-mongodb
spring-boot-starter-security
spring-boot-starter-actuator
spring-boot-starter-test
spring-boot-starter-thymeleaf
spring-boot-starter-mail
spring-boot-starter-cache
spring-boot-starter-validation
spring-boot-starter-parent
▸Profiles — configurações por ambiente3 conceitos
application.yml — default (sempre carregado)
application-dev.yml — só se profile "dev" ativo
application-prod.yml — só se profile "prod" ativo
▸Actuator — endpoints de produção11 conceitos
/actuator/health
/actuator/info
/actuator/metrics
/actuator/env
/actuator/beans
/actuator/mappings
/actuator/loggers
/actuator/threaddump
/actuator/heapdump
/actuator/httptrace
/actuator/shutdown
▸Embedded server2 conceitos
Tomcat — (default do starter-web)
Netty — (só WebFlux)
▸Spring Initializr1 conceitos
https://start.spring.io
▸@ConfigurationProperties (config tipada)4 conceitos
Type-safe (int, boolean, LocalDate, List, Map)
Validação com Bean Validation (@Validated + @NotBlank)
Autocomplete no IDE (com spring-boot-configuration-processor)
Refactor-friendly
▸Spring Boot Admin ≠ Actuator2 conceitos
Actuator — → endpoints REST embutidos na SUA app (/actuator/*)
Spring Boot Admin
▸20-spring-mvc-rest46 conceitos · 0🟢 0🟡 0🟠 0🔴 46⚪
▸@Controller vs @RestController1 conceitos
Anotação implícita
▸RequestMapping + shortcuts HTTP3 conceitos
@GetMapping("/x")
@DeleteMapping
@PatchMapping
▸Parâmetros de entrada — 4 fontes5 conceitos
@PathVariable
@RequestParam
@RequestHeader
@PathVariable = parte da URL (RESTful: identifica recurso)
@RequestParam = query string (filtros, paginação)
▸ResponseEntity — controle fino da resposta9 conceitos
ResponseEntity.ok(body) → 200
ResponseEntity.created(uri).body(x) → 201 + Location
ResponseEntity.noContent().build() → 204
ResponseEntity.badRequest().body(erro) → 400
ResponseEntity.notFound().build() → 404
ResponseEntity.status(HttpStatus.X).body(y) → qualquer código
POST criando — → 201 Created + Header Location
DELETE bem-sucedido — → 204 No Content (sem body)
GET recurso inexistente — → 404 Not Found
▸Exception handling — 3 níveis3 conceitos
Nível 1 · @ExceptionHandler local
Nível 2 · @ControllerAdvice + @ExceptionHandler (GLOBAL)
Nível 3 · @ResponseStatus na própria exceção
▸Validation (Bean Validation + @Valid)2 conceitos
@Valid — do Jakarta Bean Validation (padrão)
@Validated — do Spring, suporta grupos de validação (ex: @Validated(OnCreate.class))
▸Content Negotiation (revisão Ex 14)4 conceitos
Cliente Accept: application/json → JSON
Cliente Accept: application/xml → XML (se Jackson-dataformat-xml no classpath)
Cliente Accept: text/plain → **406 Not Acceptable
Cliente manda `Content-Type
▸Checklist FGV — pegadinhas prováveis13 conceitos
[ ] @Controller sem @ResponseBody → 404 (view não encontrada), NÃO JSON
[ ] @RestController = @Controller + @ResponseBody
[ ] @RequestParam default é required=true → 400 se ausente
[ ] POST criando recurso deve retornar **201 Created + Header Location
[ ] DELETE bem-sucedido → 204 No Content (sem body)
[ ] Accept header incompatível → **406 Not Acceptable
[ ] Content-Type header incompatível → **415 Unsupported Media Type
[ ] @ExceptionHandler local só pega exceção do próprio controller
[ ] @ControllerAdvice = handler GLOBAL (aplica a todos controllers)
[ ] @ResponseStatus na exceção = shortcut pra status automático
[ ] WebClient é o recomendado desde Spring 5 (RestTemplate = manutenção)
[ ] Shortcuts (@GetMapping etc.) desde Spring 4.3 (2016)
[ ] @Valid (Jakarta) vs @Validated (Spring, suporta grupos)
▸Regressões pra vigiar (do CADERNO)2 conceitos
Consumes/Produces vs Content-Type/Accept
Idempotência — (Ex 14): GET/PUT/DELETE idempotentes; POST não; PATCH condicional
▸Ganchos internos4 conceitos
Ex 11 Servlet
Ex 14 JAX-RS
Ex 16 Bean Validation: — @Valid reusado — mesmas anotações (@NotNull, @Size, @Email)
Ex 18 IoC/DI
▸21-spring-data-jpa15 conceitos · 0🟢 0🟡 0🟠 0🔴 15⚪
▸Query Methods — derivação a partir do nome9 conceitos
And, Or
LessThan, GreaterThan, LessThanEqual, GreaterThanEqual
Like, NotLike
Containing, StartingWith, EndingWith
In, NotIn
IsNull, IsNotNull
True, False
OrderBy...Asc/Desc
First, Top, TopN, FirstN
▸@Query — quando o naming não dá conta1 conceitos
Uso típico
▸N+1 problem e @EntityGraph1 conceitos
O problema clássico — pega quase todo dev iniciante em ORM
▸Transações — @Transactional1 conceitos
REQUIRED (default)
▸Regressões do CADERNO relacionadas (revisar antes do quiz)3 conceitos
JPA Detached
JPA spec/impl
Rollback checked vs unchecked — mesmo padrão do EJB (Ex 11)
▸22-spring-security31 conceitos · 0🟢 0🟡 0🟠 0🔴 31⚪
▸Autenticação — mecanismos6 conceitos
Form Login (default)
HTTP Basic
JWT (Bearer Token) — padrão APIs REST modernas
Header — {"alg":"HS256","typ":"JWT"} — algoritmo de assinatura
Payload (claims) — {"sub":"user123","exp":1699999999,"roles":["USER"]} — dados do usuário
OAuth2 / OpenID Connect
▸UserDetailsService — de onde vêm os usuários3 conceitos
InMemoryUserDetailsManager (só pra testes/demo)
JdbcUserDetailsManager (schema padrão do Spring)
Custom UserDetailsService (JPA/MongoDB/qualquer coisa) — o que se usa em prod
▸PasswordEncoder — hash de senha7 conceitos
NoOpPasswordEncoder
MessageDigestPasswordEncoder (MD5, SHA-1)
StandardPasswordEncoder (SHA-256)
BCryptPasswordEncoder
Argon2PasswordEncoder
Pbkdf2PasswordEncoder
DelegatingPasswordEncoder
▸Autorização — expressões5 conceitos
Method-level security
Role vs Authority — pegadinha FGV
hasRole("ADMIN") → busca ROLE_ADMIN (Spring adiciona o prefixo automaticamente)
hasAuthority("ROLE_ADMIN") → busca literalmente ROLE_ADMIN (você precisa incluir o prefixo)
hasAuthority("SCOPE_write") → OAuth2/JWT scopes
▸AuthenticationManager, ProviderManager, Providers4 conceitos
AuthenticationManager — interface principal, um método authenticate(Authentication)
ProviderManager — implementação default, delega para lista de providers
DaoAuthenticationProvider — provider padrão que usa UserDetailsService + PasswordEncoder
SecurityContextHolder — armazena o Authentication da requisição atual (ThreadLocal por default)
▸CSRF (Cross-Site Request Forgery)2 conceitos
✅ APIs REST stateless (sem sessão, autenticadas por JWT/token)
❌ App web tradicional com formulários e sessão HTTP — MANTER
▸Session vs Stateless — decisão de arquitetura1 conceitos
Uso típico
▸Regressões do CADERNO relacionadas3 conceitos
JWT confusão com criptografia
Autenticação vs Autorização
Ganchos com OWASP Top 10
▸23-spring-cloud40 conceitos · 0🟢 0🟡 0🟠 0🔴 40⚪
▸Big picture — o problema que Spring Cloud resolve8 conceitos
Arquitetura de microsserviços
Onde estão os outros serviços? (IPs mudam)
Como manter configs sincronizadas entre N serviços
Como chamar outros serviços sem repetir HTTP boilerplate
Como não cascatear falhas quando um serviço fica lento
Como expor uma "porta única" pra fora, roteando pra N serviços internos
Como rastrear uma requisição que passa por 5 microsserviços
Como comunicar assíncrono entre serviços
▸Componentes principais (memorizar as siglas — cai FGV)20 conceitos
Spring Cloud Config — configuração centralizada
Service Discovery — Eureka (Netflix)
OpenFeign — cliente HTTP declarativo
Circuit Breaker — Resilience4j (era Hystrix)
Conta falhas nos últimos N segundos
Se ultrapassar limiar → abre o circuito (curto-circuito imediato, sem chamar B)
Após timeout → tenta meio-aberto (permite 1 chamada de teste)
Se ok → fecha de novo
Retry — tentar novamente N vezes com backoff
Rate Limiter — limitar N chamadas por segundo
Bulkhead — isolar chamadas em pools separados (uma cair não afeta outra)
Time Limiter — timeout explícito
Spring Cloud Gateway — API Gateway (era Zuul)
Roteamento (path → serviço)
Autenticação centralizada (validar JWT antes de rotear)
Rate limiting global
Logging/tracing
Retries e circuit breaker global
Distributed Tracing — Sleuth + Zipkin
Spring Cloud Stream — mensageria abstraída
▸Padrões arquiteturais relacionados (podem cair FGV)12 conceitos
Service Registry / Discovery
API Gateway
Externalized Configuration
Circuit Breaker
Retry / Bulkhead / Rate Limit
Distributed Tracing
Client-Side Load Balancing
Asynchronous Messaging
CQRS — (Command Query Responsibility Segregation)
Event Sourcing — (auditoria via stream de eventos)
Saga — (transações distribuídas via mensageria + compensação)
Strangler Fig — (migração gradual de monolito pra microsserviços)
▸JEE9 tópicos
▸11-servlet-jsp17 conceitos · 0🟢 0🟡 0🟠 0🔴 17⚪
▸Lifecycle Servlet (decoreba FGV)3 conceitos
init(ServletConfig)
service(req, resp)
doGet / doPost /
▸Forward vs sendRedirect — a pegadinha número 15 conceitos
Request/response
URL na barra
Request scope
Pode ir p/ URL externa
Uso típico
▸JSP vs Servlet vs EL vs JSTL3 conceitos
Scriptlet** <% ... %>
EL** ${obj.prop}
JSTL** <c:if> <c:forEach>
▸web.xml vs @WebServlet5 conceitos
@WebServlet(urlPatterns = "/ola") é o default
web.xml continua pra config global (welcome-file, error-page, filters, session-timeout)
FGV pode cobrar as duas sintaxes — reconhecer é suficiente
session.setMaxInactiveInterval(1800) — SEGUNDOS (Java)
<session-timeout>30</session-timeout> no web.xml — MINUTOS (XML)
▸Servlet Container vs Application Server1 conceitos
Tomcat + EJB
▸11b-java-web-view-panorama74 conceitos · 0🟢 0🟡 0🟠 0🔴 74⚪
▸Bloco 2 — Categorias (o que é o quê)6 conceitos
Fundação servidor
Template engines
Framework action-based (MVC)
Framework component-based
Bibliotecas de componentes JSF
Client-side compilado
▸Bloco 3 — As 3 view technologies mais cobradas: JSP × Facelets × Thymeleaf12 conceitos
Onde é padrão
Suporta scriptlets
Válido como HTML puro
Templating (layout)
Thymeleaf — sintaxe essencial (o que não tem em outro por-topico)
Natural templating — designer abre no browser sem container
HTML válido — IDE oferece autocomplete nativo
Type-safe expressions (compile-time em Spring Boot)
Nunca teve scriptlets — separação forçada de lógica/view
Padrão do Spring Boot desde 2014 → é o que a comunidade Spring moderna usa
Overhead de sintaxe verbose (th:each="x : ${xs}" vs ${xs.map(x -> ...)})
Não tem tags custom do ecossistema JSF (form/input/messages nativos)
▸Bloco 4 — Frameworks web Java — tabela histórica completa18 conceitos
Modelo mental
View padrão
Ciclo de vida
Status hoje
Struts 1.x — o que caiu (histórico FGV)
Introduzido em 2000 (Craig McClanahan, Apache) — primeiro framework MVC popular pra Java web
ActionForm — bean que carrega dados do form request (setter-per-campo)
Action — classe que estende Action; sobrescreve execute(mapping, form, req, resp)
struts-config.xml — mapping XML de URLs → Actions, forwards → JSPs
Fluxo: request → ActionServlet (único Servlet real) → RequestProcessor → Action → forward pro JSP
EOL em 2013 — Apache aposentou. Se aparecer em prova, é como "conheça o legado"
Struts 2.x — reescrita totalmente diferente
Baseado em WebWork (2007). Nome herdado, código zero em comum com Struts 1
POJO Actions
Interceptors — (chain of responsibility) — auth, validation, logging, param binding
Value Stack — (OGNL) — pilha de contextos avaliada em templates
struts.xml — config XML mais leve, mas ainda XML
Sofreu CVEs graves
▸Bloco 5 — Action-based × Component-based (a distinção fundamental)6 conceitos
Unidade lógica
Exemplos Java
Exemplos outras stacks
API/serviço REST → action-based (Spring MVC + Thymeleaf ou só JSON)
App web corporativo com muitos forms/CRUDs → JSF simplifica (bibliotecas prontas)
App SPA moderno → escolhe React/Vue/Angular no cliente, backend Spring Boot REST
▸Bloco 6 — Ciclos de vida comparados3 conceitos
Servlet (simples)
JSF (6 fases — decoreba FGV)
Spring MVC (para comparar)
▸Bloco 7 — Objetos implícitos JSP × JSF/EL4 conceitos
Tabela lado a lado
Página atual
Facelets only
9 objetos implícitos do JSP (memorizar)
▸Bloco 8 — Escopos de armazenamento em JSP/JSF2 conceitos
applicationScope
Forçar escopo específico
▸Bloco 9 — Stateless vs Stateful — a distinção conceitual3 conceitos
Como identifica cliente
Estado do usuário
As 6 constraints do REST (Fielding, 2000)
▸Bloco 10 — Formas históricas de embutir Java em JSP3 conceitos
Expression scriptlet
JSP Directive
Expression Language (EL)
▸Bloco 11 — Regra de bolso pra prova (FGV/CESPE)13 conceitos
Enunciado contém
.xhtml + fases + component
.jsp + tag libs + EL
@Controller + @RequestMapping
Action + ActionForm
<div th:text="..."> ou th:each
árvore de componentes stateful
action-based" + interceptors + POJO
value stack" + OGNL
natural templating
biblioteca de componentes JSF dominante
sucessor do Struts 1 em código zero-compatível
ViewState" + JSESSIONID + component tree
▸Ganchos pro JM4 conceitos
Este arquivo é o "mapa
Struts 1/2
6 constraints REST + Fielding 2000
9 objetos implícitos JSP
▸12-jpa-hibernate🛡️ 37 conceitos · 24🟢 8🟡 1🟠 1🔴 3⚪ · canal C 25/09
▸A · Big picture3 conceitos
JPA vs Hibernate vs ORM (spec/impl/conceito)Q1 · 25/09
EntityManager vs Session (Session extends EM)Q2 · 25/09
Analogias JPA/Hibernate/Eloquent—
▸B · Ciclo de vida da entidade5 conceitos
4 estados: NEW / MANAGED / DETACHED / REMOVEDQ3 · 25/09
Vocab legado: TRANSIENT (=NEW) / PERSISTENT (=MANAGED)esclarecido
persist() vs merge() (retorno managed novo)Q4 · 25/09
Dirty checking (snapshot + comparação)Q5 · 25/09
Flush 3 gatilhos (query / commit / manual)Q5 dúvida
▸C · Fetch strategy3 conceitos
Fetch defaults: To-One EAGER / To-Many LAZYQ6 · 25/09
LazyInitializationExceptionQ7 tocado
FlushModeType AUTO vs COMMIT—
▸D · N+1 problem6 conceitos
N+1 problem (1 query + N queries)Q7 · 25/09
JOIN FETCH (JPQL)Q8 · 25/09
@EntityGraph (attributePaths)Q8 mencionado
@BatchSize (Hibernate-específico)Q8 mencionado
Hibernate.initialize() NÃO resolve N+1Q8 · 25/09
Sintaxe JPQL (alias obrigatório, entidades ≠ tabelas)Q7 dúvida
▸E · Cascade e coleções4 conceitos
6 cascade types (PERSIST/MERGE/REMOVE/REFRESH/DETACH/ALL)Q9 · 25/09
orphanRemoval vs CascadeType.REMOVE (só órfão vs pai removido)Q9 · 25/09
PersistentBag / PersistentSet / PersistentMapesclarecido
2 remove() diferentes (Collection vs em.remove)esclarecido
▸F · Query languages3 conceitos
JPQL vs HQL — HQL é superset do JPQLQ10-I errou
Criteria API type-safe (metamodel)Q10-II · 25/09
Native SQL retorna MANAGED com createNativeQuery(sql, Class)flashcard
▸G · Transações5 conceitos
Bean-Managed (em.getTransaction().begin())—
@Transactional Spring (proxy AOP)Q11 · 25/09
Self-invocation trap (this.method() bypass proxy)Q11 · 25/09
Propagation types (REQUIRED / REQUIRES_NEW / etc)mencionado
Rollback default: só unchecked (RuntimeException/Error)Q14 · 25/09
▸H · Config e injeção7 conceitos
persistence.xml (JPA puro, obrigatório)Q12 · 25/09
Spring Boot autoconfig (dispensa XML)Q12 · 25/09
@PersistenceContext injeta EntityManagerQ13 · 25/09
@PersistenceUnit injeta EntityManagerFactoryQ13 · 25/09
EJB Stateless: pool = thread-safety (não serialização)Q13-III · 25/09
EJB tipos (@Stateless / @Stateful / @Singleton / @MessageDriven)refresh 25/09
CDI (@Inject / @Named / @RequestScoped)refresh 25/09
▸13-jsf-facelets19 conceitos · 0🟢 0🟡 0🟠 0🔴 19⚪
▸Componentes principais4 conceitos
Managed Bean** (@Named)
Facelets** (.xhtml)
EL** (#{bean.prop})
faces-config.xml
▸Facelets vs JSP como view1 conceitos
Componentes JSF
▸Escopos CDI (crescimento de vida)8 conceitos
@RequestScoped
@ViewScoped ⭐
@SessionScoped
@ApplicationScoped
@ConversationScoped
@Dependent (default)
ViewScoped: morre ao NAVEGAR pra outra view
SessionScoped: dura enquanto a sessão HTTP existir
▸View State — o preço do stateful4 conceitos
server (default) — em memória do servidor por sessão
client — em campo hidden no formulário (base64, aumenta payload)
server: — consome RAM; horizontal scaling exige sticky session ou replicação
client: — aumenta bandwidth mas stateless-friendly
▸Comparação rápida (útil pra FGV)2 conceitos
State da view
Peso conceitual
▸14-jax-rs30 conceitos · 0🟢 0🟡 0🟠 0🔴 30⚪
▸Big picture3 conceitos
Jersey — impl de referência (Eclipse; base do GlassFish)
RESTEasy — Red Hat (WildFly, Quarkus)
Apache CXF — completa, suporta SOAP também
▸Anotações de parâmetros7 conceitos
@PathParam("id")
@QueryParam("nome")
@HeaderParam("Authorization")
@CookieParam("session")
@FormParam("email")
@MatrixParam("cat")
@DefaultValue("x")
▸HTTP status codes (decoreba FGV)10 conceitos
400 — Bad Request (payload malformado)
401 — Unauthorized ⚠️ na verdade "unauthenticated" — sem credenciais
403 — Forbidden — autenticado mas sem permissão
404 — Not Found
405 — Method Not Allowed
409 — Conflict (duplicata, versão)
422 — Unprocessable Entity (validação falhou; sintaxe ok, semântica não)
429 — Too Many Requests (rate limit)
401 — = "quem é você?" (falta credencial, ou credencial inválida)
403 — = "sei quem é você, mas não pode
▸Idempotência e Segurança (CADERNO 18/07)2 conceitos
Idempotente — = múltiplas chamadas iguais têm o MESMO efeito no servidor
Seguro — = não altera estado (só leitura)
▸Bootstrap sem web.xml4 conceitos
CONTEXT — = context path do WAR
/api — = @ApplicationPath
/produtos — = @Path do resource
/42 — = @Path do método
▸HATEOAS + Richardson Maturity Model4 conceitos
Nível 0 — 1 URI, 1 método (RPC over HTTP)
Nível 1 — recursos (múltiplas URIs)
Nível 2 — verbos HTTP corretos
Nível 3 — HATEOAS ⭐ (REST "completo")
▸15-jpa-avancado⚔️ 29 conceitos · 16🟢 7🟡 0🟠 3🔴 3⚪ · canal C 25/09
▸A · Relacionamentos bidirecionais3 conceitos
Dono vs Inverso — mappedBy no inverso, FK no donoQ15 · 25/09
Setar SÓ o inverso NÃO persiste (FK grava NULL)Q16 errou · flashcard
Helper adicionar() sincroniza os 2 ladosmencionado
▸B · @ManyToMany3 conceitos
@JoinTable (joinColumns / inverseJoinColumns)Q17 tocado
Set vs List — sem @OrderColumn = DELETE ALL + INSERT ALLQ17 · 25/09
Padrão moderno: entidade intermediária explícita—
▸C · Composição (Embeddable)3 conceitos
@Embeddable = COLUNAS na tabela do dono (não tabela separada)Q18 errou · flashcard
Value objects (Endereço, Dinheiro, Período, Coordenada)—
@AttributeOverride pra renomear colunas herdadas—
▸D · Herança de entidades7 conceitos
SINGLE_TABLE (default, rápido, sujo com NULLs)Q19 · 25/09
JOINED (schema limpo, JOIN por leitura)Q19 · 25/09
TABLE_PER_CLASS (UNION polimórfico)Q19 · 25/09
@Inheritance / @DiscriminatorColumn / @DiscriminatorValueQ19 refresh
@PrimaryKeyJoinColumn (FK sub → super)refresh
@MappedSuperclass ≠ @Entity (não gera tabela)Q20 · 25/09
Query polimórfica NÃO funciona em @MappedSuperclassQ20 · 25/09
▸E · Callbacks de ciclo de vida3 conceitos
7 anotações (@Pre/@Post Persist/Update/Remove + @PostLoad)Q21 · 25/09
Rodam na tx atual; exceção causa rollbackQ21 · 25/09
@EntityListeners (extração DRY pra classe externa)mencionado
▸F · Locking (concorrência)4 conceitos
Otimista vs Pessimista (conceito + trade-offs)Q22 refresh · 25/09
@Version → WHERE version=? → OptimisticLockExceptionQ22 · 25/09
6 LockModeType (NONE/OPTIMISTIC/OPTIMISTIC_FORCE_INCREMENT/PESSIMISTIC_READ/WRITE/FORCE_INCREMENT)refresh
SELECT ... FOR UPDATE (pessimista, deadlock possível)refresh
▸G · Named Queries2 conceitos
Named Query = validada no BOOT (diferença chave vs JPQL string)Q23 errou · flashcard
@NamedQuery na entidade, uso em.createNamedQuery(...)Q23 · 25/09
▸H · Cache (2 níveis + query)4 conceitos
1º nível (persistence context) — sempre ligado, identidade Java ==Q24 · 25/09
2º nível (EMF-scoped) — opcional, @Cacheable + provider externoQ24 · 25/09
Query cache — subtipo do 2º, hint por query, invalida na escritaQ24 · 25/09
Providers 2º nível (Ehcache / Infinispan / Hazelcast / Caffeine)mencionado
▸16-jsf-primefaces24 conceitos · 0🟢 0🟡 0🟠 0🔴 24⚪
▸1. O que é PrimeFaces3 conceitos
Biblioteca de componentes JSF — open source, mais usada do mercado
Mantida pela PrimeTek (empresa turca)
Concorrentes: RichFaces (Red Hat, descontinuado 2016), IceFaces (menos usado hoje)
▸3. Componentes PrimeFaces mais cobrados9 conceitos
<p:dataTable>
<p:confirmDialog>
<p:message for="x">
<p:inputMask>
<p:inputNumber>
<p:autoComplete>
<p:fileUpload>
<p:menubar> <p:tabView> <p:accordionPanel>
<p:commandButton>
▸4. Ajax do PrimeFaces — `process` vs `update`5 conceitos
@this — só o próprio componente
@form — o form inteiro
@all — a página inteira
@none — nada
@parent — o pai direto
▸5. FacesMessage — 4 severidades4 conceitos
SEVERITY_INFO
SEVERITY_WARN
SEVERITY_ERROR
SEVERITY_FATAL
▸6. Converters e Validators — 3 caminhos3 conceitos
Built-in JSF
Bean Validation (integração JSF automática)
Custom Converter / Validator
▸17-design-patterns44 conceitos · 0🟢 0🟡 0🟠 0🔴 44⚪
▸Os 23 patterns (lista de referência)3 conceitos
Criacionais (5)
Estruturais (7)
Comportamentais (11)
▸Top 8 mais cobrados FGV16 conceitos
Singleton (criacional)
Factory Method (criacional)
Abstract Factory (criacional)
Factory Method → 1 produto por chamada, escolha por subclasse
Abstract Factory → família de produtos, escolha por família
Builder (criacional)
Adapter (estrutural)
Decorator (estrutural)
Adapter → interface DIFERENTE (traduz)
Decorator → MESMA interface (adiciona comportamento)
Observer (comportamental)
Strategy (comportamental)
Strategy → escolha EXTERNA (cliente decide qual algoritmo)
State → mudança INTERNA (objeto muda por conta própria conforme estado)
Strategy → composição (troca objeto inteiro)
Template Method → herança (subclasse preenche métodos abstratos)
▸Bônus úteis (cai menos, mas com pegadinha)5 conceitos
Facade — simplifica subsistema (≠ Adapter que traduz interface)
Composite — estrutura em ÁRVORE (Files/Directories, JSF component tree)
Command — encapsula operação. Ex: Runnable, undo, action listeners
Iterator — Java Iterator<T> + Iterable<T> (base do for-each)
Chain of Responsibility — Servlet Filters, JAX-RS filters, Spring interceptors
▸Confusões clássicas FGV (tabela oura)7 conceitos
Factory Method vs Abstract Factory
Adapter vs Decorator
Adapter vs Facade
Strategy vs State
Strategy vs Template Method
Observer vs Mediator
Proxy vs Decorator
▸Padrões arquiteturais (NÃO são GoF, mas caem)4 conceitos
Service Layer
DAO — = acesso a dados (métodos find/save/delete)
DTO — = objeto de transferência (só getters/setters, sem lógica)
Entity — = objeto de domínio (tem lógica + persistência com JPA)
▸SOLID (cai junto com patterns)4 conceitos
Strategy → O (extensível sem modificar) + D (depende de interface)
Decorator → O + I
Observer → D (subject depende de interface Observer)
Factory Method → D (invoca abstração)
▸Anti-patterns comuns (também cai)5 conceitos
Singleton abusado — → God Object, acopla tudo, dificulta testes
God Class — → viola SRP; classe faz demais
Anemic Domain Model — → entities só com getters/setters, lógica nos services (viola OO)
Spaghetti Code — → sem estrutura clara
Golden Hammer — → aplicar mesmo pattern em tudo
▸17b-design-patterns-deep110 conceitos · 0🟢 0🟡 0🟠 0🔴 110⚪
▸Bloco 1 — Taxonomia GoF completa (mapa de bolso)1 conceitos
Escopo (Class × Object)
▸Bloco 2 — Princípios que sustentam os padrões5 conceitos
Favor composition over inheritance
Program to interface, not to implementation
Encapsular o que varia
Lei de Demeter
Princípio de Hollywood
▸Bloco 3 — Singleton em profundidade (as 6 formas)10 conceitos
Eager (ansioso)
Lazy sem sync
Lazy com synchronized
Double-Checked Locking (DCL)
Bill Pugh — Static Inner Holder
Enum Singleton (Bloch, Effective Java Item 3)
Tabela comparativa
Lazy com sync
DCL (com volatile)
Bill Pugh Holder
▸Bloco 4 — Creational lado a lado: Factory Method × Abstract Factory × Builder...6 conceitos
Factory Method
Abstract Factory
Factory Method — exemplo curto
Abstract Factory — exemplo curto
Builder — exemplo curto
Prototype — clone raso × profundo
▸Bloco 5 — Structural: Adapter × Facade × Proxy × Decorator (as 4 confusões)3 conceitos
Exemplos Java lado a lado
Proxy × Decorator — a confusão mestre estrutural
Proxy: CONTROLA acesso
▸Bloco 6 — Bridge × Adapter (a sutileza da INTENÇÃO)3 conceitos
Momento da decisão
Bridge — exemplo
Adapter — exemplo
▸Bloco 7 — Composite × Decorator (parte-todo × responsabilidade)2 conceitos
Composite — exemplo
Decorator — exemplo
▸Bloco 8 — Behavioral: Strategy × State (a confusão MESTRE)3 conceitos
Quem escolhe
Strategy — exemplo
State — exemplo
▸Bloco 9 — Observer × Mediator × Chain of Responsibility4 conceitos
Chain of Responsibility
Observer — exemplo
Mediator — exemplo
Chain of Responsibility — exemplo
▸Bloco 10 — Command × Memento × Iterator × Visitor4 conceitos
Combinações clássicas
Command + Memento
Composite + Iterator
Composite + Visitor
▸Bloco 11 — Template Method × Strategy (herança × composição)3 conceitos
Encaixe SOLID
Template Method — exemplo (Hollywood Principle)
Strategy — mesmo problema, composição
▸Bloco 12 — Interpreter (o menos cobrado, mas cai)9 conceitos
AbstractExpression: interface interpret(Context)
TerminalExpression: literais/variáveis (folhas)
NonterminalExpression: operações (nós com filhos que são outras expressões)
Context: variáveis de ambiente, valores
Exemplo — calculadora de expressão
Casos de uso reais
java.util.regex.Pattern (parcial
Parsers de SQL simples embarcados
DSLs restritas (JEXL, MVEL)
▸Bloco 13 — Anti-patterns e code smells11 conceitos
Anti-pattern / Smell
Singleton mutável concorrente
God Object / God Class
Feature Envy
Circular Dependency
Anemic Domain Model
Big Ball of Mud
Golden Hammer
Sobre-engenharia com padrões
Cargo Cult Programming
Yo-Yo Problem
▸Bloco 14 — Refactoring patterns (Fowler, 1999)11 conceitos
Top 10 refactorings mais cobrados
Extract Method
Extract Class
Inline Method
Move Method / Move Field
Replace Conditional with Polymorphism
Replace Magic Number with Constant
Introduce Parameter Object
Decompose Conditional
Encapsulate Field
Regra de bolso
▸Bloco 15 — Padrões modernos além do GoF (Fowler PoEAA + DDD + IoC)12 conceitos
DAO — Data Access Object (Core J2EE Patterns, Sun)
DTO — Data Transfer Object (Fowler PoEAA)
Repository — DDD (Evans, 2003)
DAO × Repository — a distinção fina que a FGV explora
Unit of Work (Fowler PoEAA)
Service Layer (Fowler PoEAA)
Dependency Injection / IoC (Fowler, 2004)
Constructor injection (preferida — testável, imutabilidade)
Setter injection
Interface injection (rara)
MVC × MVP × MVVM (variantes do MVC)
CQRS — Command Query Responsibility Segregation (Greg Young)
▸Checklist final18 conceitos
23 padrões GoF em 3 categorias: Creational (5), Structural (7), Behavioral (11)
Escopo Class = herança (compile-time); Object = composição (runtime). Maioria dos GoF é Object
Princípios materializados
Singleton — 6 formas; a MELHOR em Java moderno = enum (Bloch, Effective Java Item 3)
DCL sem volatile = broken (happens-before quebra)
Factory Method = 1 produto por subclasse; Abstract Factory = FAMÍLIA de produtos
Adapter (traduz), Facade (simplifica), Proxy (controla acesso), Decorator (adiciona comportamento)
Proxy × Decorator
Bridge = decisão proativa (separar 2 dimensões); Adapter = conserto reativo
Composite = árvore parte-todo; Decorator = cadeia linear
Strategy × State
Template Method = herança + Hollywood Principle
Observer (1:N broadcast), Mediator (N:N via central), CoR (pipeline sequencial)
Visitor = double dispatch (elemento.accept(visitor) → visitor.visit(this))
Interpreter = Composite com semântica de execução; só pra DSLs simples
Anti-patterns e code smells: God Class, Feature Envy, Anemic Model, Golden Hammer, sobre-engenharia
Refactoring (Fowler): muda estrutura SEM mudar comportamento — precisa de testes
MVC/MVP/MVVM/DAO/DTO/Repository NÃO são GoF — se cair "qual categoria GoF", nenhum deles pertence
▸Ganchos pro JM5 conceitos
17-básico + 17b juntos cobrem o tópico inteiro. Ler 17 primeiro (mapa mental), depois 17b (deep)
Se sobrar tempo pra 1 bloco só, priorize Bloco 8 (Strategy × State)
Enum Singleton (Bloco 3, forma 6) é resposta "certa" moderna
Padrões pós-GoF (Bloco 15)
Visitor com double dispatch (Bloco 10) — se aparecer "polimorfismo em 2 níveis", é Visitor
▸Testes · Swagger · SAST3 tópicos
▸24-testes-formais94 conceitos · 0🟢 0🟡 0🟠 0🔴 94⚪
▸1. Pirâmide de Testes (Mike Cohn, 2009)5 conceitos
Base larga = unitários — (a maioria) — cada função/método isolado, com dependências mockadas
Meio = integração — módulos interagindo (repository + BD real, controller + service)
Topo estreito = E2E/UI — fluxo completo, mais caro pra manter
Fumaça (smoke)
Carga / Stress / Performance
▸2. TDD (Test-Driven Development) — Kent Beck6 conceitos
Design emergente (design surge dos testes, não antes)
Documentação viva (testes explicam o comportamento esperado)
Cobertura garantida por construção (nada existe sem teste)
Feedback rápido
Refatoração segura
TDD — = escrever teste antes do código (dirige o desenvolvimento)
▸3. BDD (Behavior-Driven Development) — Dan North, 20039 conceitos
Given / Dado — contexto/pré-condições (setup)
When / Quando — ação/evento (o gatilho)
Then / Então — resultado esperado (verificação)
And / E — extensão de qualquer bloco (encadeia)
But / Mas — extensão negativa
Cucumber — Java/JS/Ruby (mais famosa)
JBehave — Java (Dan North, o criador do BDD)
SpecFlow — .NET
Behat — PHP
▸4. JUnit 5 — anotações e ciclo14 conceitos
JUnit Platform — infra pra rodar testes na JVM
JUnit Jupiter — API + engine do JUnit 5 (o que você usa como dev)
JUnit Vintage — engine pra rodar testes JUnit 3/4 legados
Anotações essenciais (todas em org.junit.jupiter.api)
@DisplayName("...")
@Disabled("motivo")
@Tag("integracao")
@ParameterizedTest
@RepeatedTest(5)
@ExtendWith(...)
Métodos assert essenciais (org.junit.jupiter.api.Assertions)
Assertion agora recebe a mensagem por último (não mais no meio): assertEquals(exp, act, "msg")
Nenhuma anotação precisa ser public (podem ser package-private)
Extension model substitui Runner + Rule
▸5. Test Doubles — taxonomia de Gerard Meszaros12 conceitos
Os 5 tipos (memorize os 5)
D — ummy = Desligado (não faz nada)
F — ake = Funciona (versão simples do real)
S — tub = Stado (retorna estado fixo)
S — py = Service + Spia (funciona + observa)
M — ock = Moldura de expectativas (verifica se foi chamado como esperado)
Stub = state verification (verifica ESTADO após ação)
Mock = behavior verification (verifica COMPORTAMENTO / chamadas)
Mockito — Java (o padrão)
JMockit — Java (mais poderoso, menos usado)
EasyMock — Java (legado)
PowerMock — Java (mock de estático/privado, considerado anti-pattern)
▸6. Coverage vs Mutation Testing15 conceitos
Cobertura de código (coverage)
Line coverage
Statement coverage
Branch coverage
Path coverage
Method coverage
Class coverage
JaCoCo — padrão de fato em Java (Maven/Gradle plugin)
Cobertura — legado (não confundir com o conceito!)
SonarQube — agrega JaCoCo + análise estática
Mutation Testing
PIT (PITest) — padrão Java
Stryker — JS/TS/.NET
Line coverage 100% + Mutation score 30% = testes ruins, só executam código sem verificar
Line coverage 70% + Mutation score 90% = testes excelentes na parte coberta
▸7. Outros conceitos formais que FGV cobra14 conceitos
AAA Pattern (Arrange-Act-Assert)
FIRST — princípios de bom teste
F — ast — testes rápidos (rodar sempre, muitas vezes)
I — ndependent — não dependem uns dos outros (ordem irrelevante)
R — epeatable — mesmo resultado em qualquer ambiente
S — elf-validating — passa ou falha, sem interpretação manual
T — imely — escritos na hora certa (no TDD, antes do código)
Test Smells (anti-padrões)
Fragile Test — quebra por mudanças não relacionadas
Slow Test — impede rodar frequente
Erratic Test — (flaky) — passa às vezes, falha às vezes
Obscure Test — difícil entender o que testa
Mystery Guest — dependência oculta (arquivo, BD compartilhado)
Test Code Duplication — repetição sem helpers
▸8. Checklist FGV (o que pode cair)18 conceitos
[ ] Pirâmide de testes — nome e ordem dos níveis
[ ] TDD ciclo Red-Green-Refactor (nesta ordem)
[ ] 3 leis do Uncle Bob (uma delas cobrada literal)
[ ] BDD ≠ TDD ≠ DDD (pegadinha de sopa de letras)
[ ] Gherkin: Given-When-Then (Dado-Quando-Então) em ordem
[ ] JUnit 5 anotações: @BeforeEach vs @BeforeAll (por método vs por classe)
[ ] JUnit 5 assertions modernas (assertThrows, assertAll)
[ ] Test Doubles: 5 tipos de Meszaros (Dummy/Fake/Stub/Spy/Mock)
[ ] Diferença Stub vs Mock (estado vs comportamento)
[ ] Coverage vs Mutation (mutation é superior)
[ ] AAA / Given-When-Then
[ ] FIRST — princípios (memorize as 5 letras)
[ ] Ferramentas Java
Confundir @BeforeAll com @BeforeEach (o "All" é uma vez só, estático)
Achar que Mock == Stub (Mock verifica CHAMADAS, Stub retorna VALORES)
Achar que 100% coverage garante qualidade (não garante — mutation testa isso)
Confundir BDD (comportamento, Gherkin) com DDD (domínio, Eric Evans)
Achar que TDD dispensa design (é o oposto — design emerge dos testes)
▸9. Ganchos com você (dev sênior)1 conceitos
AssertJ (extra)
▸25-swagger-openapi42 conceitos · 0🟢 0🟡 0🟠 0🔴 42⚪
▸Desambiguação obrigatória (pegadinha #1 FGV)3 conceitos
Swagger** (2011–)
OpenAPI Specification (OAS)
Swagger 2.0
▸Cronologia rápida5 conceitos
2011 — Swagger nasce (Tony Tam / Wordnik)
2014 — Swagger 2.0 (grande refactor)
2015 — SmartBear doa Swagger pra Linux Foundation → nasce **OpenAPI Initiative
2017 — OpenAPI 3.0 (grande break com 2.0)
2021 — OpenAPI 3.1 (alinhamento total com JSON Schema 2020-12)
▸Mudança-chave 2.0 → 3.0 (pegadinha #2 FGV)1 conceitos
Content type
▸Schemas — baseado em JSON Schema5 conceitos
allOf — combina schemas (herança-like)
oneOf — EXATAMENTE um dos schemas
anyOf — pelo menos um
not — negação
Discriminator — pra polimorfismo em oneOf/anyOf
▸Security schemes — 4 tipos em 3.05 conceitos
openIdConnect
authorizationCode — mais comum, 3-legged
clientCredentials — servidor-a-servidor
password — desencorajado; deprecated no OAuth 2.1
implicit — deprecated (removido do OAuth 2.1)
▸Springdoc-openapi (a ferramenta Spring atual)11 conceitos
/v3/api-docs — JSON da spec
/v3/api-docs.yaml — YAML da spec
/swagger-ui.html (redirect) → /swagger-ui/index.html — UI
@Tag(name, description)
@Operation(summary, description)
@Parameter(name, description, required)
@ApiResponse(responseCode, description)
@ApiResponses({ ... })
@Schema(description, example, required)
@SecurityScheme(name, type, ...)
@SecurityRequirement(name)
▸Contract-first vs Code-first (pegadinha #3 FGV)2 conceitos
Fonte de verdade
Ferramenta típica
▸OpenAPI 3.1 vs 3.0 (diferenças-chave)5 conceitos
Alinhamento 100% com JSON Schema 2020-12 — antes era um subset "esquisito
nullable: true REMOVIDO — usar type: ["string", "null"]
$ref sibling properties agora permitidas — (embora ainda ignoradas por default por libs antigas)
info.summary — nova propriedade curta (havia só description)
License agora aceita identifier SPDX — (Apache-2.0) além de name+url
▸Ferramentas Swagger — não confundir5 conceitos
Swagger UI
Swagger Editor
Swagger Codegen
OpenAPI Generator
Swagger Hub
▸26-sast-dast84 conceitos · 0🟢 0🟡 0🟠 0🔴 84⚪
▸Desambiguação central (pegadinha FGV #1)2 conceitos
SAST/DAST/IAST/SCA = TESTAM — (encontram vulnerabilidade → devolvem relatório)
RASP = PROTEGE — (detecta ataque em runtime → bloqueia/loga)
▸SAST — Static Application Security Testing19 conceitos
SQL Injection (concatenação de string com input)
XSS (output sem escape)
Path Traversal
Hardcoded credentials
Uso de crypto fraca (MD5, DES, ECB)
Deserialização insegura
Regex de injection típicas
Code smells de segurança
Vulnerabilidades de config runtime (headers, TLS, permissões)
Falhas de authz de negócio (usuário A vê dado de B)
Problemas só visíveis com dados reais em tempo de execução
Rodável no PC do dev / IDE / commit hook (shift-left máximo)
Cobertura de 100% do código (todo caminho)
Barato — não precisa infra pra rodar
Aponta linha exata do bug
Muitos falsos positivos — (o padrão bate mas o dado nunca chega ali)
Depende de linguagem — cada parser
Pode ser lento em codebase grande
Não vê configuração runtime nem integrações
▸DAST — Dynamic Application Security Testing17 conceitos
Injeções que se manifestam via resposta HTTP (SQLi cega por time delay, XSS refletido)
Configurações inseguras (headers ausentes, cookies sem HttpOnly/Secure)
Auth flaws detectáveis por comportamento
SSRF, XXE, CSRF, redirects abertos
Problemas de TLS/certificados
Info disclosure (stack traces, versões expostas)
Bugs em código não alcançado por request (código morto que ainda tem falha latente)
Falhas de authz de negócio (precisa saber quem é usuário A vs B)
Bugs em rotas não descobertas (spider pode não achar tudo)
Zero falso positivo de mecanismo — (se DAST reproduziu o ataque, ele existe)
Independente de linguagem (fala só HTTP)
Vê configuração real (o que roda em stage/prod)
Encontra o que só aparece com app viva
Precisa app rodando + rota descoberta (tarde no ciclo)
Pode ser destrutivo (envia payloads reais — SQL injection pode alterar dados)
Cobertura limitada ao que a ferramenta consegue navegar
Lento em app grande
▸IAST — Interactive AST (o híbrido)9 conceitos
Cobertura de código (só o que foi exercitado — não é 100% como SAST)
Confirmação por execução (menos falso positivo que SAST)
Sem tráfego de ataque (não precisa payload como DAST)
Menor taxa de falso positivo — (vê fluxo real)
Não requer scan dedicado (aproveita suíte de testes existente)
Aponta linha exata + payload que causou
Precisa cobertura de teste boa (senão vira SAST parcial)
Overhead de performance na app instrumentada
Só linguagens suportadas pelo agente (Java, .NET, Node principalmente)
▸SCA — Software Composition Analysis3 conceitos
Dependências com CVE conhecido
Licenças (GPL, Apache, MIT — compliance)
Dependências desatualizadas
▸RASP — Runtime Application Self-Protection3 conceitos
Loga — o incidente
Bloqueia — a request antes que atinja o código vulnerável
Notifica SOC/observabilidade
▸OWASP Top 10 — 2021 (a versão atual)3 conceitos
3 categorias novas: A04 Insecure Design, A08 Integrity Failures, A10 SSRF
XSS saiu como categoria própria — virou parte de A03 Injection
XXE saiu — virou parte de A05 Misconfig
▸SonarQube — deep dive (aparece muito)12 conceitos
Não é só SAST — é plataforma de code quality que INCLUI SAST. Cobra em 3 dimensões
Vulnerabilities
Code Smells
Quality Gate
Sonar Way — quality gate default oficial
Technical Debt — tempo estimado pra pagar todos code smells (SQALE)
Rating A/B/C/D/E — nota consolidada por dimensão
Security Hotspots
Vulnerability — Sonar confirma que É bug de segurança (falso positivo raro)
Hotspot — Sonar acha suspeito e pede revisão manual (pode ser ok em contexto)
Community (grátis, sem branch analysis, sem PR decoration em algumas features)
Developer / Enterprise / Data Center (pagas — mais linguagens, features de time)
▸OWASP ZAP — o DAST FOSS mais cobrado6 conceitos
Manual proxy — configura navegador pra passar por ZAP → grava sessão → ataca as URLs vistas
Automated scan (Baseline) — scan passivo rápido (sem enviar payloads perigosos)
Active scan — envia payloads reais (pode alterar dados — usar em stage)
Spider / Ajax Spider — descoberta de URLs (Ajax Spider entende SPA)
Fuzzer — injeta valores num parâmetro
API scanning — importa OpenAPI/SOAP e ataca endpoints
▸Comparativo estruturado (a tabela FGV adora)7 conceitos
Precisa app rodando
Precisa código-fonte
Fase típica
Falso positivo
Encontra config runtime
Encontra falha authz negócio
Independe de linguagem
▸Fuzzing (nome técnico que FGV cobra)3 conceitos
Mutation-based — pega input válido e muta (byte flip, extend, truncate)
Generation-based — gera input do zero seguindo spec
Coverage-guided
▸4️⃣Tier 4 — Java básicoopcional1 temas · 8 tópicos
▸Fundamentos Java8 tópicos
▸01-hello-world4 conceitos · 0🟢 0🟡 0🟠 0🔴 4⚪
▸Ponte com o que você já sabe2 conceitos
Fim de linha
Nome do arquivo
▸Questão estilo FGV (prever a saída)2 conceitos
Linha 1: ______
Linha 2: ______
▸02-tipos-e-variaveis14 conceitos · 0🟢 0🟡 0🟠 0🔴 14⚪
▸Mapa dos 8 tipos primitivos3 conceitos
Literal inteiro sem sufixo → int. Precisa de L se passar de ~2 bi
Literal decimal sem sufixo → double. Precisa de f pra float
char usa aspas simples; String usa aspas duplas
▸Ponte com o que você conhece1 conceitos
Divisão inteira
▸Wrappers e autoboxing3 conceitos
Coleções (List<Integer>) só aceitam objetos, não primitivos. Não existe List<int>
Métodos utilitários: Integer.parseInt(...), Integer.MAX_VALUE, Integer.toBinaryString(...)
Podem ser null (primitivo não pode)
▸As 3 pegadinhas favoritas da FGV neste tema3 conceitos
🎯 Cache de Integer (-128 a 127)
🎯 Divisão inteira
🎯 String == vs equals
▸Questão estilo FGV — prever a saída4 conceitos
Linha 1 (x == y): ______
Linha 2 (x.equals(y)): ______
Linha 3 (x == z): ______ ← 💡 essa tem uma nuance a mais
Linha 4 (soma): ______
▸03-controle-de-fluxo23 conceitos · 0🟢 0🟡 0🟠 0🔴 23⚪
▸Ponte com TS/Python/PHP3 conceitos
for clássico
switch fallthrough
switch expression
▸Regras específicas do Java pra fixar17 conceitos
switch clássico — tipos aceitos
Sim: — int, short, byte, char, Enum (Java 5+), String (Java 7+)
Não: — long, float, double, boolean
switch expression (Java 14+) — o que muda
Usa -> (arrow) em vez de :
Não tem fallthrough — cada branch é isolada
Retorna valor — pode atribuir a uma variável
Múltiplos valores no mesmo case: — case 6, 7 -> "..."
Bloco com múltiplas linhas: — case X -> { … yield valor; }
Precisa ser exaustivo (cobrir todos os casos ou ter default)
for-each — limitações
Não expõe o índice (se precisar, for clássico)
Não permite modificar o array via variável do loop
Requer arrays ou Iterable
do-while — pega distraído
; depois do while(cond); — fácil esquecer
Sempre roda ao menos 1 vez — (a condição é avaliada só depois)
▸Pegadinhas FGV específicas3 conceitos
🎯 Fallthrough no switch clássico
🎯 switch expression vs statement
🎯 do-while executa mesmo com condição inicial false
▸04-classe-pessoa5 conceitos · 0🟢 0🟡 0🟠 0🔴 5⚪
▸Ponte com PHP/TS/Python1 conceitos
Atributo privado
▸Modificadores de acesso em Java (a FGV cobra bastante)2 conceitos
default** (sem modificador)
protected inclui subclasses de outros pacotes. Muita gente pensa que é só "mesmo pacote + sub…
▸`toString()` — override de Object2 conceitos
System.out.println(obj)
Concatenação: "valor: " + obj
▸05-heranca29 conceitos · 0🟢 0🟡 0🟠 0🔴 29⚪
▸Regras de herança em Java21 conceitos
super(...) no construtor
Chama o construtor da superclasse
Se presente, tem que ser a PRIMEIRA linha — do construtor da subclasse
Se você omitir, o compilador insere super() (sem args)
Se a superclasse não tiver construtor sem args, você precisa chamar super(...) com argume…
super.metodo() — chamar versão da superclasse
@Override — anotação (não é obrigatória, mas quase sempre é)
Regras de override (FGV cobra)
Reduzir visibilidade (public → private)
Aumentar visibilidade (protected → public)
Mesma assinatura (nome + tipos de parâmetro)
Retorno covariante (subtipo do retorno original)
Lançar exceção checada **mais ampla
Lançar exceção checada **igual ou mais restrita
Adicionar exceções não-checadas (RuntimeException)
final — trava
final class → não pode ser estendida (String, Integer, etc.)
final método → não pode ser sobrescrito
final variável → só pode ser atribuída uma vez (constante local ou campo)
protected — visibilidade nível herança
default* (package-private)
▸Polimorfismo (visão prévia)3 conceitos
Tipo declarado — (Pessoa) decide quais métodos você pode chamar (interface disponível)
Tipo real — do objeto (Funcionario) decide qual implementação roda
Isso é dynamic dispatch / late binding — clássica pergunta de FGV
▸Sobrescrita (override) vs Sobrecarga (overload)1 conceitos
Palavra-chave típica
▸Herança de `Object`1 conceitos
toString(), equals(Object), hashCode(), getClass(), wait(), notify(), notifyAll(), `c…
▸Foco pra CADERNO se errar3 conceitos
Q3 → família Sintaxe vs semântica (super() implícito ≠ existe construtor sem args)
Q4 → família Nomenclatura formal (compile-time × runtime)
Q5 → família Sintaxe vs semântica (cast compila ≠ cast válido em runtime)
▸06-polimorfismo-interfaces34 conceitos · 0🟢 0🟡 0🟠 0🔴 34⚪
▸Mapa da hierarquia deste exercício2 conceitos
Funcionario = 1 pai (Contratacao) + 2 contratos (Pagavel, Auditavel)
Estagiario = 1 pai (Contratacao) + 1 contrato (Pagavel)
▸Interface vs Classe Abstrata — a tabela que a FGV cobra11 conceitos
Palavra-chave da subclasse
Quantas por classe filha
Pode ter atributos de instância
Pode ter construtor
Pode ter métodos concretos
Pode ter métodos abstratos
Visibilidade default de método
Pode ser instanciada com new
Uso conceitual
Quando usar cada
Classe abstrata
▸Regras invisíveis das interfaces5 conceitos
Evolução das interfaces (Java por versão)
Antes do Java 8 — só métodos abstratos + constantes
Java 8 — default (implementação padrão) + static (utilitários da interface)
Java 9 — private (helpers internos entre defaults)
Por que default foi criado
▸Polimorfismo via interface3 conceitos
p é do tipo Pagavel (interface)
Cada objeto real tem seu próprio recibo() — funcionario usa o default, estagiario sobrescreveu
Dispatch dinâmico: JVM olha o objeto real, chama a versão certa
▸Herança múltipla — o que Java permite e não permite6 conceitos
Uma classe estende uma classe
Uma classe estende várias classes
Uma classe implementa uma interface
Uma classe implementa várias interfaces
Uma interface estende outra interface
Uma interface estende várias interfaces
▸Se errar, encaixa em qual família do CADERNO?7 conceitos
Q1 — → não é família — é escolha de design (raro na FGV, mas cai)
Q2 — → Nomenclatura formal (regras implícitas)
Q3 — → Nomenclatura formal (regras de visibilidade em override)
Q4 — → conceito bem estabelecido (dispatch)
Q5 — → Sintaxe vs semântica (compila ≠ roda válido)
Q6 — → Nomenclatura formal (regra específica do diamond)
Q7 — → Nomenclatura formal (final implícito)
▸07-colecoes27 conceitos · 0🟢 0🟡 0🟠 0🔴 27⚪
▸List — comparativo6 conceitos
Estrutura interna
add(el) no fim
add(i, el) no meio
add/remove no início
Uso de memória
Quando escolher
▸Set — comparativo3 conceitos
add/contains/remove
Aceita null
Uso típico
▸Map — comparativo3 conceitos
Aceita null key
Aceita null value
Alternativa moderna thread-safe
▸Autoboxing obrigatório em coleções3 conceitos
Overhead de memória (Integer é uma classe cheia)
Risco de NPE em unboxing (se guardar null e desempacotar)
Java Streams primitivas
▸Comparable vs Comparator3 conceitos
Onde é escrito
Método a implementar
Uso típico
▸Contrato equals/hashCode2 conceitos
Se a.equals(b) → a.hashCode() == b.hashCode() (obrigatório)
Se a.hashCode() == b.hashCode() → não obriga que equals seja true (colisão)
▸Famílias de erro se cair alguma7 conceitos
Q1 — → Nomenclatura formal (hierarquia oficial)
Q2 — → design/escolha (raro na FGV mas cai)
Q3 — → Sintaxe vs semântica (contrato do método ≠ intuição)
Q4 — → Nomenclatura formal (contratos específicos)
Q5 — → Sintaxe vs semântica (compila ≠ roda válido)
Q6 — → conceito bem estabelecido (Comparable)
Q7 — → Nomenclatura formal (TreeSet + null)
▸08-excecoes24 conceitos · 0🟢 0🟡 0🟠 0🔴 24⚪
▸Checked vs Unchecked — a divisão que a FGV cobra2 conceitos
Se estende RuntimeException → unchecked (livre)
Se estende Exception direto
▸try / catch / finally — regras5 conceitos
catch mais específico vem antes do mais genérico. Colocar `catch
Múltiplos catch avaliados em ordem — o primeiro que "casa" é executado, os outros ignorados
finally executa quase sempre, exceto: System.exit(0), Thread.destroy(), ou JVM cair
Se try e finally ambos têm return, o do finally vence — considerado anti-pattern
Exceção lançada dentro do finally substitui qualquer exceção pendente do try/catch
▸try-with-resources (Java 7+)3 conceitos
Requer que o tipo implemente AutoCloseable (ou Closeable)
Java 9+: variáveis efetivamente final declaradas fora do try também podem ser usadas
Múltiplos recursos separados por ; — fechados em ordem inversa de declaração
▸Exceções customizadas3 conceitos
Ter construtor (String msg) e (String msg, Throwable cause)
Nome termina em Exception
Escolher checked (força tratar) vs unchecked (não polui assinaturas) conforme intenção
▸Regras diversas para lembrar4 conceitos
Método main pode declarar throws Exception
catch (Exception e) engana e captura RuntimeException também — cuidado
Bloco vazio catch (X e) {} = swallow (engolir) — anti-pattern clássico
Instrução throw sem retorno é considerada término abrupto — código depois é inalcançável
▸Famílias de erro se cair alguma7 conceitos
Q1 — → Nomenclatura formal (hierarquia oficial)
Q2 — → Nomenclatura formal (classificação checked/unchecked)
Q3 — → Sintaxe vs semântica (código inalcançável)
Q4 — → conceito bem estabelecido (multi-catch)
Q5 — → Sintaxe vs semântica (finally com return, contraintuitivo)
Q6 — → conceito específico (LIFO em try-with-resources)
Q7 — → Nomenclatura formal (regra de override + exceções)