Exercícios
216 exercícios em 26 módulos, cada um verificando o próprio resultado.
Como funcionam#
Cada exercício verifica o próprio resultado com `assert` — se ele roda sem erro, está correto. Não há gabarito separado: o código é a resposta e o teste ao mesmo tempo.
bash
python3 exercicios/run_all.py # todos os 216
python3 exercicios/run_all.py 14 # só o módulo 14
python3 exercicios/run_all.py 03 07 # módulos 03 e 07
dataforge run exercicios/01-fundamentos/001_ola_mundo.dfOs módulos 11 a 26 trazem um arquivo .md ao lado de cada .df, com enunciado, conceitos, saída esperada e sugestões para experimentar.
Os 26 módulos#
| Módulo | Exercícios | Assunto |
|---|---|---|
| **01 · Fundamentos** | 12 | tipos, operadores, precedência, conversão e anotações |
| **02 · Controle fluxo** | 12 | given/orif/otherwise, ternário, match e guardas |
| **03 · Colecoes** | 14 | cluster e vault, fatias, spread e compreensões |
| **04 · Strings** | 10 | interpolação, métodos de texto, formatação e regex |
| **05 · Acoes** | 14 | parâmetros, padrões, retorno, closures e recursão |
| **06 · Blueprints** | 14 | campos, métodos, herança, traits e records |
| **07 · Erros** | 10 | monitor/handle/ensure, trigger, retry e defer |
| **08 · Pipelines** | 12 | sift, morph, distill e composição |
| **09 · Modulos** | 12 | adopt, relay, seleção e apelidos |
| **10 · Avancado** | 10 | decoradores, generators, threads e canais |
| **11 · Tipos e checagem** | 6 | anotações, o analisador estático e generics |
| **12 · Records e enums** | 6 | imutabilidade, 'with' e enums com valor |
| **13 · Desestruturacao** | 6 | cluster, vault, rest e troca de variáveis |
| **14 · Pattern matching** | 6 | point, when, tipos, sequências e vaults |
| **15 · Streams e generators** | 6 | stream action, emit, take e sequências infinitas |
| **16 · Modulos e projetos** | 6 | forge.toml, pacotes e organização |
| **17 · Tempo e sistema** | 6 | datas, durações, ambiente e processos |
| **18 · Dados e persistencia** | 6 | JSON, CSV, SQLite e serialização |
| **19 · Concorrencia** | 6 | threads, canais, tarefas e paralelismo |
| **20 · Projetos finais** | 6 | programas completos, de ponta a ponta |
| **21 · Oop avancado** | 10 | propriedades, estáticos, operadores, SOLID |
| **22 · Web kiln** | 7 | rotas, respostas, templates e estáticos |
| **23 · Dados e planilhas** | 3 | frames, agregação e .xlsx |
| **24 · Banco de dados** | 8 | Forge: conexão, consultas, transações e ORM |
| **25 · Testes crucible** | 4 | suítes, matchers, fixtures e dublês |
| **26 · Complexidade** | 4 | Big-O, memoização e custo de estrutura |