Extra Documentação Técnica com Markdown • Trilha Progressiva em 4 Níveis


🎯 Nível 1: Fundamentos

Problema 18.1 — Deck de 3 Slides com Reveal.js

Contexto: Construir um arquivo Markdown configurado com layout: slide contendo exatamente 3 slides separados por ---, incluindo título, tópicos e notas do orador.

Requisitos de Execução:

  1. Frontmatter com layout: slide e title: "Apresentação Tech".
  2. Slide 1 com título H1 e subtítulo.
  3. Slide 2 com lista com marcadores e código Python.
  4. Incluir uma nota de apresentador no Slide 2 usando Note: ....

Resultado Esperado

---
layout: slide
title: "Apresentação Tech"
---

# Arquiteturas Modernas de Backend
**Inovações em Microsserviços e Cloud Native**

---

## Slide 2: Concorrência em Go

```go
go func() {
    fmt.Println("Executando em Goroutine!")
}()

Note: Lembrar de explicar aos participantes a diferença entre threads de SO e green threads do Go.


## 📤 Instruções de Entrega (Microsoft Teams)
1. Salve o arquivo como: `Atividade_18_1_SeuNome.md`
2. Envie na tarefa: `Atividade Cap 18 - Reveal.js e Marp`

<details markdown="1">
<summary>🔑 Gabarito de Código & Solução Comentada</summary>

```markdown
---
layout: slide
title: "Apresentação Tech"
---

# Arquiteturas Modernas de Backend
**Inovações em Microsserviços e Cloud Native**

---

## Slide 2: Concorrência em Go

```go
go func() {
    fmt.Println("Executando em Goroutine!")
}()

Note: Lembrar de explicar aos participantes a diferença entre threads de SO e green threads do Go.

*Comentário:* Ao pressionar a tecla 'S' durante a apresentação do Reveal.js, a janela do orador exibe o cronômetro, próximo slide e as anotações do bloco `Note:`.
</details>

---

## 🎯 Nível 2: Prática
### Problema 18.2 — Navegação Bidimensional 2D (Slides Verticais)

Configure um deck de slides Reveal.js que utilize navegação horizontal para temas principais (`---`) e navegação vertical descendente (`--`) para detalhamentos técnicos do mesmo tema.

<details markdown="1">
<summary>🔑 Gabarito de Código & Solução Comentada</summary>

```markdown
# Tema Principal: Bancos de Dados

---

## Relacionais (SQL)
Visão geral de ACID e integridade referencial.

--

### Detalhe: PostgreSQL e MVCC
Como o Multi-Version Concurrency Control isola transações sem lock de leitura.

---

## Não-Relacionais (NoSQL)
Visão geral do Teorema CAP e eventual consistency.

</details>


🎯 Nível 3: Integração

Problema 18.3 — Configuração de Apresentação Executiva com Marp Core

Crie um arquivo compatível com o ecossistema Marp contendo diretivas globais no frontmatter (marp: true, theme: gaia, paginate: true, header, footer) e exportação para PDF.

🔑 Gabarito de Código & Solução Comentada
---
marp: true
theme: gaia
_class: lead
paginate: true
header: "Roadmap de Engenharia 2026"
footer: "Confidencial • Uso Interno"
backgroundColor: "#f5f5f5"
---

# Estratégia de Engenharia de Plataforma
### Transformação Digital e Eficiência Operacional

---

## Metas do Trimestre (Q3)

- Migração de 100% dos serviços legados para Kubernetes
- Redução do tempo de build de CI/CD para menos de 3 minutos
- Adoção corporativa do protocolo aberto MCP

🎯 Nível 4: Desafio

Problema 18.4 — Automação de Compilação de Slides para PDF no CI/CD

Construa um script de automação em bash para GitHub Actions que use @marp-team/marp-cli com o motor Chromium headless para compilar todos os arquivos de slides/*.md em arquivos .pdf e publicá-los como release assets no GitHub.

🔑 Gabarito de Código & Solução Comentada
#!/usr/bin/env bash
# build_all_slides_pdf.sh
set -e

mkdir -p dist/pdf_slides

for slide in slides/*.md; do
  nome_base=$(basename "$slide" .md)
  echo "Compilando apresentação: $slide -> dist/pdf_slides/${nome_base}.pdf"
  npx @marp-team/marp-cli "$slide" --pdf --allow-local-files -o "dist/pdf_slides/${nome_base}.pdf"
done

echo "✅ Todos os slides foram compilados em PDF vetorial com sucesso!"