Sumário do Curso
🛠️ Curso: Ferramentas para Projetos
"Dominar a ferramenta certa é o primeiro passo para transformar uma ideia em um produto de sucesso."
Bem-vindo ao Guia Mestre de Ferramentas. Este curso foi projetado para capacitar desenvolvedores a dominar o ecossistema moderno de software: da gestão ágil e controle de versão à infraestrutura escalável, automação de CI/CD e design colaborativo.
⚡ Atalhos Rápidos
-
Trilha de Aulas
20 lições práticas englobando gestão, desenvolvimento, infra e design. Iniciar Jornada
-
Slides Interativos
Material visual moderno com Reveal.js para acompanhamento das aulas. Ver Slides
-
Quizzes Interativos
Avalie seu progresso com testes dinâmicos para cada módulo do curso. Testar Conhecimento
-
Laboratórios e Projetos
Aplique as ferramentas em cenários reais para consolidar o aprendizado. Ver Projetos
-
Exercícios Progressivos
Do básico ao desafio prático para dominar comandos e fluxos. Praticar Agora
-
Setup e Ferramentas
Configurações essenciais para seu ambiente de desenvolvimento. Configurar
🗺️ Mapa da Jornada (Módulos)
O curso está estruturado em 5 Módulos cruciais para a agilidade no desenvolvimento:
🧩 Módulo 1: Ecossistema e Gestão
O alicerce do projeto: organização e ambiente. - Aulas 01 a 04: Intro ao Ecossistema, Gestão de Projetos, Ambiente de Dev e Git Fundamentos.
🏗️ Módulo 2: Colaboração e Dados
Escalando o desenvolvimento e persistindo informação. - Aulas 05 a 08: Plataformas Git, DB Relacional, NoSQL e Cache, e Frameworks de Teste.
🔌 Módulo 3: API e Qualidade
Conectividade robusta e código impecável. - Aulas 09 a 12: Ferramentas de API, Qualidade de Código, CI/CD Moderno e Automação/IaC.
🚀 Módulo 4: Infraestrutura e Docker
Virtualização e orquestração para o mundo real. - Aulas 13 a 15: Docker e Compose, K8s e Runners, e Comunicação Corporativa.
🎨 Módulo 5: Design e UI
A ponte entre a funcionalidade e a experiência do usuário. - Aula 16: Design System e Figma para Desenvolvedores.
💡 Dicas de Sucesso
- Domine o Terminal: Muitas ferramentas de automação e infraestrutura (Docker, Git, IaC) dependem de um uso fluido da CLI.
- Pratique o Fluxo Git: O controle de versão é o coração da colaboração moderna; não avance sem entender
branchingepull requests. - Automatize Tudo: Sempre que possível, utilize as ferramentas de CI/CD para validar seu código automaticamente.
Pronto para dominar as ferramentas? Ir para Aula 01
Plano de Ensino 🧭
Curso: Guia de Ferramentas - ADS Extra
Público-alvo: Estudantes de ADS, Ciência da Computação e Desenvolvedores de Software
Carga Horária: 20 Aulas (80 Horas Teórico-Práticas)
🎯 1. Objetivos do Curso
- Compreender os fundamentos conceituais e arquiteturais de Guia de Ferramentas - ADS Extra.
- Aplicar padrões de projeto, sintaxe moderna e boas práticas da indústria.
- Desenvolver soluções completas através de exercícios práticos e desafios de projeto.
📚 2. Cronograma de Aulas (Matriz de 20 Semanas)
| Aula | Tema Central | Atividades e Entregas |
|---|---|---|
| 01 | Introdução ao Ecossistema de Ferramentas | Teoria, Prática Guiada, Quiz e Exercícios |
| 02 | Gestão de Projetos e Tarefas | Teoria, Prática Guiada, Quiz e Exercícios |
| 03 | Ambiente de Desenvolvimento | Teoria, Prática Guiada, Quiz e Exercícios |
| 04 | Controle de Versão com Git: Fundamentos ️ | Teoria, Prática Guiada, Quiz e Exercícios |
| 05 | Plataformas de Colaboração | Teoria, Prática Guiada, Quiz e Exercícios |
| 06 | Bancos de Dados Relacionais e Clientes GUI | Teoria, Prática Guiada, Quiz e Exercícios |
| 07 | Bancos de Dados NoSQL e Cache | Teoria, Prática Guiada, Quiz e Exercícios |
| 08 | Frameworks de Teste e Qualidade | Teoria, Prática Guiada, Quiz e Exercícios |
| 09 | Ferramentas de API (Postman / Insomnia) | Teoria, Prática Guiada, Quiz e Exercícios |
| 10 | Qualidade de Código (Linters e Formatters) | Teoria, Prática Guiada, Quiz e Exercícios |
| 11 | CI/CD Moderno (GitHub Actions) | Teoria, Prática Guiada, Quiz e Exercícios |
| 12 | Automação e IaC (Ansible e Terraform) ️ | Teoria, Prática Guiada, Quiz e Exercícios |
| 13 | Contêineres com Docker | Teoria, Prática Guiada, Quiz e Exercícios |
| 14 | Orquestração com Kubernetes e Runners ️ | Teoria, Prática Guiada, Quiz e Exercícios |
| 15 | Comunicação e Colaboração em Equipe | Teoria, Prática Guiada, Quiz e Exercícios |
| 16 | Design, Prototipagem e Handoff (Figma) | Teoria, Prática Guiada, Quiz e Exercícios |
| 17 | Gestão de Projetos com Metodologias Ágeis e Kanban | Teoria, Prática Guiada, Quiz e Exercícios |
| 18 | Automação de Workflows de Produtividade em Desenvolvimento | Teoria, Prática Guiada, Quiz e Exercícios |
| 19 | Análise de Métricas de Software e Qualidade | Teoria, Prática Guiada, Quiz e Exercícios |
| 20 | Projeto Capstone: Ecossistema de Produtividade Integrado | Teoria, Prática Guiada, Quiz e Exercícios |
🧠 3. Metodologia de Ensino
- Teoria Fundamentada: Aulas com conceitos detalhados, diagramas arquiteturais e sintaxe de referência.
- Ciclo Teoria ⇄ Prática: Cada aula conta com Quiz Interativo (10 questões) para validação imediata, Lista de Exercícios Sanfonados (com Gabarito Explicado) e Desafio de Projeto Prático.
- Laboratório Contínuo: Ambientes configurados passo a passo na seção de Setups da plataforma.
💼 4. Competências e Perfil Desenvolvido
- Dominar as ferramentas e fluxos de desenvolvimento de Guia de Ferramentas - ADS Extra.
- Resolver problemas técnicos de alta complexidade com código limpo e performático.
- Construir portfólio prático com 20 projetos aplicados.
📊 5. Critérios de Avaliação
- 20 Listas de Exercícios: Resolução individual dividida em Básico, Intermediário e Desafio.
- 20 Quizzes Interativos: Validação formativa com feedback imediato via JavaScript.
- 20 Desafios de Projetos: Aplicações práticas consolidando o aprendizado de cada unidade.
Aulas
Aulas do Curso
Bem-vindo à seção de aulas! Aqui você encontra todo o conteúdo do curso organizado em 5 módulos estruturados.
📚 Módulos do Curso
-
Módulo 1: Fundamentos & Bases ---
-
Módulo 2: Arquitetura & Conceitos Essenciais ---
-
Módulo 3: Engenharia & Aplicação Prática ---
-
Módulo 4: Software, Ferramentas & Padrões ---
-
Módulo 5: Tópicos Avançados & Projeto Capstone ---
Aula 01 - Introdução ao Ecossistema de Ferramentas 🌐
Objetivo
Objetivo: Compreender a importância das ferramentas no ciclo de vida de desenvolvimento de software e identificar as principais categorias de ferramentas utilizadas por equipes profissionais.
1. Por que as Ferramentas Importam? 🛠️
No desenvolvimento moderno, escrever código é apenas uma parte do trabalho. Para entregar software de forma eficiente, segura e colaborativa, utilizamos um conjunto de ferramentas que formam o nosso ecossistema de desenvolvimento.
🧠 Conceito: O Cinto de Utilidades do Dev
Assim como um marceneiro precisa de ferramentas especializadas para diferentes cortes e acabamentos, o ciclo de vida do software exige plataformas dedicadas. IDEs, controle de versão e pipelines formam uma cadeia de valor onde a saída de uma ferramenta alimenta a entrada da próxima.
No seu dia a dia profissional, você não abrirá apenas o VS Code. Seu fluxo será: Ler a Issue no Jira -> Criar branch no Git -> Escrever Código no VS Code -> Testar com Jest -> Subir um Pull Request no GitHub -> Ver o CI/CD (Actions) validar seu código.
2. Categorias de Ferramentas 🗂️
Podemos dividir as ferramentas essenciais em grandes blocos:
- Gestão e Organização: Onde planejamos o que será feito (Jira, Trello).
- Ambiente de Desenvolvimento: Onde o código nasce (VS Code, Terminal).
- Controle de Versão: Onde guardamos o histórico e colaboramos (Git, GitHub).
- Bancos de Dados: Onde os dados residem (PostgreSQL, MongoDB).
- Qualidade e Testes: Onde garantimos que tudo funciona (Postman, Jest).
- Infraestrutura e CI/CD: Onde o código "vai pro mundo" (Docker, GitHub Actions).
Visualização do Fluxo Profissional
graph LR
Plan([Planejamento]) --> Dev([Desenvolvimento])
Dev --> Test([Testes])
Test --> Deploy([Deploy/Produção])
Deploy --> Monitor([Monitoramento])
Monitor --> Plan
subgraph Ferramentas
Plan -.-> Jira
Dev -.-> VSCode
Test -.-> Postman
Deploy -.-> Docker
end
3. A Importância da Automação 🤖
Uma das metas deste curso é ensinar você a parar de fazer tarefas repetitivas manualmente.
Conceito
Automação é o uso de ferramentas para executar processos que seriam lentos ou propensos a erro se feitos por humanos (ex: rodar todos os testes do sistema a cada alteração no código).
4. O Coração do Desenvolvimento: O Terminal 💻
Quase todas as ferramentas profissionais possuem uma interface de linha de comando (CLI). Dominar o terminal é o primeiro passo para se tornar um desenvolvedor avançado.
5. Prática: Diagnóstico do Cinto de Ferramentas 🚀
Sua primeira missão é verificar o que você já tem instalado e o que precisaremos configurar:
- Abra seu terminal (CMD, PowerShell ou Terminal do macOS/Linux).
- Tente executar os comandos:
git --version,code --version,docker --version. - Anote quais ferramentas responderam com a versão e quais não foram encontradas.
- Crie uma conta gratuita no GitHub caso ainda não possua.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 02 - Gestão de Projetos e Tarefas 📊
Objetivo
Objetivo: Conhecer as principais ferramentas de gestão ágil, entender a diferença entre Scrum e Kanban e aprender a organizar o fluxo de trabalho de uma equipe de desenvolvimento.
1. Organização é Tudo! 📋
Um projeto de software moderno envolve centenas de tarefas, bugs e melhorias. Sem uma ferramenta de gestão, a equipe se perde em e-mails e mensagens de chat.
🧠 Conceito: Gestão Ágil
A maioria das ferramentas modernas baseia-se em metodologias ágeis (Agile). Diferente do modelo Cascata, o Agile foca em ciclos curtos de entrega (Sprints), feedback constante do cliente e transparência total sobre o que cada membro está desenvolvendo, garantindo previsibilidade.
Nas dailys (reuniões diárias de 15 minutos), a equipe se reúne em frente ao quadro Kanban para responder: O que eu fiz ontem? O que farei hoje? Existe algum impedimento bloqueando a minha tarefa?
2. Ferramentas de Mercado 🏗️
🟦 Jira Software
O padrão da indústria para ambientes corporativos. Extremamente poderoso e configurável. * Ideal para: Equipes grandes de engenharia. * Recurso chave: Quadros Scrum (Sprints) e relatórios de métricas.
🟨 Trello / Asana
Ferramentas visuais baseadas em cartões. Muito simples e intuitivas. * Ideal para: Projetos menores, equipes multidisciplinares e organização pessoal. * Recurso chave: Sistema de "Arrastar e Soltar" (Drag and Drop).
⬛ GitHub / GitLab Issues
Integradas diretamente ao repositório de código. * Ideal para: Rastrear bugs e funcionalidades atreladas a linhas específicas de código. * Recurso chave: Linking de issues com Pull Requests.
3. O Quadro Kanban 🧱
O Kanban é a forma mais comum de visualizar o trabalho. Consiste em colunas que representam o status de cada tarefa.
Fluxo Típico de Desenvolvimento
graph TD
A([Criar Tarefa]) --> B{Em Execução?}
B -- Sim --> C([Desenvolvimento])
B -- Não --> A
C --> D([Revisão de Código])
D --> E([Concluído])
subgraph "Estados Kanban"
A
C
D
E
end
Nota
O diagrama acima é uma representação visual simplificada do fluxo.
4. Criando sua Primeira Task 💻
Vamos simular a criação de uma tarefa no terminal, algo comum em ferramentas que possuem CLI ou integrações:
5. Prática: Organizando seu Semestre 🚀
Sua missão é criar um quadro de gestão para suas atividades acadêmicas ou pessoais:
- Crie uma conta gratuita no Trello.
- Crie um quadro chamado "Organização ADS".
- Crie as colunas: Backlog, Em Execução, Em Revisão e Concluído.
- Adicione pelo menos 5 tarefas reais que você tenha para esta semana.
- Mova uma das tarefas para a coluna "Em Execução".
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 03 - Ambiente de Desenvolvimento 💻
Objetivo
Objetivo: Customizar o ambiente de trabalho para máxima eficiência, conhecer a diferença entre Editores de Código e IDEs e dominar comandos básicos de terminal.
1. Editor vs IDE: Qual Escolher? 🧠
Embora pareçam iguais, ferramentas de escrita de código têm propósitos diferentes.
📄 Editores de Código (Ex: VS Code)
São leves, rápidos e "nascem" simples. Você os torna poderosos através de extensões. * Vantagens: Consome pouca memória, gratuito, ecossistema gigante. * Desvantagens: Exige configuração manual para algumas linguagens.
🏎️ IDEs - Ambientes Integrados (Ex: IntelliJ, PyCharm)
Editores transferem a responsabilidade da configuração para o desenvolvedor. Eles carregam em milissegundos, consomem pouca RAM e são perfeitos para stacks modernas focadas em JavaScript/TypeScript.
IDEs automatizam o onboarding. Ao criar um projeto Spring Boot (Java), a IDE já configura o classpath, baixa as dependências Maven, mapeia botões para o banco de dados e levanta as configurações de debug automaticamente. Seu custo é o alto consumo de recursos da máquina.
2. O Super Poder do VS Code 🚀
O Visual Studio Code é o editor mais popular do mundo. Para ele ser produtivo, você precisa do "kit básico" de extensões:
- Portuguese (Brazil): Para traduzir a interface.
- Material Icon Theme: Para ícones de arquivos mais bonitos.
- Prettier: Para formatar seu código automaticamente.
- Error Lens: Para ver erros de código diretamente na linha.
3. Dominando o Terminal (CLI) ⌨️
O terminal é onde a magia acontece. Ele permite automatizar tarefas que levariam minutos na interface visual.
Comandos Essenciais (Universal)
| Comando | Ação |
|---|---|
ls (ou dir) |
Listar arquivos da pasta |
cd |
Entrar em uma pasta |
mkdir |
Criar uma nova pasta |
touch (ou echo >) |
Criar um novo arquivo |
rm (ou del) |
Excluir um arquivo |
Exemplo Prático de Fluxo no Terminal
4. Customização Profissional 🎨
Muitos desenvolvedores profissionais utilizam ferramentas para tornar o terminal mais informativo (como ZSH, Oh My Zsh ou Oh My Posh).
Componentes do Setup Ideal
graph TD
Dev([Desenvolvedor]) --> OS([Sistema Operacional])
OS --> Shell([Terminal/Shell])
Shell --> ZSH([ZSH / Oh My Zsh])
OS --> Editor([VS Code])
Editor --> Ext([Extensões])
subgraph "Ambiente Local"
Shell
Editor
end
Dica: Windows
No Windows, você pode usar o Windows Terminal e configurar o Oh My Posh para ter uma experiência visual similar.
5. Prática: Setup do Guerreiro(a) 🚀
Sua missão é deixar seu ambiente pronto para os próximos meses:
- Instale o Visual Studio Code.
- Instale as extensões citadas no capítulo 2.
- Abra o terminal do seu sistema e execute o comando
mkdir ads-ferramentas. - Entre na pasta e crie um arquivo chamado
config.txtusando comandos de terminal. - Configure o tema do seu VS Code para um que você goste (Ex: Dracula, One Dark Pro).
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 04 - Controle de Versão com Git: Fundamentos 🛠️
Objetivo
Objetivo: Entender o conceito de versionamento distribuído, configurar o Git pela primeira vez e dominar o fluxo básico de salvamento de trabalho (Local Workflow).
1. O que é o Git? 🧠
O Git é um sistema de controle de versão distribuído. Ele funciona como uma "Máquina do Tempo" para o seu código, permitindo que você salve estados do projeto e retorne a eles se algo der errado.
🧠 Conceito: Snapshot vs Backup
Ferramentas convencionais (como Google Drive) salvam cópias inteiras do arquivo. Se você apagar tudo e salvar, a versão anterior se perde ou fica difícil de recuperar sem duplicar gigabytes de dados.
O Git tira "fotos" incrementais do seu projeto. Ele monitora apenas o que mudou (as linhas adicionadas ou removidas). Se não há alteração, o Git apenas aponta para a versão anterior, permitindo navegar por todo o histórico em milissegundos.
2. Configuração Inicial ⚙️
Antes de começar, o Git precisa saber quem você é. Isso é importante para que cada alteração tenha um autor identificado.
3. O Fluxo de Trabalho Local 🔄
Para salvar alterações no Git, passamos por três estados principais:
- Working Directory: Onde você edita seus arquivos.
- Staging Area (Index): A "sala de espera". Aqui você escolhe o que será salvo.
- Local Repository: Onde a "foto" é guardada permanentemente.
Visualização do Fluxo de Trabalho
graph LR
WD([Working Directory]) -- git add --> SA([Staging Area])
SA -- git commit --> LR([Local Repository])
LR -- git checkout --> WD
4. Comandos de Sobrevivência ⌨️
Estes são os comandos que você usará 90% do tempo:
| Comando | Ação |
|---|---|
git init |
Transforma a pasta atual em um repositório Git. |
git status |
Mostra o que foi alterado e o que está na "sala de espera". |
git add . |
Adiciona todas as mudanças para a Staging Area. |
git commit -m "mensagem" |
Salva as mudanças com uma descrição. |
git log |
Mostra o histórico de todas as fotos (commits). |
5. Exemplo Prático de Commit 💻
6. Prática: Minha Primeira Máquina do Tempo 🚀
- Crie uma pasta chamada
meu-primeiro-repo. - Inicie o Git nesta pasta.
- Crie um arquivo
historia.txte escreva uma frase. - Adicione o arquivo ao Git e faça um commit com a mensagem "Início da história".
- Altere o arquivo, adicione outra frase e faça um novo commit "Capítulo 2".
- Use o comando
git logpara ver suas duas "fotos" salvas.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 05 - Plataformas de Colaboração 🤝
Objetivo
Objetivo: Entender o papel das plataformas de hospedagem de código, conectar seu repositório local com a nuvem e compreender o fluxo de colaboração via Pull Requests.
1. Do Local para a Nuvem ☁️
Até agora, trabalhamos apenas na nossa máquina. Para colaborar com outras pessoas e garantir a segurança do nosso código, usamos plataformas como GitHub, GitLab ou Bitbucket.
🧠 Conceito: Repositório Remoto (Remote)
O repositório remoto atua como um porto seguro contra desastres. Se o seu computador local (Working Directory e Local Repo) for destruído, seu código ainda vive nas nuvens do GitHub/GitLab.
O Git distribui esse poder. Você "empurra" (push) os seus snapshots em lote para o repô remoto para a sua equipe, e "puxa" (pull) as fotos de outros colegas para se atualizar.
2. GitHub: O Padrão de Mercado 🐙
O GitHub é a maior plataforma de desenvolvedores do mundo. Além de hospedar o código, ele oferece ferramentas sociais e de automação.
Comandos de Conexão
| Comando | Ação |
|---|---|
git remote add origin <URL> |
Conecta seu repo local a um link remoto. |
git push -u origin main |
Envia seus commits para o servidor pela primeira vez. |
git pull origin main |
Traz as novidades do servidor para sua máquina. |
git clone <URL> |
Baixa um projeto completo da internet. |
3. O Fluxo de Colaboração Profissional 🔄
Em equipes profissionais, ninguém mexe direto no código "oficial" (main). Usamos um fluxo chamado GitHub Flow:
- Branch: Você cria uma "cópia" segura para trabalhar.
- Commit: Faz suas alterações.
- Pull Request (PR): Você pede permissão para unir suas mudanças ao código oficial.
- Code Review: Outros devs revisam seu código e sugerem melhorias.
- Merge: Se tudo estiver ok, o código é unido.
Visualização do Fluxo de PR
graph LR
Main([Main Branch]) -- git checkout -b feature --> Feature([Sua Branch])
Feature -- git commit --> Feature
Feature -- Pull Request --> Review{Revisão}
Review -- Aprovado --> Main
Review -- Pedido de ajuste --> Feature
4. Praticando a Sincronização 💻
5. Prática: Meu Portfólio no Ar 🚀
Sua missão é subir um de seus códigos para o GitHub:
- Crie um novo repositório Público no GitHub chamado
ads-ferramentas-desafio. - No seu terminal, dentro de uma pasta com código, execute o comando para adicionar o
origin. - Faça o
pushdo seu código. - Verifique no navegador se os arquivos apareceram lá.
- Desafio: Peça para um colega (ou use outra conta) fazer um "Fork" do seu projeto.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 06 - Bancos de Dados Relacionais e Clientes GUI 💾
Objetivo
Objetivo: Compreender o modelo de dados relacional (SQL), conhecer os principais bancos de dados do mercado e dominar o uso de ferramentas visuais para manipulação de dados.
1. Onde os Dados Moram? 🏗️
Quase toda aplicação precisa salvar informações permanentemente (usuários, pedidos, produtos). Para isso, usamos Sistemas de Gerenciamento de Banco de Dados (SGBDs).
🧩 Modelo Relacional (SQL)
O modelo SQL usa estruturação forte, em que cada coluna representa um atributo muito claro e inquebrável (Ex: ID, Nome, Email). Para organizar isso e mitigar a redundância de dados, divide-se em múltiplas tabelas que se "relacionam".
No exemplo abaixo, as informações estão na Tabela Usuarios. Se este usuário realiza compras, não reescrevemos o nome/email na venda, mas guardamos uma referência apontando para o seu ID.
| Exemplo de Tabela: Usuarios |
| :--- | :--- | :--- |
| ID | Nome | Email |
| 1 | Ana Silva | ana@email.com |
| 2 | Bob Souza | bob@email.com |
2. Líderes de Mercado 🏆
🐘 PostgreSQL
O "queridinho" dos desenvolvedores modernos. É robusto, gratuito e extremamente poderoso para lidar com grandes volumes de dados complexos.
🐬 MySQL
Famoso por ser o motor de grandes plataformas como o WordPress. É rápido e possui uma comunidade gigantesca.
3. Clientes GUI: Adeus Linha de Comando! 🖥️
Embora você possa usar o terminal, ferramentas visuais (Graphical User Interface) facilitam muito a vida do desenvolvedor.
🐝 DBeaver
O "canivete suíço" dos bancos de dados. É uma ferramenta universal que se conecta a quase qualquer banco (SQL, NoSQL, Nuvem). * Vantagem: Você aprende uma interface e usa em todos os projetos.
🎨 Beekeeper Studio
Uma alternativa moderna, mais bonita e simples de usar, ideal para quem está começando.
4. Visualizando Estruturas
erDiagram
USUARIO ||--o{ PEDIDO : "faz"
PEDIDO ||--|{ ITEM_PEDIDO : "contem"
PRODUTO ||--o{ ITEM_PEDIDO : "pertence"
5. Praticando com SQL no Terminal 💻
Mesmo com ferramentas visuais, é bom conhecer o básico:
6. Prática: Conectando os Pontos 🚀
Sua missão é explorar um banco de dados real usando uma ferramenta visual:
- Instale o DBeaver Community Edition em sua máquina.
- Crie uma nova conexão do tipo SQLite (um banco que é apenas um arquivo, sem precisar instalar servidor).
- Crie uma tabela chamada
Ferramentascom as colunas:ID,NomeeCategoria. - Insira 3 linhas de dados usando a interface visual do DBeaver.
- Execute uma consulta SQL:
SELECT * FROM Ferramentas;e veja o resultado.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 07 - Bancos de Dados NoSQL e Cache ⚡
Objetivo
Objetivo: Entender quando utilizar bancos de dados não relacionais (NoSQL), compreender o conceito de documentos e descobrir como o Cache (Redis) acelera aplicações de larga escala.
1. Além das Tabelas: O Mundo NoSQL 🧠
Nem todo dado se encaixa bem em linhas e colunas rígidas. Para dados flexíveis e que precisam escalar rapidamente, usamos o NoSQL (Not Only SQL).
📄 Orientado a Documentos (MongoDB)
Em vez de tabelas rigorosas, usamos Coleções, que armazenam Documentos. Esses documentos se assemelham a objetos JSON na estrutura de chave-valor.
Ao dispensar "joins" complexos e predefinir que um mesmo Produto A pode ter especificações ausentes no Produto B, o MongoDB facilita muito o sharding — ou seja, espalhar os dados horizontalmente por dezenas de discos diferentes.
2. NoSQL vs SQL: Qual Usar? ⚖️
| Característica | 💾 SQL (Relacional) | ⚡ NoSQL (Documentos) |
|---|---|---|
| Esquema | Rígido (Fixo) | Flexível (Dinâmico) |
| Relacionamentos | Complexos (Joins) | Simples (Embarcados) |
| Foco | Consistência e Precisão | Velocidade e Escala |
| Exemplos | Postgres, MySQL | MongoDB, Cassandra |
3. Redis: A Velocidade da Memória 🚀
O Redis é um banco de dados que vive na Memória RAM, e não no disco rígido. Isso o torna incrivelmente rápido (milissegundos!).
🧠 Conceito: Cache
Imagine que um site de notícias tem 1 milhão de acessos na mesma matéria. Em vez de perguntar para o banco de dados lento 1 milhão de vezes, salvamos a resposta no Redis (Cache) por alguns minutos.
Fluxo de Funcionamento do Cache
sequenceDiagram
participant User as Usuário
participant App as Aplicação
participant Cache as Redis (Cache)
participant DB as Postgres (Lento)
User->>App: Acessa Produto 1
App->>Cache: Tem no Cache?
Cache-->>App: Não (Miss)
App->>DB: Busca no Disco
DB-->>App: Retorna Dados
App->>Cache: Salva no Cache
App-->>User: Exibe Produto
4. Praticando com Redis no Terminal 💻
5. Prática: Explorando um JSON 🚀
No NoSQL, a estrutura mais comum é o JSON. Sua missão é criar o "esquema" de um documento para um sistema de cursos:
- Abra seu VS Code.
- Crie um arquivo chamado
aula.json. - Descreva uma aula utilizando a estrutura JSON (campos como nome, duracao, lista de ferramentas).
- Certifique-se de que o JSON esteja válido (use um validador online se necessário).
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 08 - Frameworks de Teste e Qualidade 🧪
Objetivo
Objetivo: Entender a importância dos testes automatizados para a estabilidade do software, conhecer os diferentes níveis de teste e descobrir os principais frameworks de cada linguagem.
1. Por que Testar? 🛡️
Software sem testes é uma bomba relógio. À medida que o código cresce, mudar uma linha pode quebrar algo que já estava funcionando.
🧠 Conceito: Regressão
Na engenharia, um pequeno hotfix numa função utilitária pode desencadear uma reação em cadeia oculta. Se os desenvolvedores precisarem testar a tela toda a vez que o código muda, perde-se eficiência e confiabilidade.
Testes automatizados evitam a regressão. Eles processam as regras de negócio em frações de segundos garantindo que um módulo continue retornando o que você esperava antes de aprovar uma mudança nova.
2. Níveis de Teste: A Pirâmide 🏗️
Nem todos os testes são iguais. Os desenvolvedores seguem a Pirâmide de Testes:
- Testes Unitários (Base): Testam pequenas partes isoladas (funções ou classes). São rápidos e baratos.
- Testes de Integração (Meio): Testam se dois ou mais módulos funcionam bem juntos (ex: API salvando no Banco).
- Testes E2E - Ponta a Ponta (Topo): Simulam o usuário real clicando na tela. São lentos e complexos.
Pirâmide de Testes
graph TD
UI([Testes E2E / UI]) -- Lento/Caro --- INT([Testes de Integração])
INT --- UNIT([Testes Unitários])
UNIT -- Rápido/Barato --- UNIT
3. Ferramentas por Linguagem 🏆
Cada ecossistema tem seu framework de "ouro":
| Linguagem | Framework de Teste |
|---|---|
| JavaScript/TS | Jest / Vitest |
| Python | PyTest |
| Java | JUnit |
| C# (.NET) | xUnit / NUnit |
4. O Ciclo TDD (Test Driven Development) 🔄
Alguns desenvolvedores preferem escrever o teste antes do código. Este processo é chamado de TDD:
- 🔴 Red: Escreve um teste que falha.
- 🟢 Green: Escreve o código mínimo para o teste passar.
- 🔵 Refactor: Melhora o código garantindo que o teste ainda passe.
5. Praticando no Terminal 💻
Simulando a execução de um teste com o Jest:
6. Prática: O Primeiro Teste (Lógica) 🚀
Mesmo que ainda não estejamos codificando, vamos pensar na lógica de um teste unitário:
- Imagine uma função chamada
calcularDesconto(preco, percentual). - No seu bloco de notas, escreva 3 cenários de teste:
- Cenário 1: Preço 100, Desconto 10. Resultado esperado: 90.
- Cenário 2: Preço 50, Desconto 0. Resultado esperado: 50.
- Cenário 3: Preço 200, Desconto 100. Resultado esperado: 0.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 09 - Ferramentas de API (Postman / Insomnia) 📡
Objetivo
Objetivo: Dominar o uso de clients HTTP para testar e documentar APIs, entender os métodos HTTP e interpretar os principais códigos de status retornados pelo servidor.
1. O que são Clients de API? 🕵️♂️
Quando desenvolvemos o backend (o "servidor"), muitas vezes ainda não temos o frontend (a "tela"). Para testar se o servidor está respondendo corretamente, usamos ferramentas que simulam requisições de um navegador ou aplicativo.
🏆 Líderes de Mercado
A plataforma mais consolidada no mercado. É ideal para APIs maduras que necessitam de Workspaces compartilhados, Mocks e automação completa de coleções (com relatórios).
Foca no minimalismo, velocidade e segurança local. Por não sobrecarregar as abas com dezenas de features, é a escolha preferida de novos devs e projetos ágeis.
2. O Protocolo HTTP na Prática 🔄
Para conversar com uma API, precisamos seguir as regras do protocolo HTTP.
Métodos (Verbos) HTTP
- GET: Buscar informações (ex: listar produtos).
- POST: Criar algo novo (ex: cadastrar usuário).
- PUT: Atualizar algo existente (ex: mudar senha).
- DELETE: Remover algo (ex: excluir conta).
Status Codes (Retorno do Servidor)
- 200 OK: Deu tudo certo!
- 201 Created: Criado com sucesso.
- 400 Bad Request: Você enviou algo errado.
- 401 Unauthorized: Você não está logado.
- 404 Not Found: Não encontrei o que você pediu.
- 500 Internal Server Error: O servidor "quebrou" (erro do programador).
3. Fluxo de uma Requisição
sequenceDiagram
participant Dev as Postman/Insomnia
participant API as Servidor API
participant DB as Banco de Dados
Dev->>API: POST /usuarios (Dados do Usuário)
API->>DB: Salva no Banco
DB-->>API: Confirmado
API-->>Dev: 201 Created (JSON com ID)
4. Praticando no Terminal 💻
Embora o Postman seja visual, as APIs também podem ser testadas via terminal usando o comando curl:
5. Prática: Minha Primeira Collection 🚀
Sua missão é testar uma API pública e organizar os resultados:
- Baixe e instale o Postman ou o Insomnia.
- Crie uma nova Collection chamada "Teste Local".
- Crie uma requisição GET para:
https://jsonplaceholder.typicode.com/posts. - Verifique o Status Code. Foi 200?
- Desafio: Tente fazer um POST para a mesma URL enviando um JSON com
titleebody.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 10 - Qualidade de Código (Linters e Formatters) ✨
Objetivo
Objetivo: Entender como as ferramentas de análise estática garantem a padronização do código em equipe, evitando erros comuns e mantendo um estilo visual consistente.
1. O Código Além do Funcionamento 🧠
Não basta o código "funcionar". Para que um projeto dure anos e seja mantido por várias pessoas, ele precisa ser legível e seguir padrões.
🧩 Análise Estática
Ferramentas de análise estática são o primeiro filtro de qualidade de um time. Elas leem seu código antes mesmo de você tentar rodá-lo (sem executá-lo), detectando anomalias e code smells (códigos mal estruturados).
As regras são configuráveis. O time decide que "Toda função deve ter limite de 20 linhas" ou "Ninguém pode usar aspas duplas". O Linter se torna o policial automático que barra códigos fora do padrão no GitHub.
2. Linters vs Formatters: Qual a Diferença? ⚖️
Embora parecidos, eles resolvem problemas diferentes:
| Ferramenta | O que faz? | Exemplo |
|---|---|---|
| Linter (ESLint / Flake8) | Encontra erros de lógica e potenciais bugs. | Variável criada mas nunca utilizada. |
| Formatter (Prettier / Black) | Cuida do visual e do estilo do código. | Colocar ponto e vírgula, ajustar espaços. |
🛠️ Por que usar os dois?
O Formatter deixa o código bonito; o Linter garante que ele está correto e segue as boas práticas da linguagem.
3. O Fluxo de Correção de Código
graph TD
Code([Escrever Código]) --> Lint([Executar Linter])
Lint -- Erro Encontrado --> Fix([Corrigir Lógica])
Fix --> Lint
Lint -- OK --> Format([Executar Formatter])
Format --> Clean([Código Limpo e Padronizado])
4. Praticando no Terminal 💻
Simulando o uso do ESLint para encontrar erros e do Prettier para formatar:
5. Prática: Configurando o Corretor Automático 🚀
Sua missão é ver a mágica da formatação automática no VS Code:
- Abra o VS Code e instale a extensão Prettier - Code Formatter.
- Vá em Settings (Ctrl + ,) e pesquise por
Format on Save. Ative essa opção. - Crie um arquivo chamado
bagunca.js. - Escreva um código propositalmente bagunçado (muitos espaços, aspas simples e duplas misturadas, sem identação).
- Salve o arquivo e observe o VS Code organizar tudo instantaneamente.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 11 - CI/CD Moderno (GitHub Actions) 🚀
Objetivo
Objetivo: Compreender o ciclo de integração e entrega contínua (CI/CD), aprender a criar workflows automatizados no GitHub e garantir que o código seja testado automaticamente a cada push.
1. O que é CI/CD? 🔄
Em vez de rodar testes e linters manualmente na sua máquina local, a nuvem assume a responsabilidade após cada interação no controle de versão.
Integrar e validar o código de dezenas de desenvolvedores repetidas vezes ao dia. O servidor "puxa" o código, roda os linters, compila (build) e dispara centenas de testes unitários. Se algo quebrar, o pull request é bloqueado.
Uma vez que os testes garantem que o software está estável (CI passou), o processo de CD empacota esse aplicativo e o instale automaticamente nos servidores hospedados de teste ou de produção, sem intervenção humana.
2. GitHub Actions: Automação na Nuvem 🤖
O GitHub Actions é a ferramenta de CI/CD integrada ao GitHub. Ele funciona através de arquivos de configuração no formato YAML.
Componentes do Actions:
- Workflow: O processo completo (ex: "Build e Teste").
- Event: O que dispara o processo (ex: um
pushou umpull_request). - Job: Uma tarefa específica dentro do workflow (ex: "rodar testes unitários").
- Steps: Os comandos passo a passo dentro de um Job.
3. Visualização da Pipeline
graph LR
Push([Git Push]) --> Trigger{GitHub Event}
Trigger --> VM([Spin up Virtual Machine])
VM --> Install([npm install])
Install --> Lint([npx eslint .])
Lint --> Test([npm test])
Test -- Success --> Deploy([Auto Deploy])
Test -- Failure --> Notify([Notificar Developer])
4. O Arquivo de Configuração (.yml) 📄
Abaixo, um exemplo de como é um arquivo de workflow real:
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
5. Praticando no Terminal (Simulação) 💻
Imagine o terminal do servidor do GitHub executando seu workflow:
6. Prática: Monitorando um Workflow 🚀
- Vá até um repositório seu no GitHub.
- Clique na aba Actions.
- O GitHub sugerirá "Workflows" baseados na sua linguagem.
- Escolha um simples (como Node.js ou Python) e clique em Set up this workflow.
- Clique em Commit changes.
- Veja o workflow rodar em tempo real e verifique se ele fica "Verde" (Sucesso).
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 12 - Automação e IaC (Ansible e Terraform) ⚙️
Objetivo
Objetivo: Entender o conceito de Infraestrutura como Código (IaC), descobrir como o Terraform cria recursos na nuvem e como o Ansible gerencia e configura servidores automaticamente.
1. O Problema da Configuração Manual 😫
No passado, para criar um servidor, um técnico precisava configurar tudo manualmente: instalar o Linux, o banco de dados, as senhas, etc. Se precisasse de 10 servidores, ele repetia o processo 10 vezes.
🧠 Conceito: Infraestrutura como Código (IaC)
O provisionamento manual envolve dezenas de cliques em painéis como AWS ou Azure. Quando a empresa cresce e precisa de 100 servidores idênticos, a chance de erro humano (configuração esquecida, porta aberta, versão errada) beira os 100%.
Com IaC, a infraestrutura vira um script de texto versionado no Git. Se um servidor queimar, basta apertar "Run" novamente e um gêmeo idêntico subirá em minutos. Do mesmo modo, se um desenvolvedor injetar uma falha na infra, o time poderá simplesmente revogar (reverter) o commit no código de infraestrutura.
2. Terraform: O Arquiteto da Nuvem 🏗️
O Terraform serve para provisionar a infraestrutura. Ele "telefona" para a AWS, Google Cloud ou Azure e diz: "Crie para mim 3 servidores e 1 banco de dados".
- Linguagem: HCL (HashiCorp Configuration Language).
- Estado (State): O Terraform lembra o que ele criou, para que ele possa atualizar ou destruir depois sem se perder.
3. Ansible: O Mestre de Obras 👷♂️
Enquanto o Terraform "constrói o prédio" (servidor), o Ansible entra para "pintar as paredes e instalar os móveis" (configurar o software).
- Sem Agente: O Ansible não precisa ser instalado no servidor destino, ele usa apenas o acesso SSH.
- Playbooks: Arquivos YAML que descrevem o que deve ser instalado e configurado.
Fluxo Combinado de Provisionamento
graph TD
Code([Arquivo de Definição]) --> TF([Terraform: Cria o Servidor])
TF --> Server([Servidor Vazio])
Server --> ANS([Ansible: Instala Node/Nginx])
ANS --> Prod([Servidor Pronto para Uso])
4. O Arquivo Ansible (Exemplo) 📄
Mesmo sem rodar, veja como é simples descrever uma instalação de servidor:
---
- name: Instalar Nginx no Servidor Web
hosts: webservers
tasks:
- name: Garantir que o Nginx esteja instalado
apt:
name: nginx
state: present
- name: Iniciar o serviço do Nginx
service:
name: nginx
state: started
5. Prática: Lógica de Automação 🚀
- Imagine que você tem 50 computadores em um laboratório.
- Todos precisam ter o Google Chrome e o VS Code instalados hoje.
- No seu bloco de notas, escreva a sequência de passos que o Ansible faria:
- Passo 1: Baixar instalador do Chrome.
- Passo 2: Executar arquivo de instalação do Chrome.
- Passo 3: Baixar instalador do VS Code...
- Perceba que, com o Ansible, você escreveria isso uma única vez e o comando rodaria nos 50 PCs simultaneamente.
6. Exercício de Fixação 📝
- Básico: O que significa o termo "Infraestrutura como Código"?
- Básico: Qual a diferença principal entre o que o Terraform faz e o que o Ansible faz?
- Intermediário: Por que é mais seguro usar o Terraform do que criar servidores clicando em botões no painel da AWS?
- Intermediário: Explique o que é "Idempotência" (pesquise este termo no contexto de Ansible).
- Desafio: Pesquise o que é "Cloud agnosticism" e por que o Terraform é considerado uma ferramenta que ajuda com isso.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 13 - Contêineres com Docker 📦
Objetivo
Objetivo: Compreender o conceito de conteinerização, aprender a criar imagens Docker e orquestrar múltiplos serviços usando o Docker Compose.
1. O Problema: "Na minha máquina funciona!" 🤷♂️
Este é o pesadelo de todo desenvolvedor. Um código que funciona no seu computador, mas quebra quando vai para o servidor porque a versão do banco de dados ou do Node.js é diferente.
🧠 Conceito: Contêineres
Antigamente, para isolar um sistema, criava-se uma Máquina Virtual (VM) pesada, com seu próprio Sistema Operacional completo (Linux/Windows), sugando dezenas de Gigabytes e minutos de RAM apenas para ligar.
Contêineres empacotam apenas o código e bibliotecas essenciais, compartilhando de forma inteligente o "kernel" do sistema operacional hospedeiro. Isso garante inicialização instantânea e economia brutal de recursos.
2. Docker: A Baleia Azul 🐳
O Docker é a plataforma líder mundial em contêineres.
- Imagem: É o "molde" ou a "receita". Contém tudo o que é necessário para rodar o app (SO, bibliotecas, código).
- Contêiner: É a instância da imagem em execução (o "bolo" pronto).
Diferença para Máquinas Virtuais
graph TD
subgraph "Máquina Virtual (Lenta)"
App1([App 1]) --- GuestSO1([SO Completo])
GuestSO1 --- Hyper([Hypervisor])
end
subgraph "Docker (Rápido)"
App2([App 2]) --- Engine([Docker Engine])
Engine --- HostSO([Host SO Kernel])
end
3. Docker Compose: Multi-Serviços 🎼
Raramente um app vive sozinho. Ele precisa de um Banco de Dados, um Cache e uma API. O Docker Compose permite subir todos eles com um único comando.
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: root
4. Praticando no Terminal 💻
5. Prática: Meu Primeiro Dockerfile 🚀
Vamos criar a "receita" de um servidor simples:
- No VS Code, crie um arquivo chamado
Dockerfile(sem extensão). - Escreva a lógica básica:
- Pense neste arquivo como um conjunto de instruções para o Docker criar sua máquina virtual leve.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 14 - Orquestração com Kubernetes e Runners ☸️
Objetivo
Objetivo: Compreender a necessidade de orquestração de contêineres, conhecer os conceitos básicos de Kubernetes (K8s) e entender como os Runners executam nossas tarefas de automação em larga escala.
1. O que fazer com 1000 Contêineres? 🤯
O Docker é ótimo para rodar um ou dez contêineres. Mas e se você tiver um sistema gigante com milhares de contêineres que precisam escalar conforme o número de usuários sobe e desce?
🧠 Conceito: Orquestração
Sem orquestração, se um dos 1000 contêineres Docker travar, um humano precisaria rodar docker restart. Se o servidor ficar sem memória no meio da madrugada, alguém precisaria comprar outro servidor.
A Orquestração automatiza o gerenciamento. O K8s (Kubernetes) atua como um maestro: ele monitora a saúde das aplicações, reinicia as que falharam ou travaram e aumenta os servidores (Scale Out) quando identificam picos de acessos.
2. Conceitos Chave do Kubernetes 🏗️
O K8s não fala "contêiner", ele fala Pod.
- Pod: A menor unidade (pode conter um ou mais contêineres).
- Node: Uma máquina física ou virtual (o "trabalhador") onde os Pods rodam.
- Cluster: O conjunto de todos os Nodes gerenciados pelo Kubernetes.
- Deployment: A definição de como o seu app deve rodar (ex: "quero sempre 3 cópias deste Pod ligadas").
Visualização de um Cluster
graph TD
Control([Control Plane - O Cérebro]) --> Node1([Node 1])
Control --> Node2([Node 2])
subgraph "Node 1"
Pod1([Pod A])
Pod2([Pod B])
end
subgraph "Node 2"
Pod3([Pod A])
Pod4([Pod C])
end
3. Auto-Cura e Escala Automática 🦾
A grande mágica do Kubernetes é a Auto-Cura: se um contêiner travar ou um servidor desligar, o K8s percebe e sobe um novo contêiner em outra máquina automaticamente.
Conceito
Horizontal Pod Autoscaler (HPA): O K8s pode aumentar o número de Pods se o CPU da sua aplicação estiver muito alto e diminuir quando o tráfego baixar.
4. O Papel dos Runners 🏃♂️
No mundo do CI/CD (que vimos na Aula 11), os Runners são os contêineres que "correm" para executar o seu código. No GitHub Actions, o GitHub fornece runners, mas grandes empresas criam seus próprios Self-hosted Runners em clusters Kubernetes para ter mais controle e velocidade.
5. Prática: Lógica de Orquestração 🚀
- Imagine que você tem uma loja virtual.
- Normalmente, 3 servidores dão conta do recado.
- Chega a Black Friday e os acessos aumentam 10x.
- No seu bloco de notas, desenhe como o Kubernetes deveria agir:
- Passo 1: Perceber aumento de tráfego.
- Passo 2: Criar mais 27 cópias dos servidores (totalizando 30).
- Passo 3: Quando a Black Friday acabar, destruir 27 cópias para economizar dinheiro.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 15 - Comunicação e Colaboração em Equipe 💬
Objetivo
Objetivo: Entender a importância da comunicação eficaz em projetos de software, conhecer as ferramentas líderes de colaboração e aprender as melhores práticas de comunicação assíncrona.
1. O Código não é Tudo 🗣️
O sucesso de um projeto depende 50% da qualidade do código e 50% de quão bem a equipe se comunica. Mal-entendidos geram bugs, atrasos e frustração.
🧠 Conceito: Comunicação Assíncrona
É a comunicação que não exige que ambas as pessoas estejam presentes ao mesmo tempo (ex: mensagens de chat, e-mails, comentários no Git). É essencial para desenvolvedores, pois permite manter o "estado de fluxo" (concentração total).
2. Ferramentas de Mercado 🏢
🟦 Slack
A ferramenta favorita das startups e empresas de tecnologia. * Destaque: Integrações potentes (você pode receber alertas do GitHub ou do Jenkins direto no Slack). * Recurso: Canais organizados por projeto ou assunto.
🟪 Microsoft Teams
Muito comum em grandes corporações que já utilizam o ecossistema Office. * Destaque: Excelente integração para chamadas de vídeo e edição de documentos em tempo real.
3. Integração: ChatOps 🤖
Imagine que um teste falhou na sua pipeline (Aula 11). Em vez de você ter que abrir o GitHub para descobrir, um "bot" avisa a equipe no Slack imediatamente.
Fluxo de Notificação
graph LR
CI[GitHub Actions] -- Falha no Teste --> BOT[Slack Bot]
BOT -- Alerta --> Channel[#projeto-ads]
Channel -- Dev vê --> Fix[Correção Imediata]
4. Etiqueta Digital para Devs 📜
- Evite o "Olá" vazio: Não mande apenas "Oi" e espere a resposta. Mande sua dúvida completa de uma vez.
- Use Threads: Responda a uma mensagem criando uma linha de conversa (thread) para não poluir o canal principal.
- Emojis: Use para confirmar recebimento (ex:
para "entendido") e economizar mensagens.
5. Prática: Configurando um Webhook (Lógica) 🚀
Webhooks são a forma como ferramentas "conversam" com o Slack:
- Imagine que você quer receber um aviso toda vez que um novo aluno entrar no curso.
- No seu bloco de notas, desenhe a lógica:
- Trigger: Cadastro de Aluno no Site.
- Ação: Enviar um JSON para a URL secreta do Slack.
- Resultado: Mensagem "Novo aluno registrado!" no canal #geral.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Aula 16 - Design, Prototipagem e Handoff (Figma) 🎨
Objetivo
Objetivo: Compreender o papel do designer de interface (UI/UX), aprender a navegar no Figma para extrair informações técnicas e entender o processo de "Handoff" — a entrega do design para o desenvolvimento.
1. O que é o Figma? 🎨
O Figma é a ferramenta líder de mercado para design de interfaces. Diferente de softwares antigos, ele é baseado na nuvem e permite que designers e desenvolvedores trabalhem no mesmo arquivo simultaneamente.
🧠 Conceito: Design System
Muitas empresas utilizam um "Design System" no Figma. É uma biblioteca de componentes (botões, cores, fontes) padronizados que garantem que o aplicativo tenha a mesma cara em todas as telas.
2. Dev Mode: O Paraíso do Desenvolvedor 💻
Recentemente, o Figma lançou o Dev Mode, uma interface pensada exclusivamente para programadores. Ao clicar em um elemento, você pode ver: * CSS / Código: Largura, altura, cores em Hexadecimal/RGB. * Assets: Exportar imagens e ícones diretamente em SVG ou PNG. * Spacing: Ver a distância exata entre um botão e um texto.
3. O Processo de Handoff 🤝
Handoff é o momento em que o designer termina o protótipo e o entrega para o desenvolvedor começar a codificar.
Fluxo de Trabalho
graph LR
Ideas[Ideias/UX] --> Wireframe[Protótipo de Baixa Fidelidade]
Wireframe --> HighFi[Design de Alta Fidelidade - Figma]
HighFi -- Handoff --> Dev[Desenvolvimento/Código]
Dev -- Feedback --> HighFi
4. Praticando a Inspeção 🔍
Mesmo sem o Figma aberto, imagine que você está inspecionando um botão no "Dev Mode":
/* Propriedades extraídas do Figma */
.botao-primario {
width: 200px;
height: 48px;
background-color: #6200EE;
border-radius: 8px;
color: #FFFFFF;
font-family: 'Inter', sans-serif;
font-weight: 600;
}
5. Prática: Explorando um Protótipo 🚀
Sua missão final é entrar no mundo do design:
- Crie uma conta gratuita no Figma.
- Busque na "Community" do Figma por um arquivo chamado "Material 3 Design Kit".
- Abra o arquivo e tente encontrar a seção de Buttons.
- Use a ferramenta de "Inspeção" para descobrir qual a cor hexadecimal do botão principal.
- Tente alterar o texto de um botão apenas para entender como a ferramenta funciona.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.
Parabéns!
Você concluiu todas as aulas deste curso!
Aula 17 - Gestão de Projetos com Metodologias Ágeis e Kanban 📋
Objetivo Pedagógico
Objetivo: Compreender a dinâmica de gestão de projetos de software utilizando métodos ágeis (Scrum, Kanban, Scrumban), limitadores de trabalho em progresso (WIP Limits), mapeamento do fluxo de valor (VSM) e Cumulative Flow Diagrams (CFD).
📑 1. Fundamentos Teóricos & Análise Técnica
A gestão moderna de engenharia de software superou modelos prescritivos rígidos em favor de abordagens empíricas e adaptativas fundamentadas na teoria das filas e nos princípios do Lean Software Development.
O método Kanban e a gestão de fluxo apoiam-se em quatro pilares matemáticos essenciais: 1. A Lei de Little (Little's Law): - Expressa formalmente a relação em sistemas de filas em estado estacionário: $\(WIP = Throughput \times Lead\ Time\)$ - Para reduzir o tempo de entrega (Lead Time) sem sobrecarregar a equipe, a intervenção mais eficaz não é tentar forçar o aumento do ritmo de trabalho, mas reduzir deliberadamente o Trabalho em Progresso (WIP - Work in Progress). 2. Work In Progress (WIP Limits): - Limites numéricos estritos aplicados a cada coluna do quadro Kanban. Quando uma coluna atinge seu teto de WIP, os engenheiros são impedidos de puxar novas tarefas (Stop Starting, Start Finishing), sendo incentivados a atuar como colaboradores para destravar tarefas represadas (Swarming). 3. Métricas de Fluxo Analíticas: - Lead Time: Tempo decorrido desde a criação da demanda pelo usuário até sua entrega em produção. - Cycle Time: Tempo decorrido desde o início ativo do desenvolvimento até a conclusão. - Cumulative Flow Diagram (CFD): Gráfico de áreas empilhadas que revela gargalos de processo, acúmulos de trabalho e taxa de chegada vs. conclusão ao longo do tempo.
📐 Arquitetura Conceitual & Diagrama de Fluxo
graph LR
Backlog["Backlog de Engenharia"] --> Ready["Pronto para Dev (WIP: 5)"]
Ready --> InDev["Em Desenvolvimento (WIP: 3)"]
InDev --> CodeReview["Revisão por Pares (WIP: 2)"]
CodeReview --> QA["Validação QA & CI (WIP: 2)"]
QA --> Done["Entregue em Produção (Throughput)"]
Note["Gargalo Detectado: Review atingiu WIP 2! Nenhuma nova tarefa entra em Dev."]
style Backlog fill:#e1f5fe,stroke:#01579b
style InDev fill:#fff3e0,stroke:#e65100
style CodeReview fill:#ffebee,stroke:#c62828
style Done fill:#e8f5e9,stroke:#2e7d32
🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais: - Puxar vs. Empurrar (Pull System): Tarefas só avançam quando o estágio subsequente possui capacidade livre garantida pelos limites de WIP. - Mapeamento do Fluxo de Valor (VSM): Identificação e eliminação de desperdícios, esperas ociosas e retrabalho no ciclo de desenvolvimento. - Previsibilidade por Simulação de Monte Carlo: Projeções probabilísticas de datas de entrega baseadas no histórico real de Throughput em vez de estimativas intuitivas. - Feedback Loops e Cadências Ágeis: Reuniões diárias focadas no fluxo do quadro, revisões e retrospectivas para melhoria contínua.
🛠️ 2. Implementação Prática em Gestão Ágil, Kanban e Métricas de Fluxo
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// kanban_flow_metrics.py (Cálculo de Lead Time e Previsão com Monte Carlo)
import random
def calculate_cycle_time_stats(lead_times: list[float]):
"""Calcula percentis de entrega de histórias de usuário."""
sorted_times = sorted(lead_times)
p50 = sorted_times[int(len(sorted_times) * 0.50)]
p85 = sorted_times[int(len(sorted_times) * 0.85)]
p95 = sorted_times[int(len(sorted_times) * 0.95)]
print(f"=== Métricas de Fluxo (Amostras: {len(lead_times)}) ===")
print(f"p50 (Mediana) : {p50:.1f} dias")
print(f"p85 (Compromisso): {p85:.1f} dias (85% de confiança)")
print(f"p95 (Conservador): {p95:.1f} dias")
def simulate_monte_carlo(historical_throughput: list[int], remaining_tasks: int, iterations: int = 1000):
"""Simulação de Monte Carlo para previsão probabilística de término."""
days_to_complete = []
for _ in range(iterations):
tasks = remaining_tasks
days = 0
while tasks > 0:
daily_rate = random.choice(historical_throughput)
tasks -= daily_rate
days += 1
days_to_complete.append(days)
days_to_complete.sort()
confidence_85 = days_to_complete[int(iterations * 0.85)]
print(f"Previsão Monte Carlo: 85% de chance de concluir em até {confidence_85} dias de trabalho.")
if __name__ == '__main__':
historical_lead = [3.2, 4.5, 2.1, 7.8, 4.0, 5.2, 9.1, 3.8, 4.1, 6.0]
calculate_cycle_time_stats(historical_lead)
simulate_monte_carlo(historical_throughput=[1, 2, 0, 3, 2, 1, 0, 4], remaining_tasks=15)
💡 Análise Passo a Passo do Código
- Uso de Percentis p85/p95: Elimina o erro clássico de planejar prazos utilizando médias matemáticas em distribuições assimétricas.
- Simulação de Monte Carlo: Gera milhares de cenários possíveis utilizando o Throughput real registrado pela equipe de engenharia.
- Decisões Baseadas em Dados: Substitui prazos fixos arbitrários por acordos de nível de serviço com intervalo de confiança probabilística.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto
Aula 18 - Automação de Workflows de Produtividade em Desenvolvimento ⚙️
Objetivo Pedagógico
Objetivo: Construir ferramentas e workflows de produtividade para equipes de desenvolvimento: automação de tarefas com Taskfile/Make, scripts de onboarding declarativos, orquestração de ambientes locais com Dev Containers e Docker Compose.
📑 1. Fundamentos Teóricos & Análise Técnica
O desperdício de tempo decorrente do onboarding lento de novos engenheiros, inconsistências entre máquinas locais (It works on my machine!) e processos manuais repetitivos penaliza diretamente a velocidade de entrega das organizações.
A disciplina de Developer Experience (DevEx) combate essa ineficiência através da automação de workflows:
1. O Modelo Mental dos Dev Containers:
- Especificação aberta mantida pela Development Containers Community que padroniza o ambiente de desenvolvimento completo dentro de um contêiner Docker.
- Define a versão exata de compiladores, extensões do IDE, ferramentas de linha de comando e variáveis de ambiente. Qualquer desenvolvedor inicia o trabalho produtivo no projeto com um único clique, eliminando dias de configuração manual.
2. Automação Declarativa de Tarefas (Taskfile vs. Makefile):
- Substituição de scripts soltos na raiz por ferramentas de execução de tarefas declarativas baseadas em YAML (Taskfile) ou arquivos Make com dependências entre tarefas.
- Fornece catálogo autodescritivo de comandos (task build, task test, task lint, task seed-db) garantindo que todos na organização executem os mesmos procedimentos operacionais.
3. Linters e Formatadores Corporativos:
- Padronização estética de código (Prettier, Black, Ruff, Biome) acoplada a hooks locais para eliminar discussões subjetivas em revisões de código.
📐 Arquitetura Conceitual & Diagrama de Fluxo
graph TD
Dev["Novo Desenvolvedor clona Repositório"] --> DevContainer["Dev Container (Docker + VS Code / JetBrains)"]
DevContainer --> Tooling["Ambiente Padronizado com Ferramental Completo"]
Tooling --> Task["Taskfile / Makefile Centralizado"]
Task --> DB["task db:up (Sobe Banco Local com Seeds)"]
Task --> Lint["task lint:fix (Formatação Automática)"]
Task --> Test["task test:fast (Suíte de Testes com Cache)"]
style Dev fill:#e1f5fe,stroke:#01579b
style DevContainer fill:#fff3e0,stroke:#e65100
style Task fill:#f3e5f5,stroke:#7b1fa2
style DB fill:#e8f5e9,stroke:#2e7d32
style Test fill:#e0f2f1,stroke:#00695c
🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais: - Dev Containers Padronizados: Ambientes de trabalho isolados que garantem reprodutibilidade instantânea entre engenheiros da equipe. - Catálogo Declarativo de Tarefas: Documentação executável dos comandos do projeto que previne esquecimentos e erros manuais de compilação. - Isolamento de Dependências de Sistema: Prevenção de conflitos de versões de bibliotecas compartilhadas na máquina física do desenvolvedor. - Cache Inteligente de Tarefas: Execução seletiva de compilações que só reprocessa arquivos cujo hash de conteúdo foi alterado.
🛠️ 2. Implementação Prática em Ferramentas de Engenharia, CLI Custom e Automação de Tarefas
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// Taskfile.yml (Catálogo Moderno de Automação de Engenharia)
version: '3'
vars:
APP_NAME: 'portal-engine'
tasks:
setup:
desc: 'Inicializa o ambiente de desenvolvimento completo'
cmds:
- echo "Instalando dependências e preparando ambiente..."
- npm ci
- task: db:seed
db:up:
desc: 'Sobe containers de banco de dados e mensageria'
cmds:
- docker compose up -d postgres redis
db:seed:
desc: 'Aplica migrações de esquema e popula dados de teste'
deps: [db:up]
cmds:
- echo "Populando banco com registros sintéticos de desenvolvimento..."
lint:
desc: 'Verifica padrões de código e formatação'
cmds:
- npx eslint . --ext .ts,.tsx --max-warnings 0
- npx prettier --check .
test:
desc: 'Executa suíte de testes com cobertura'
cmds:
- npm test -- --coverage
💡 Análise Passo a Passo do Código
- Declaração de Dependências (
deps: [db:up]): Garante que o banco de dados esteja rodando antes de disparar scripts de população de dados. - Descrições Amigáveis (
desc): Habilita a listagem interativa de comandos viatask --listpara descoberta rápida por novos membros. - Política de Zero Avisos (
--max-warnings 0): Impede acúmulo de débito técnico barrando commits com pequenos avisos de linter.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto
Aula 19 - Análise de Métricas de Software e Qualidade 📈
Objetivo Pedagógico
Objetivo: Implementar medições objetivas da qualidade do código e da eficácia organizacional: complexidade ciclomática de McCabe, débito técnico, cobertura de código e as quatro métricas DORA (DevOps Research and Assessment).
📑 1. Fundamentos Teóricos & Análise Técnica
O que não pode ser medido não pode ser gerenciado de forma científica. A avaliação de engenharia de software contemporânea divide-se em métricas de código-fonte estrutural e métricas de desempenho organizacional: 1. Métricas Estruturais de Código: - Complexidade Ciclomática de McCabe (\(M\)): Quantifica o número de caminhos de execução linearmente independentes no grafo de fluxo de controle de um método: $\(M = E - N + 2P\)$ Onde \(E\) é o número de arestas, \(N\) o número de nós e \(P\) os componentes conexos. Funções com \(M > 10\) apresentam probabilidade exponencialmente maior de conter defeitos e exigem refatoração urgente. - Débito Técnico (Technical Debt Ratio - TDR): Razão entre o custo estimado para corrigir todos os problemas de qualidade de um sistema versus o custo total de desenvolvê-lo do zero. 2. As Quatro Métricas DORA (DevOps Research and Assessment): - Deployment Frequency: Frequência com que o código é publicado em produção (equipes de elite realizam múltiplos deploys diários). - Lead Time for Changes: Tempo decorrido desde o commit até o deploy funcional em produção. - Change Failure Rate: Percentual de deploys que resultam em incidentes ou degradações de serviço exigindo rollback ou hotfix. - Time to Restore Service (MTTR): Tempo médio necessário para restaurar a integridade do sistema após um incidente em produção.
📐 Arquitetura Conceitual & Diagrama de Fluxo
graph TD
Source["Repositório de Código & PRs"] --> Sonar["Análise Estática SonarQube"]
Sonar --> Cyclo["Complexidade Ciclomática (M < 10)"]
Sonar --> Debt["Índice de Débito Técnico (TDR < 5%)"]
Prod["Eventos de Deploy & Incidentes"] --> DORAEngine["Motor de Métricas DORA"]
DORAEngine --> D1["Deployment Frequency (Múltiplas/Dia)"]
DORAEngine --> D2["Lead Time (< 1 Hora)"]
DORAEngine --> D3["Change Failure Rate (< 5%)"]
DORAEngine --> D4["Time to Restore (< 1 Hora)"]
style Source fill:#e1f5fe,stroke:#01579b
style Sonar fill:#fff3e0,stroke:#e65100
style Prod fill:#f3e5f5,stroke:#7b1fa2
style DORAEngine fill:#e8f5e9,stroke:#2e7d32
🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais:
- Refatoração Guiada por Complexidade: Decomposição de métodos monolíticos com excesso de bifurcações condicionais (if/else, laços) em funções menores.
- Quality Gates Automatizados: Bloqueio formal de merges caso novos débitos técnicos ultrapassem 3% no código novo.
- Métricas DORA de Alto Desempenho: Foco em velocidade com segurança: deploys rápidos e pequenos reduzem o impacto de incidentes.
- Manutenibilidade de Longo Prazo: Preservação da legibilidade e acoplamento frouxo do código para facilitar a evolução contínua da equipe.
🛠️ 2. Implementação Prática em Métricas DORA, Complexidade Ciclomática e SonarQube
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// complexity_and_dora_tracker.py (Cálculo de Complexidade AST e Métricas DORA)
import ast
class CyclomaticComplexityVisitor(ast.NodeVisitor):
"""Calcula a Complexidade Ciclomática de McCabe analisando a AST Python."""
def __init__(self):
self.complexity = 1 # Caminho base inicial
def visit_If(self, node):
self.complexity += 1
self.generic_visit(node)
def visit_For(self, node):
self.complexity += 1
self.generic_visit(node)
def visit_While(self, node):
self.complexity += 1
self.generic_visit(node)
def visit_ExceptHandler(self, node):
self.complexity += 1
self.generic_visit(node)
def analyze_function_complexity(source_code: str):
tree = ast.parse(source_code)
visitor = CyclomaticComplexityVisitor()
visitor.visit(tree)
print(f"Complexidade Ciclomática da Função: {visitor.complexity}")
if visitor.complexity > 10:
print("[ALERTA] Função altamente complexa! Recomenda-se refatoração imediata.")
else:
print("[OK] Complexidade dentro dos padrões saudáveis de engenharia.")
if __name__ == '__main__':
sample_code = """
def processar_pedido(pedido):
if not pedido.ativo:
return False
for item in pedido.itens:
if item.preco > 100:
if item.estoque == 0:
return False
return True
"""
analyze_function_complexity(sample_code)
💡 Análise Passo a Passo do Código
- Inspeção de AST Nativa: Percorre a árvore de sintaxe abstrata contando bifurcações lógicas de forma exata e independente de formatação.
- Detecção Precoce de Débito Técnico: Alerta quando uma função atinge limites arriscados que dificultam a criação de testes unitários abrangentes.
- Automatização em Pipelines: Pode ser acoplado em verificações de CI para impedir a introdução de novas funções de alta complexidade.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto
Aula 20 - Projeto Capstone: Ecossistema de Produtividade Integrado 🚀
Objetivo Pedagógico
Objetivo: Conceber e integrar um ecossistema holístico de produtividade para desenvolvimento de software: catálogo de serviços centralizado (Backstage), templates de scaffolding de novos microsserviços com linters/testes pré-configurados e telemetria de fluxo de engenharia unificada.
📑 1. Fundamentos Teóricos & Análise Técnica
O Projeto Capstone de Ferramentas para Projetos consolida uma plataforma moderna de engenharia corporativa: 1. Developer Portals e Plataformas de Autoatendimento (Internal Developer Platform - IDP): - Prover aos desenvolvedores autonomia para criar novos microsserviços, solicitar bancos de dados e consultar documentação técnica sem abrir chamados manuais para a equipe de infraestrutura. 2. Scaffolding Padronizado com Golden Paths: - Fornecer modelos de projetos (Templates) que já nascem com a arquitetura recomendada pela empresa: linter, testes unitários, pipeline de CI/CD, métricas de observabilidade e Dockerfile otimizado. 3. Métricas Consolidadas de Eficiência: - Integração das métricas DORA, relatórios de cobertura de código do SonarQube e status de builds em um painel executivo unificado.
📐 Arquitetura Conceitual & Diagrama de Fluxo
graph TD
Dev["Desenvolvedor"] --> Portal["Developer Portal (IDP Autoatendimento)"]
Portal --> Template["Golden Path Template (Novo Microsserviço)"]
Template --> Repo["Repositório Git com CI/CD, Linter e Testes Prontos"]
Repo --> Pipeline["Pipeline de Integração Automatizado"]
Pipeline --> SonarGate["Quality Gate & Métricas DORA"]
SonarGate --> Dashboard["Dashboard de Produtividade Unificado"]
style Dev fill:#e1f5fe,stroke:#01579b
style Portal fill:#fff3e0,stroke:#e65100
style Template fill:#f3e5f5,stroke:#7b1fa2
style Repo fill:#e8f5e9,stroke:#2e7d32
style Dashboard fill:#e0f2f1,stroke:#00695c
🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais: - Autonomia com Golden Paths: Redução do tempo de criação de um novo serviço de semanas para minutos com conformidade garantida desde o primeiro dia. - Governança Transparente: Visibilidade imediata sobre o nível de maturidade de todos os repositórios da organização em um catálogo único. - Redução de Carga Cognitiva: Os desenvolvedores concentram-se na lógica de negócio sem precisar configurar infraestrutura repetitiva. - Melhoria Contínua Mensurável: Acompanhamento contínuo da evolução dos índices de qualidade e velocidade das equipes de produto.
🛠️ 2. Implementação Prática em Engenharia de Plataforma, Developer Portal e Automação
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// service_template_capstone.yaml (Definição de Scaffolding Golden Path no Backstage)
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: hardened-microservice-template
title: Template de Microsserviço Hardened (Golden Path)
description: Criação autônoma de novo serviço com CI/CD, SonarQube e testes integrados
spec:
owner: platform-team
type: service
parameters:
- title: Metadados do Serviço
required:
- service_name
- owner_team
properties:
service_name:
title: Nome do Serviço
type: string
description: Identificador único do repositório
owner_team:
title: Time Responsável
type: string
enum: [core-banking, checkout, auth-identity]
steps:
- id: fetch-base
name: Baixar Estrutura Base
action: fetch:template
input:
url: ./skeleton
values:
serviceName: ${{ parameters.service_name }}
ownerTeam: ${{ parameters.owner_team }}
- id: publish-github
name: Criar Repositório no GitHub
action: publish:github
input:
repoUrl: github.com?repo=${{ parameters.service_name }}&owner=empresa-organizacao
defaultBranch: main
protectDefaultBranch: true
💡 Análise Passo a Passo do Código
- Parâmetros Estruturados: Coleta metadados obrigatórios garantindo que todo serviço possua dono e escopo bem delimitados.
- Template Skeleton: Injeta código boilerplate com boas práticas de segurança e qualidade pré-configuradas.
- Proteção Automática de Branch: Já cria o repositório com regras de Branch Protection ativas no GitHub.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto
Exercícios
🏋️ Exercícios do Curso
Lista completa das 20 unidades de exercicios organizadas em 5 módulos didáticos.
-
Módulo 1: Fundamentos (01 a 04) ---
-
Módulo 2: Conceitos Essenciais (05 a 08) ---
-
Módulo 3: Aplicação Prática (09 a 12) ---
-
Módulo 4: Padrões e Ferramentas (13 a 16) ---
-
Módulo 5: Avançado e Capstone (17 a 20) ---
🏋️ Exercício 01 – Introdução ao Ecossistema de Ferramentas
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 01 sobre Introdução ao Ecossistema de Ferramentas, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Introdução ao Ecossistema de Ferramentas, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Introdução ao Ecossistema de Ferramentas** fundamenta-se em princípios consolidados de engenharia de software (1. Por que as Ferramentas Importam? ️, 2. Categorias de Ferramentas ️, 3. A Importância da Automação, 4. O Coração do Desenvolvimento: O Terminal). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Introdução ao Ecossistema de Ferramentas. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Introdução ao Ecossistema de Ferramentas** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Introdução ao Ecossistema de Ferramentas. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 02 – Gestão de Projetos e Tarefas
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 02 sobre Gestão de Projetos e Tarefas, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Gestão de Projetos e Tarefas, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Gestão de Projetos e Tarefas** fundamenta-se em princípios consolidados de engenharia de software (1. Organização é Tudo!, 2. Ferramentas de Mercado ️, 3. O Quadro Kanban, 4. Criando sua Primeira Task). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Gestão de Projetos e Tarefas. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Gestão de Projetos e Tarefas** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Gestão de Projetos e Tarefas. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 03 – Ambiente de Desenvolvimento
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 03 sobre Ambiente de Desenvolvimento, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Ambiente de Desenvolvimento, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Ambiente de Desenvolvimento** fundamenta-se em princípios consolidados de engenharia de software (1. Editor vs IDE: Qual Escolher?, 2. O Super Poder do VS Code, 3. Dominando o Terminal (CLI) ⌨️, 4. Customização Profissional). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Ambiente de Desenvolvimento. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Ambiente de Desenvolvimento** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Ambiente de Desenvolvimento. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 04 – Controle de Versão com Git: Fundamentos ️
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 04 sobre Controle de Versão com Git: Fundamentos ️, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Controle de Versão com Git: Fundamentos ️, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Controle de Versão com Git: Fundamentos ️** fundamenta-se em princípios consolidados de engenharia de software (1. O que é o Git?, 2. Configuração Inicial ⚙️, 3. O Fluxo de Trabalho Local, 4. Comandos de Sobrevivência ⌨️). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Controle de Versão com Git: Fundamentos ️. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Controle de Versão com Git: Fundamentos ️** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Controle de Versão com Git: Fundamentos ️. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 05 – Plataformas de Colaboração
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 05 sobre Plataformas de Colaboração, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Plataformas de Colaboração, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Plataformas de Colaboração** fundamenta-se em princípios consolidados de engenharia de software (1. Do Local para a Nuvem ☁️, 2. GitHub: O Padrão de Mercado, 3. O Fluxo de Colaboração Profissional, 4. Praticando a Sincronização). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Plataformas de Colaboração. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Plataformas de Colaboração** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Plataformas de Colaboração. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 06 – Bancos de Dados Relacionais e Clientes GUI
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 06 sobre Bancos de Dados Relacionais e Clientes GUI, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Bancos de Dados Relacionais e Clientes GUI, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Bancos de Dados Relacionais e Clientes GUI** fundamenta-se em princípios consolidados de engenharia de software (1. Onde os Dados Moram? ️, 2. Líderes de Mercado, 3. Clientes GUI: Adeus Linha de Comando! ️, 4. Visualizando Estruturas). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Bancos de Dados Relacionais e Clientes GUI. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Bancos de Dados Relacionais e Clientes GUI** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Bancos de Dados Relacionais e Clientes GUI. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 07 – Bancos de Dados NoSQL e Cache ⚡
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 07 sobre Bancos de Dados NoSQL e Cache ⚡, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Bancos de Dados NoSQL e Cache ⚡, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Bancos de Dados NoSQL e Cache ⚡** fundamenta-se em princípios consolidados de engenharia de software (1. Além das Tabelas: O Mundo NoSQL, 2. NoSQL vs SQL: Qual Usar? ⚖️, 3. Redis: A Velocidade da Memória, 4. Praticando com Redis no Terminal). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Bancos de Dados NoSQL e Cache ⚡. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Bancos de Dados NoSQL e Cache ⚡** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Bancos de Dados NoSQL e Cache ⚡. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 08 – Frameworks de Teste e Qualidade
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 08 sobre Frameworks de Teste e Qualidade, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Frameworks de Teste e Qualidade, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Frameworks de Teste e Qualidade** fundamenta-se em princípios consolidados de engenharia de software (1. Por que Testar? ️, 2. Níveis de Teste: A Pirâmide ️, 3. Ferramentas por Linguagem, 4. O Ciclo TDD (Test Driven Development)). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Frameworks de Teste e Qualidade. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Frameworks de Teste e Qualidade** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Frameworks de Teste e Qualidade. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 09 – Ferramentas de API (Postman / Insomnia)
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 09 sobre Ferramentas de API (Postman / Insomnia), cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Ferramentas de API (Postman / Insomnia), definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Ferramentas de API (Postman / Insomnia)** fundamenta-se em princípios consolidados de engenharia de software (1. O que são Clients de API? ️♂️, 2. O Protocolo HTTP na Prática, 3. Fluxo de uma Requisição, 4. Praticando no Terminal). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Ferramentas de API (Postman / Insomnia). Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Ferramentas de API (Postman / Insomnia)** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Ferramentas de API (Postman / Insomnia). Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 10 – Qualidade de Código (Linters e Formatters) ✨
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 10 sobre Qualidade de Código (Linters e Formatters) ✨, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Qualidade de Código (Linters e Formatters) ✨, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Qualidade de Código (Linters e Formatters) ✨** fundamenta-se em princípios consolidados de engenharia de software (1. O Código Além do Funcionamento, 2. Linters vs Formatters: Qual a Diferença? ⚖️, 3. O Fluxo de Correção de Código, 4. Praticando no Terminal). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Qualidade de Código (Linters e Formatters) ✨. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Qualidade de Código (Linters e Formatters) ✨** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Qualidade de Código (Linters e Formatters) ✨. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 11 – CI/CD Moderno (GitHub Actions)
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 11 sobre CI/CD Moderno (GitHub Actions), cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de CI/CD Moderno (GitHub Actions), definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **CI/CD Moderno (GitHub Actions)** fundamenta-se em princípios consolidados de engenharia de software (1. O que é CI/CD?, 2. GitHub Actions: Automação na Nuvem, 3. Visualização da Pipeline, 4. O Arquivo de Configuração (.yml)). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo CI/CD Moderno (GitHub Actions). Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **CI/CD Moderno (GitHub Actions)** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em CI/CD Moderno (GitHub Actions). Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 12 – Automação e IaC (Ansible e Terraform) ⚙️
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 12 sobre Automação e IaC (Ansible e Terraform) ⚙️, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Automação e IaC (Ansible e Terraform) ⚙️, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Automação e IaC (Ansible e Terraform) ⚙️** fundamenta-se em princípios consolidados de engenharia de software (1. O Problema da Configuração Manual, 2. Terraform: O Arquiteto da Nuvem ️, 3. Ansible: O Mestre de Obras ♂️, 4. O Arquivo Ansible (Exemplo)). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Automação e IaC (Ansible e Terraform) ⚙️. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Automação e IaC (Ansible e Terraform) ⚙️** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Automação e IaC (Ansible e Terraform) ⚙️. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 13 – Contêineres com Docker
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 13 sobre Contêineres com Docker, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Contêineres com Docker, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Contêineres com Docker** fundamenta-se em princípios consolidados de engenharia de software (1. O Problema: "Na minha máquina funciona!" ♂️, 2. Docker: A Baleia Azul, 3. Docker Compose: Multi-Serviços, 4. Praticando no Terminal). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Contêineres com Docker. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Contêineres com Docker** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Contêineres com Docker. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 14 – Orquestração com Kubernetes e Runners ☸️
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 14 sobre Orquestração com Kubernetes e Runners ☸️, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Orquestração com Kubernetes e Runners ☸️, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Orquestração com Kubernetes e Runners ☸️** fundamenta-se em princípios consolidados de engenharia de software (1. O que fazer com 1000 Contêineres?, 2. Conceitos Chave do Kubernetes ️, 3. Auto-Cura e Escala Automática, 4. O Papel dos Runners ♂️). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Orquestração com Kubernetes e Runners ☸️. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Orquestração com Kubernetes e Runners ☸️** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Orquestração com Kubernetes e Runners ☸️. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 15 – Comunicação e Colaboração em Equipe
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 15 sobre Comunicação e Colaboração em Equipe, cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Comunicação e Colaboração em Equipe, definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Comunicação e Colaboração em Equipe** fundamenta-se em princípios consolidados de engenharia de software (1. O Código não é Tudo ️, 2. Ferramentas de Mercado, 3. Integração: ChatOps, 4. Etiqueta Digital para Devs). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Comunicação e Colaboração em Equipe. Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Comunicação e Colaboração em Equipe** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Comunicação e Colaboração em Equipe. Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.🏋️ Exercício 16 – Design, Prototipagem e Handoff (Figma)
🎯 Objetivo
Fixar e aplicar os conceitos essenciais da Aula 16 sobre Design, Prototipagem e Handoff (Figma), cobrindo aspectos conceituais, implementação técnica e boas práticas da indústria.
🥉 Nível Bronze (Fixação Conceitual)
Exercício 1: Explique os fundamentos de Design, Prototipagem e Handoff (Figma), definindo sua finalidade principal na arquitetura de software e por que esse conceito é indispensável no desenvolvimento profissional.
Gabarito Explicado
O conceito de **Design, Prototipagem e Handoff (Figma)** fundamenta-se em princípios consolidados de engenharia de software (1. O que é o Figma?, 2. Dev Mode: O Paraíso do Desenvolvedor, 3. O Processo de Handoff, 4. Praticando a Inspeção). Sua finalidade central é fornecer previsibilidade, padronização e manutenibilidade ao ecossistema da aplicação, garantindo que requisitos funcionais e não funcionais sejam atendidos de forma consistente e auditável.🥈 Nível Prata (Aplicação Prática)
Exercício 2: Descreva um cenário prático de aplicação ou implementação técnica envolvendo Design, Prototipagem e Handoff (Figma). Quais comandos, padrões de projeto ou configurações essenciais devem ser adotados para garantir uma entrega robusta?
Gabarito Explicado
Em um ambiente de produção, a aplicação prática de **Design, Prototipagem e Handoff (Figma)** envolve: 1. **Configuração Padronizada:** Adoção de convenções estabelecidas e versionamento consistente das dependências e artefatos. 2. **Isolamento de Responsabilidades:** Separação clara entre camadas de regra de negócio, apresentação e infraestrutura. 3. **Validação e Testabilidade:** Estruturação orientada a testes automatizados e validação defensiva de parâmetros de entrada.🥇 Nível Ouro (Desafio Avançado e Cenário Real)
Exercício 3: Suponha que uma falha crítica ou gargalo ocorra em produção decorrente de má implementação em Design, Prototipagem e Handoff (Figma). Detalhe uma estratégia sistemática de diagnóstico (troubleshooting), mitigação imediata e prevenção de recorrência.
Gabarito Explicado
A resolução profissional para este cenário envolve: 1. **Diagnóstico Sistemático:** Coleta e análise de logs estruturados, métricas de observabilidade e identificação da causa-raiz (*root cause analysis*). 2. **Mitigação Imediata:** Aplicação de rollback seguro, feature flags ou circuit breaker para restabelecer a operação mínima viável. 3. **Prevenção e Resiliência:** Atualização das diretrizes de revisão de código, automação de testes de regressão no pipeline de CI/CD e documentação post-mortem.Projetos
🚀 Projetos do Curso
Lista completa das 20 unidades de projetos organizadas em 5 módulos didáticos.
-
Módulo 1: Fundamentos (01 a 04) ---
-
Módulo 2: Conceitos Essenciais (05 a 08) ---
-
Módulo 3: Aplicação Prática (09 a 12) ---
-
Módulo 4: Padrões e Ferramentas (13 a 16) ---
-
Módulo 5: Avançado e Capstone (17 a 20) ---
Projeto 01 - Diagnóstico do Ambiente 🚀
🎯 Objetivo
Verificar a saúde do seu cinto de ferramentas atual e identificar o que falta para começar sua jornada como desenvolvedor profissional.
📋 Passo a Passo
- Terminal Check: Abra o terminal do seu sistema operacional.
- Execução de Comandos: Digite os seguintes comandos um por um e anote a versão que aparece:
- Relatório de Faltas: Se algum comando retornou
comando não encontrado, anote esse item em uma lista de "Instalações Pendentes". - Conta GitHub: Se ainda não possui, acesse github.com e crie sua conta. Customize seu perfil com uma foto e uma breve bio.
- Print de Sucesso: Salve um print do seu terminal com pelo menos dois comandos funcionando.
Entrega: Um arquivo .txt ou .md com a lista de versões encontradas e o print do terminal.
Projeto 02 - Criando seu Primeiro Quadro Ágil 📊
🎯 Objetivo
Organizar um fluxo de trabalho utilizando o método Kanban para um projeto fictício de desenvolvimento.
📋 Passo a Passo
- Escolha da Ferramenta: Acesse o Trello ou utilize as GitHub Issues do repositório criado no Projeto 01.
- Criação das Colunas: Configure seu quadro com as colunas:
Backlog,To Do,Doing,Done. - Criação de Cards: Adicione 5 tarefas necessárias para criar um site simples (ex: "Criar HTML", "Estilizar com CSS", "Testar no Chrome").
- Atribuição e Prazo: Em pelo menos 2 cards, adicione uma data de entrega (Due Date) e uma etiqueta de prioridade (ex: "Alta", "Baixa").
- Movimentação: Mova 2 tarefas para
Doingpara simular o início do trabalho.
Entrega: O link público do seu quadro no Trello ou o link das Issues no seu GitHub.
Projeto 03 - Customização do Ambiente Dev 💻
🎯 Objetivo
Deixar o Visual Studio Code pronto para o trabalho profissional, com as extensões e temas que aumentam a produtividade.
📋 Passo a Passo
- Instalação de Extensões: No VS Code, instale:
- Prettier - Code Formatter
- Portuguese (Brazil) Language Pack
- Material Icon Theme
- Configuração de User Settings: Abra o
settings.json(Ctrl+Shift+P > Open User Settings JSON) e adicione (ou verifique) a linha: - Teste de Terminal: Use o terminal integrado (Ctrl + `) para criar a pasta do curso:
- Tema do Editor: Mude o tema de cores para um de sua preferência (File > Preferences > Theme > Color Theme).
Entrega: Um print do seu VS Code aberto com a barra lateral de extensões visível e o terminal integrado aberto na pasta criada.
Projeto 04 - Inicializando a Máquina do Tempo 🛠️
🎯 Objetivo
Praticar o fluxo local do Git, desde a inicialização de um repositório até o salvamento permanente das alterações.
📋 Passo a Passo
- Pasta do Projeto: Crie uma pasta chamada
meu-legacy-projeto. - Início do Git: Via terminal, dentro da pasta, execute:
- Configuração de Identidade: Garanta que seu nome e e-mail estão configurados (
git config --list). - Primeiro Arquivo: Crie um arquivo
index.htmlbásico. - Commit Inicial: Adicione o arquivo à Staging Area e faça o commit:
- Verificação de Histórico: Execute
git loge verifique se o seu commit aparece com o código (hash) único.
Entrega: Um print da tela do terminal mostrando o resultado do comando git log.
Projeto 05 - Meu Código na Nuvem ☁️
🎯 Objetivo
Aprender a sincronizar um repositório local com o GitHub e entender a importância do backup e colaboração online.
📋 Passo a Passo
- Novo Repo no GitHub: No seu GitHub, crie um repositório Público chamado
git-hands-on-ads. - Conexão Remota: No terminal, dentro da pasta do Projeto 04, execute:
- Envio de Código: Envie seu commit local para a nuvem:
- Verificação: Recarregue a página do GitHub e veja seu arquivo
index.htmllá. - Edição Online: Edite o arquivo diretamente no site do GitHub (usando o botão de lápis) e faça o commit por lá.
- Sincronização Inversa: Volte ao terminal e traga essa mudança para sua máquina:
Entrega: O link do seu repositório público no GitHub.
Projeto 06 - Minha Primeira Tabela SQL 💾
🎯 Objetivo
Aprender a criar e gerenciar um banco de dados relacional (SQL) usando uma interface universal e comandos básicos.
📋 Passo a Passo
- DBeaver Setup: Abra o DBeaver (instalado na Aula 06).
- Conexão SQLite: Clique em "New Database Connection" e escolha SQLite. Crie um arquivo de banco chamado
meu_banco_ads.db. - Criação de Tabela: Abra o Editor SQL e execute o comando:
- Inserção de Dados: Use a interface visual (Grid) para adicionar 3 ferramentas que você aprendeu até agora (ex: VS Code, Git, Jira).
- Consulta Final: Execute
SELECT * FROM Ferramentas;e verifique se as 3 linhas aparecem corretamente.
Entrega: Um print do DBeaver mostrando a tabela Ferramentas preenchida com os 3 dados.
Projeto 07 - Modelagem de Documentos JSON ⚡
🎯 Objetivo
Entender como os dados são estruturados no mundo NoSQL, utilizando o formato JSON para representar informações complexas de forma flexível.
📋 Passo a Passo
- Novo Arquivo JSON: No VS Code, crie um arquivo chamado
portfolio.json. - Estrutura de Dados: Crie um objeto JSON que contenha:
- Seu nome e curso.
- Uma lista (
array) de projetos. - Dentro de cada projeto, uma lista das ferramentas utilizadas.
- Exemplo de Formato:
- Validação: Verifique se todas as chaves estão entre aspas duplas e se não faltam vírgulas.
- Mini-Desafio: Adicione um campo de data no formato ISO (ex:
"2025-02-19") para cada projeto.
Entrega: O conteúdo do seu arquivo portfolio.json.
Projeto 08 - Planejando Casos de Teste 🧪
🎯 Objetivo
Desenvolver a mentalidade de QA (Quality Assurance) ao planejar o que deve ser testado em um software antes mesmo de ele estar pronto.
📋 Passo a Passo
- Cenário: Você foi contratado para testar um Sistema de Login.
- Identificação de Casos: Liste 5 cenários que você deve testar. Exemplos:
- Sucesso: Usuário e senha corretos.
- Falha: Usuário correto, senha errada.
- Email Inválido: Digitar um e-mail sem o "@".
- Formato do Relatório: Para cada caso, anote: Ação, Resultado Esperado e Prioridade (Alta, Média ou Baixa).
- Escolha do Framework: Com base no que vimos na Aula 08, escreva qual framework você usaria se esse site fosse feito em JavaScript e qual usaria se fosse feito em Python.
Entrega: Um documento .md com sua lista de 5 casos de teste estruturados.
Projeto 09 - Testando uma API Pública 📡
🎯 Objetivo
Praticar o uso de clients HTTP para fazer requisições a uma API real, entender os Status Codes e analisar a estrutura de resposta JSON.
📋 Passo a Passo
- Ferramenta: Abra o Postman ou Insomnia.
- Requisição GET: Configure uma requisição para a URL:
https://jsonplaceholder.typicode.com/posts/1. - Análise de Resposta:
- Verifique se o Status Code foi
200 OK. - Identifique os campos
userId,id,titleebody.
- Verifique se o Status Code foi
- Parâmetros de Query: Tente filtrar os posts por usuário adicionando um parâmetro:
https://jsonplaceholder.typicode.com/posts?userId=1. Quantos posts retornaram? - Requisição POST: Tente criar um post fictício enviando um JSON no Body (formato raw > JSON) com um título e um corpo. Verifique se o retorno é
201 Created.
Entrega: Um print do Postman mostrando o resultado da sua requisição POST com sucesso.
Projeto 10 - Limpeza Automática de Código ✨
🎯 Objetivo
Configurar e utilizar ferramentas de análise estática e formatação para garantir que o código siga padrões profissionais automaticamente.
📋 Passo a Passo
- Ambiente: Abra o VS Code em uma pasta vazia.
- Arquivo Bagunçado: Crie um arquivo
app.jse cole o seguinte código (exatamente com essa má indentação): - Formatação Manual: Pressione
Shift + Alt + F. Veja o Prettier organizar os espaços e parênteses. - Automação: Verifique se a opção "Format on Save" está ativa (Aula 10). Mude algo no código, salve e veja a mágica acontecer.
- Desafio Linter: Apague a linha
const x = 10;mas mantenha a chamadasoma(5, x). Observe o VS Code sublinhar o erro em vermelho. Passe o mouse sobre o erro e leia a mensagem do Linter.
Entrega: Um print do seu VS Code com o código formatado e o erro do Linter visível.
Projeto 11 - Minha Primeira Pipeline 🚀
🎯 Objetivo
Criar e disparar seu primeiro fluxo de automação (Workflow) no GitHub para entender como as ferramentas de CI/CD funcionam na nuvem.
📋 Passo a Passo
- Pasta de Configuração: No seu repositório do GitHub (criado no Projeto 05), crie uma pasta chamada
.githube, dentro dela, uma pasta chamadaworkflows. - Arquivo de Workflow: Crie um arquivo chamado
hello-ci.ymldentro deworkflows. - Conteúdo do YAML: Cole o código abaixo:
- Commit e Push: Envie essa alteração para o GitHub.
- Monitoramento: Vá na aba Actions do seu repositório e clique no workflow "Teste de Automacao". Veja ele sendo executado e verifique se o log mostra a mensagem do comando
echo.
Entrega: O link da aba "Actions" do seu repositório mostrando o workflow com sucesso (verde).
Projeto 12 - Infraestrutura no Papel ⚙️
🎯 Objetivo
Praticar a escrita de arquivos de configuração YAML para automação de servidores, focando na lógica de Infraestrutura como Código.
📋 Passo a Passo
- Novo Arquivo: No VS Code, crie um arquivo chamado
instalar_servidor.yml. - Lógica do Ansible: Escreva um Playbook simples que descreva a instalação de um servidor web. O arquivo deve conter:
- Um nome para a jogada (
name). - Onde será executado (
hosts: localhost). - Uma lista de tarefas (
tasks).
- Um nome para a jogada (
- Tarefas Necessárias:
- Instalar o pacote
nginx. - Copiar um arquivo
index.html. - Garantir que o
nginxesteja iniciado.
- Instalar o pacote
- Exemplo de Sintaxe:
- Verificação: Use o VS Code para garantir que não há erros de indentação no seu arquivo YAML.
Entrega: O conteúdo do seu arquivo instalar_servidor.yml.
Projeto 13 - Empacotando com Docker 📦
🎯 Objetivo
Aprender a criar uma imagem personalizada no Docker para garantir que o seu projeto rode da mesma forma em qualquer servidor.
📋 Passo a Passo
- Ambiente: Abra a pasta do seu Projeto 04 (
meu-legacy-projeto). - Criação do Dockerfile: Crie um arquivo chamado
Dockerfile(sem extensão). - Configuração da Imagem:
- Criação da Imagem (Terminal): Execute o comando:
- Execução do Contêiner: Rode seu site dentro do Docker:
- Teste: Acesse
localhost:8080no seu navegador e veja se o seuindex.htmlaparece.
Entrega: Um print do navegador acessando o localhost:8080 e um print do comando docker ps no terminal.
Projeto 14 - Mapa de um Cluster K8s ☸️
🎯 Objetivo
Visualizar a estrutura lógica de um orquestrador de contêineres e entender como as peças se encaixam para garantir a alta disponibilidade.
📋 Passo a Passo
- Cenário: Você precisa hospedar uma API que deve ter sempre 3 cópias rodando para aguentar o tráfego.
- Desenho Lógico (Mermaid): No VS Code, use a sintaxe Mermaid para desenhar a estrutura:
- 1 Control Plane (Cérebro).
- 2 Nodes (Trabalhadores).
- 3 Pods (Onde seu app mora), distribuídos entre os Nodes.
- Exemplo de Mapa:
graph TD C[Control Plane] --> N1[Node 1] C --> N2[Node 2] N1 --> P1[Pod API - v1] N1 --> P2[Pod API - v1] N2 --> P3[Pod API - v1] - Simulação de Falha: Escreva um parágrafo descrevendo o que o Control Plane faria se o Node 1 desligasse subitamente.
Entrega: O código Mermaid do seu mapa e o parágrafo explicativo da simulação de falha.
Projeto 15 - Etiqueta no Slack 💬
🎯 Objetivo
Praticar a comunicação assíncrona eficaz e profissional, essencial para o trabalho em equipes remotas e ágeis.
📋 Passo a Passo
- Cenário: Você está com um erro no código (o banco de dados não conecta) e precisa de ajuda do seu colega "Sênior".
- Redação de Mensagem (Ruim): Escreva como NÃO se deve pedir ajuda (ex: apenas "Oi, tudo bem?").
- Redação de Mensagem (Boa): Escreva uma mensagem seguindo as regras da Aula 15:
- Vá direto ao ponto.
- Anexe o erro que aparece no terminal.
- Diga o que você já tentou fazer.
- Simulação de Resposta: Imagine que o colega respondeu e você resolveu o problema. Qual emoji você usaria na mensagem dele para confirmar que está tudo ok sem precisar mandar uma nova mensagem de texto?
Entrega: As duas versões da mensagem (Ruim e Boa) e a explicação da sua escolha de emoji.
Projeto 16 - Inspecionando no Figma 🎨
🎯 Objetivo
Aprender a extrair informações técnicas de um protótipo visual, transformando o design em propriedades CSS prontas para o código.
📋 Passo a Passo
- Acesso: Entre no site do Figma (ou use a conta criada na Aula 16).
- Protótipo Exemplo: Procure por um "UI Kit" gratuito na comunidade.
- Extração de Estilos: Escolha um "Card" ou um "Botão" e anote as seguintes informações técnicas:
- A cor principal (Hexadecimal: ex:
#000000). - A fonte utilizada (ex:
Inter,Roboto). - O
border-radius(arredondamento das bordas). - O
padding(espaçamento interno).
- A cor principal (Hexadecimal: ex:
- Tradução para Código: Escreva um bloco de CSS que represente exatamente o elemento que você inspecionou.
Entrega: Um print do elemento selecionado no Figma e o código CSS que você escreveu com base nele.
Quizzes
🧠 Quizzes de Fixação
Lista completa das 20 unidades de quizzes organizadas em 5 módulos didáticos.
-
Módulo 1: Fundamentos (01 a 04) ---
-
Módulo 2: Conceitos Essenciais (05 a 08) ---
-
Módulo 3: Aplicação Prática (09 a 12) ---
-
Módulo 4: Padrões e Ferramentas (13 a 16) ---
-
Módulo 5: Avançado e Capstone (17 a 20) ---
🧠 Quiz 01 – Introdução ao Ecossistema de Ferramentas 🌐
- Qual é o conceito fundamental e objetivo principal de Introdução ao Ecossistema de Ferramentas 🌐?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Introdução ao Ecossistema de Ferramentas 🌐?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Introdução ao Ecossistema de Ferramentas 🌐, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Introdução ao Ecossistema de Ferramentas 🌐?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Introdução ao Ecossistema de Ferramentas 🌐 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Introdução ao Ecossistema de Ferramentas 🌐, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Introdução ao Ecossistema de Ferramentas 🌐?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Introdução ao Ecossistema de Ferramentas 🌐 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Introdução ao Ecossistema de Ferramentas 🌐 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Introdução ao Ecossistema de Ferramentas 🌐 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 02 – Gestão de Projetos e Tarefas 📊
- Qual é o conceito fundamental e objetivo principal de Gestão de Projetos e Tarefas 📊?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Gestão de Projetos e Tarefas 📊?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Gestão de Projetos e Tarefas 📊, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Gestão de Projetos e Tarefas 📊?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Gestão de Projetos e Tarefas 📊 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Gestão de Projetos e Tarefas 📊, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Gestão de Projetos e Tarefas 📊?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Gestão de Projetos e Tarefas 📊 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Gestão de Projetos e Tarefas 📊 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Gestão de Projetos e Tarefas 📊 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 03 – Ambiente de Desenvolvimento 💻
- Qual é o conceito fundamental e objetivo principal de Ambiente de Desenvolvimento 💻?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Ambiente de Desenvolvimento 💻?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Ambiente de Desenvolvimento 💻, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Ambiente de Desenvolvimento 💻?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Ambiente de Desenvolvimento 💻 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Ambiente de Desenvolvimento 💻, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Ambiente de Desenvolvimento 💻?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Ambiente de Desenvolvimento 💻 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Ambiente de Desenvolvimento 💻 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Ambiente de Desenvolvimento 💻 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 04 – Controle de Versão com Git: Fundamentos 🛠️
- Qual é o conceito fundamental e objetivo principal de Controle de Versão com Git: Fundamentos 🛠️?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Controle de Versão com Git: Fundamentos 🛠️?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Controle de Versão com Git: Fundamentos 🛠️, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Controle de Versão com Git: Fundamentos 🛠️?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Controle de Versão com Git: Fundamentos 🛠️ atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Controle de Versão com Git: Fundamentos 🛠️, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Controle de Versão com Git: Fundamentos 🛠️?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Controle de Versão com Git: Fundamentos 🛠️ estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Controle de Versão com Git: Fundamentos 🛠️ com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Controle de Versão com Git: Fundamentos 🛠️ deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 05 – Plataformas de Colaboração 🤝
- Qual é o conceito fundamental e objetivo principal de Plataformas de Colaboração 🤝?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Plataformas de Colaboração 🤝?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Plataformas de Colaboração 🤝, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Plataformas de Colaboração 🤝?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Plataformas de Colaboração 🤝 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Plataformas de Colaboração 🤝, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Plataformas de Colaboração 🤝?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Plataformas de Colaboração 🤝 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Plataformas de Colaboração 🤝 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Plataformas de Colaboração 🤝 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 06 – Bancos de Dados Relacionais e Clientes GUI 💾
- Qual é o conceito fundamental e objetivo principal de Bancos de Dados Relacionais e Clientes GUI 💾?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Bancos de Dados Relacionais e Clientes GUI 💾?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Bancos de Dados Relacionais e Clientes GUI 💾, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Bancos de Dados Relacionais e Clientes GUI 💾?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Bancos de Dados Relacionais e Clientes GUI 💾 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Bancos de Dados Relacionais e Clientes GUI 💾, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Bancos de Dados Relacionais e Clientes GUI 💾?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Bancos de Dados Relacionais e Clientes GUI 💾 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Bancos de Dados Relacionais e Clientes GUI 💾 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Bancos de Dados Relacionais e Clientes GUI 💾 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 07 – Bancos de Dados NoSQL e Cache ⚡
- Qual é o conceito fundamental e objetivo principal de Bancos de Dados NoSQL e Cache ⚡?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Bancos de Dados NoSQL e Cache ⚡?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Bancos de Dados NoSQL e Cache ⚡, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Bancos de Dados NoSQL e Cache ⚡?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Bancos de Dados NoSQL e Cache ⚡ atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Bancos de Dados NoSQL e Cache ⚡, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Bancos de Dados NoSQL e Cache ⚡?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Bancos de Dados NoSQL e Cache ⚡ estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Bancos de Dados NoSQL e Cache ⚡ com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Bancos de Dados NoSQL e Cache ⚡ deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 08 – Frameworks de Teste e Qualidade 🧪
- Qual é o conceito fundamental e objetivo principal de Frameworks de Teste e Qualidade 🧪?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Frameworks de Teste e Qualidade 🧪?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Frameworks de Teste e Qualidade 🧪, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Frameworks de Teste e Qualidade 🧪?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Frameworks de Teste e Qualidade 🧪 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Frameworks de Teste e Qualidade 🧪, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Frameworks de Teste e Qualidade 🧪?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Frameworks de Teste e Qualidade 🧪 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Frameworks de Teste e Qualidade 🧪 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Frameworks de Teste e Qualidade 🧪 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 09 – Ferramentas de API (Postman / Insomnia) 📡
- Qual é o conceito fundamental e objetivo principal de Ferramentas de API (Postman / Insomnia) 📡?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Ferramentas de API (Postman / Insomnia) 📡?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Ferramentas de API (Postman / Insomnia) 📡, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Ferramentas de API (Postman / Insomnia) 📡?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Ferramentas de API (Postman / Insomnia) 📡 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Ferramentas de API (Postman / Insomnia) 📡, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Ferramentas de API (Postman / Insomnia) 📡?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Ferramentas de API (Postman / Insomnia) 📡 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Ferramentas de API (Postman / Insomnia) 📡 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Ferramentas de API (Postman / Insomnia) 📡 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 10 – Qualidade de Código (Linters e Formatters) ✨
- Qual é o conceito fundamental e objetivo principal de Qualidade de Código (Linters e Formatters) ✨?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Qualidade de Código (Linters e Formatters) ✨?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Qualidade de Código (Linters e Formatters) ✨, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Qualidade de Código (Linters e Formatters) ✨?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Qualidade de Código (Linters e Formatters) ✨ atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Qualidade de Código (Linters e Formatters) ✨, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Qualidade de Código (Linters e Formatters) ✨?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Qualidade de Código (Linters e Formatters) ✨ estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Qualidade de Código (Linters e Formatters) ✨ com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Qualidade de Código (Linters e Formatters) ✨ deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 11 – CI/CD Moderno (GitHub Actions) 🚀
- Qual é o conceito fundamental e objetivo principal de CI/CD Moderno (GitHub Actions) 🚀?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de CI/CD Moderno (GitHub Actions) 🚀?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em CI/CD Moderno (GitHub Actions) 🚀, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em CI/CD Moderno (GitHub Actions) 🚀?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de CI/CD Moderno (GitHub Actions) 🚀 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em CI/CD Moderno (GitHub Actions) 🚀, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em CI/CD Moderno (GitHub Actions) 🚀?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a CI/CD Moderno (GitHub Actions) 🚀 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar CI/CD Moderno (GitHub Actions) 🚀 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a CI/CD Moderno (GitHub Actions) 🚀 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 12 – Automação e IaC (Ansible e Terraform) ⚙️
- Qual é o conceito fundamental e objetivo principal de Automação e IaC (Ansible e Terraform) ⚙️?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Automação e IaC (Ansible e Terraform) ⚙️?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Automação e IaC (Ansible e Terraform) ⚙️, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Automação e IaC (Ansible e Terraform) ⚙️?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Automação e IaC (Ansible e Terraform) ⚙️ atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Automação e IaC (Ansible e Terraform) ⚙️, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Automação e IaC (Ansible e Terraform) ⚙️?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Automação e IaC (Ansible e Terraform) ⚙️ estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Automação e IaC (Ansible e Terraform) ⚙️ com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Automação e IaC (Ansible e Terraform) ⚙️ deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 13 – Contêineres com Docker 📦
- Qual é o conceito fundamental e objetivo principal de Contêineres com Docker 📦?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Contêineres com Docker 📦?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Contêineres com Docker 📦, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Contêineres com Docker 📦?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Contêineres com Docker 📦 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Contêineres com Docker 📦, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Contêineres com Docker 📦?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Contêineres com Docker 📦 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Contêineres com Docker 📦 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Contêineres com Docker 📦 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 14 – Orquestração com Kubernetes e Runners ☸️
- Qual é o conceito fundamental e objetivo principal de Orquestração com Kubernetes e Runners ☸️?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Orquestração com Kubernetes e Runners ☸️?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Orquestração com Kubernetes e Runners ☸️, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Orquestração com Kubernetes e Runners ☸️?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Orquestração com Kubernetes e Runners ☸️ atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Orquestração com Kubernetes e Runners ☸️, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Orquestração com Kubernetes e Runners ☸️?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Orquestração com Kubernetes e Runners ☸️ estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Orquestração com Kubernetes e Runners ☸️ com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Orquestração com Kubernetes e Runners ☸️ deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 15 – Comunicação e Colaboração em Equipe 💬
- Qual é o conceito fundamental e objetivo principal de Comunicação e Colaboração em Equipe 💬?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Comunicação e Colaboração em Equipe 💬?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Comunicação e Colaboração em Equipe 💬, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Comunicação e Colaboração em Equipe 💬?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Comunicação e Colaboração em Equipe 💬 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Comunicação e Colaboração em Equipe 💬, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Comunicação e Colaboração em Equipe 💬?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Comunicação e Colaboração em Equipe 💬 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Comunicação e Colaboração em Equipe 💬 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Comunicação e Colaboração em Equipe 💬 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 16 – Design, Prototipagem e Handoff (Figma) 🎨
- Qual é o conceito fundamental e objetivo principal de Design, Prototipagem e Handoff (Figma) 🎨?
- ( ) Reduzir a segurança do sistema sem análise prévia.
- (x) Garantir estruturação, eficiência e qualidade no desenvolvimento de software.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Bloquear a execução de rotinas assíncronas.
-
Qual benefício direto é obtido ao aplicar as melhores práticas de Design, Prototipagem e Handoff (Figma) 🎨?
- (x) Maior manutenibilidade, legibilidade, desacoplamento e desempenho.
- ( ) Aumento indeterminado no tempo de latência das chamadas à API.
- ( ) Incompatibilidade com os compiladores e interpretadores modernos.
-
( ) Impedir a criação de testes automatizados.
-
Em relação ao fluxo de execução e arquitetura em Design, Prototipagem e Handoff (Figma) 🎨, Prototipagem e Handoff (Figma) 🎨, assinale a alternativa correta:
- ( ) A lógica opera sem validação de entradas ou saídas.
- (x) O fluxo de dados segue validação rigorosa de entrada, processamento coeso e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de visualização.
-
( ) É proibido desacoplar dependências entre módulos.
-
Qual é a conduta recomendada para manter a legibilidade do código em Design, Prototipagem e Handoff (Figma) 🎨?
- (x) Seguir convenções de nomenclatura limpa, modularização e documentação clara.
- ( ) Utilizar variáveis globais sem restrição de acesso.
- ( ) Substituir nomes descritivos por identificadores de um único caractere.
-
( ) Desabilitar a checagem de tipos e validação estática.
-
Como comprovar que a implementação de Design, Prototipagem e Handoff (Figma) 🎨 atingiu os critérios de aceitação?
- ( ) Avaliando visualmente a quantidade total de linhas de código.
- (x) Executando suítes de testes unitários e de integração automatizados com cobertura adequada.
- ( ) Verificando a paleta de cores do editor de texto.
-
( ) Omitindo os relatórios de execução de testes no CI/CD.
-
Ao tratar exceções e cenários de falha em Design, Prototipagem e Handoff (Figma) 🎨, Prototipagem e Handoff (Figma) 🎨, o desenvolvedor deve:
- (x) Capturar erros específicos, registrar logs rastreáveis e fornecer mensagens claras.
- ( ) Silenciar todas as exceções com blocos vazios.
- ( ) Encerrar abruptamente o processo do servidor sem notificação.
-
( ) Modificar variáveis de ambiente do sistema operacional.
-
Qual o risco de ignorar as convenções e padrões recomendados em Design, Prototipagem e Handoff (Figma) 🎨?
- (x) Acúmulo de débito técnico, vulnerabilidades de segurança e degradação de desempenho.
- ( ) Formatação automática de arquivos na IDE.
- ( ) Aumento espontâneo da velocidade do barramento de memória.
-
( ) Exclusão de arquivos de configuração do projeto.
-
O princípio da responsabilidade única aplicado a Design, Prototipagem e Handoff (Figma) 🎨 estabelece que:
- (x) Cada componente ou módulo deve ter apenas uma única razão para mudar.
- ( ) Todas as funções do projeto devem residir no mesmo arquivo-fonte.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os testes automatizados devem ser deletados antes da compilação de produção.
-
Para integrar Design, Prototipagem e Handoff (Figma) 🎨 com outros serviços e módulos do ecossistema, deve-se:
- (x) Utilizar interfaces bem definidas, abstrações e contratos claros (APIs/DTOs).
- ( ) Acessar diretamente estruturas privadas internas de outros módulos.
- ( ) Trafegar dados confidenciais em texto puro sem criptografia.
-
( ) Desativar os protocolos de comunicação da rede.
-
A documentação técnica referente a Design, Prototipagem e Handoff (Figma) 🎨 deve conter obrigatoriamente:
- (x) Requisitos funcionais, arquitetura, exemplos práticos de uso e instruções de teste.
- ( ) Apenas a assinatura digital do autor.
- ( ) Uma lista aleatória de comandos de sistema operacional.
- ( ) Rascunhos não revisados de reuniões antigas.
🧠 Quiz 17 – Gestão de Projetos com Metodologias Ágeis e Kanban 🚀
- Qual o propósito principal de Gestão de Projetos com Metodologias Ágeis e Kanban 🚀?
- ( ) Reduzir o espaço em disco sem validação.
- (x) Garantir estruturação, eficiência e robustez no processamento do sistema.
- ( ) Desativar os testes unitários automatizados.
-
( ) Substituir a documentação técnica por código legado.
-
Qual benefício direto é obtido ao aplicar os padrões de Gestão de Projetos com Metodologias Ágeis e Kanban 🚀?
- (x) Maior manutenibilidade, legibilidade e desempenho.
- ( ) Aumento no tempo de resposta das chamadas à API.
- ( ) Incompatibilidade com compiladores modernos.
-
( ) Bloqueio da execução assíncrona.
-
Em relação à arquitetura de Gestão de Projetos com Metodologias Ágeis e Kanban 🚀, assinale a alternativa correta:
- ( ) O módulo opera de forma totalmente isolada sem interface de dados.
- (x) O fluxo de dados segue validação de entrada, processamento e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de apresentação.
-
( ) Não há suporte para testes de integração.
-
Qual a melhor prática ao implementar Gestão de Projetos com Metodologias Ágeis e Kanban 🚀?
- (x) Manter o código coeso, desacoplado e devidamente documentado.
- ( ) Utilizar variáveis globais sem controle de acesso.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Desabilitar a checagem de tipos estáticos.
-
Como verificar se a implementação de Gestão de Projetos com Metodologias Ágeis e Kanban 🚀 atingiu os objetivos de qualidade?
- ( ) Observando o tamanho do arquivo fonte em bytes.
- (x) Executando testes automatizados de cobertura e benchmarks de desempenho.
- ( ) Verificando a cor do tema do editor de código.
-
( ) Aguardando reclamações dos usuários finais em produção.
-
Ao lidar com exceções em Gestão de Projetos com Metodologias Ágeis e Kanban 🚀, deve-se:
- (x) Capturar falhas específicas e fornecer mensagens informativas com rastreamento.
- ( ) Ignorar todos os erros com blocos vazios try-catch.
- ( ) Encerrar o sistema imediatamente sem log.
-
( ) Modificar o sistema operacional hospedeiro.
-
Qual o impacto do mau uso dos conceitos de Gestão de Projetos com Metodologias Ágeis e Kanban 🚀?
- (x) Degradação de desempenho, vulnerabilidades de segurança e débito técnico.
- ( ) Redução automática no uso de memória RAM.
- ( ) Melhoria na taxa de transferência de dados da rede.
-
( ) Formatação automática de arquivos Markdown.
-
O princípio da responsabilidade única aplicado a Gestão de Projetos com Metodologias Ágeis e Kanban 🚀 determina que:
- (x) Cada classe ou função deve ter apenas uma razão para mudar.
- ( ) Todas as funções do sistema devem residir no mesmo arquivo.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os comentários de código devem ser removidos antes da compilação.
-
Na integração de Gestão de Projetos com Metodologias Ágeis e Kanban 🚀 com outros componentes do ecossistema:
- (x) Deve-se utilizar interfaces bem definidas e contratos claros (APIs/DTOs).
- ( ) Deve-se utilizar acesso direto às estruturas privadas de outros módulos.
- ( ) É proibido transmitir dados pela rede.
-
( ) Todos os dados devem ser trafegados em formato de texto bruto desformatado.
-
A documentação técnica referente a Gestão de Projetos com Metodologias Ágeis e Kanban 🚀 deve conter:
- (x) Requisitos, diagramas de fluxo, exemplos de uso e instruções de teste.
- ( ) Apenas o nome do autor do código.
- ( ) Lista de reprodução de músicas recomendadas.
- ( ) Histórico completo de conversas do suporte.
🧠 Quiz 18 – Automação de Workflows de Produtividade em Desenvolvimento 🚀
- Qual o propósito principal de Automação de Workflows de Produtividade em Desenvolvimento 🚀?
- ( ) Reduzir o espaço em disco sem validação.
- (x) Garantir estruturação, eficiência e robustez no processamento do sistema.
- ( ) Desativar os testes unitários automatizados.
-
( ) Substituir a documentação técnica por código legado.
-
Qual benefício direto é obtido ao aplicar os padrões de Automação de Workflows de Produtividade em Desenvolvimento 🚀?
- (x) Maior manutenibilidade, legibilidade e desempenho.
- ( ) Aumento no tempo de resposta das chamadas à API.
- ( ) Incompatibilidade com compiladores modernos.
-
( ) Bloqueio da execução assíncrona.
-
Em relação à arquitetura de Automação de Workflows de Produtividade em Desenvolvimento 🚀, assinale a alternativa correta:
- ( ) O módulo opera de forma totalmente isolada sem interface de dados.
- (x) O fluxo de dados segue validação de entrada, processamento e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de apresentação.
-
( ) Não há suporte para testes de integração.
-
Qual a melhor prática ao implementar Automação de Workflows de Produtividade em Desenvolvimento 🚀?
- (x) Manter o código coeso, desacoplado e devidamente documentado.
- ( ) Utilizar variáveis globais sem controle de acesso.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Desabilitar a checagem de tipos estáticos.
-
Como verificar se a implementação de Automação de Workflows de Produtividade em Desenvolvimento 🚀 atingiu os objetivos de qualidade?
- ( ) Observando o tamanho do arquivo fonte em bytes.
- (x) Executando testes automatizados de cobertura e benchmarks de desempenho.
- ( ) Verificando a cor do tema do editor de código.
-
( ) Aguardando reclamações dos usuários finais em produção.
-
Ao lidar com exceções em Automação de Workflows de Produtividade em Desenvolvimento 🚀, deve-se:
- (x) Capturar falhas específicas e fornecer mensagens informativas com rastreamento.
- ( ) Ignorar todos os erros com blocos vazios try-catch.
- ( ) Encerrar o sistema imediatamente sem log.
-
( ) Modificar o sistema operacional hospedeiro.
-
Qual o impacto do mau uso dos conceitos de Automação de Workflows de Produtividade em Desenvolvimento 🚀?
- (x) Degradação de desempenho, vulnerabilidades de segurança e débito técnico.
- ( ) Redução automática no uso de memória RAM.
- ( ) Melhoria na taxa de transferência de dados da rede.
-
( ) Formatação automática de arquivos Markdown.
-
O princípio da responsabilidade única aplicado a Automação de Workflows de Produtividade em Desenvolvimento 🚀 determina que:
- (x) Cada classe ou função deve ter apenas uma razão para mudar.
- ( ) Todas as funções do sistema devem residir no mesmo arquivo.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os comentários de código devem ser removidos antes da compilação.
-
Na integração de Automação de Workflows de Produtividade em Desenvolvimento 🚀 com outros componentes do ecossistema:
- (x) Deve-se utilizar interfaces bem definidas e contratos claros (APIs/DTOs).
- ( ) Deve-se utilizar acesso direto às estruturas privadas de outros módulos.
- ( ) É proibido transmitir dados pela rede.
-
( ) Todos os dados devem ser trafegados em formato de texto bruto desformatado.
-
A documentação técnica referente a Automação de Workflows de Produtividade em Desenvolvimento 🚀 deve conter:
- (x) Requisitos, diagramas de fluxo, exemplos de uso e instruções de teste.
- ( ) Apenas o nome do autor do código.
- ( ) Lista de reprodução de músicas recomendadas.
- ( ) Histórico completo de conversas do suporte.
🧠 Quiz 19 – Análise de Métricas de Software e Qualidade 🚀
- Qual o propósito principal de Análise de Métricas de Software e Qualidade 🚀?
- ( ) Reduzir o espaço em disco sem validação.
- (x) Garantir estruturação, eficiência e robustez no processamento do sistema.
- ( ) Desativar os testes unitários automatizados.
-
( ) Substituir a documentação técnica por código legado.
-
Qual benefício direto é obtido ao aplicar os padrões de Análise de Métricas de Software e Qualidade 🚀?
- (x) Maior manutenibilidade, legibilidade e desempenho.
- ( ) Aumento no tempo de resposta das chamadas à API.
- ( ) Incompatibilidade com compiladores modernos.
-
( ) Bloqueio da execução assíncrona.
-
Em relação à arquitetura de Análise de Métricas de Software e Qualidade 🚀, assinale a alternativa correta:
- ( ) O módulo opera de forma totalmente isolada sem interface de dados.
- (x) O fluxo de dados segue validação de entrada, processamento e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de apresentação.
-
( ) Não há suporte para testes de integração.
-
Qual a melhor prática ao implementar Análise de Métricas de Software e Qualidade 🚀?
- (x) Manter o código coeso, desacoplado e devidamente documentado.
- ( ) Utilizar variáveis globais sem controle de acesso.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Desabilitar a checagem de tipos estáticos.
-
Como verificar se a implementação de Análise de Métricas de Software e Qualidade 🚀 atingiu os objetivos de qualidade?
- ( ) Observando o tamanho do arquivo fonte em bytes.
- (x) Executando testes automatizados de cobertura e benchmarks de desempenho.
- ( ) Verificando a cor do tema do editor de código.
-
( ) Aguardando reclamações dos usuários finais em produção.
-
Ao lidar com exceções em Análise de Métricas de Software e Qualidade 🚀, deve-se:
- (x) Capturar falhas específicas e fornecer mensagens informativas com rastreamento.
- ( ) Ignorar todos os erros com blocos vazios try-catch.
- ( ) Encerrar o sistema imediatamente sem log.
-
( ) Modificar o sistema operacional hospedeiro.
-
Qual o impacto do mau uso dos conceitos de Análise de Métricas de Software e Qualidade 🚀?
- (x) Degradação de desempenho, vulnerabilidades de segurança e débito técnico.
- ( ) Redução automática no uso de memória RAM.
- ( ) Melhoria na taxa de transferência de dados da rede.
-
( ) Formatação automática de arquivos Markdown.
-
O princípio da responsabilidade única aplicado a Análise de Métricas de Software e Qualidade 🚀 determina que:
- (x) Cada classe ou função deve ter apenas uma razão para mudar.
- ( ) Todas as funções do sistema devem residir no mesmo arquivo.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os comentários de código devem ser removidos antes da compilação.
-
Na integração de Análise de Métricas de Software e Qualidade 🚀 com outros componentes do ecossistema:
- (x) Deve-se utilizar interfaces bem definidas e contratos claros (APIs/DTOs).
- ( ) Deve-se utilizar acesso direto às estruturas privadas de outros módulos.
- ( ) É proibido transmitir dados pela rede.
-
( ) Todos os dados devem ser trafegados em formato de texto bruto desformatado.
-
A documentação técnica referente a Análise de Métricas de Software e Qualidade 🚀 deve conter:
- (x) Requisitos, diagramas de fluxo, exemplos de uso e instruções de teste.
- ( ) Apenas o nome do autor do código.
- ( ) Lista de reprodução de músicas recomendadas.
- ( ) Histórico completo de conversas do suporte.
🧠 Quiz 20 – Projeto Capstone: Ecossistema de Produtividade Integrado 🚀
- Qual o propósito principal de Projeto Capstone: Ecossistema de Produtividade Integrado 🚀?
- ( ) Reduzir o espaço em disco sem validação.
- (x) Garantir estruturação, eficiência e robustez no processamento do sistema.
- ( ) Desativar os testes unitários automatizados.
-
( ) Substituir a documentação técnica por código legado.
-
Qual benefício direto é obtido ao aplicar os padrões de Projeto Capstone: Ecossistema de Produtividade Integrado 🚀?
- (x) Maior manutenibilidade, legibilidade e desempenho.
- ( ) Aumento no tempo de resposta das chamadas à API.
- ( ) Incompatibilidade com compiladores modernos.
-
( ) Bloqueio da execução assíncrona.
-
Em relação à arquitetura de Projeto Capstone: Ecossistema de Produtividade Integrado 🚀, assinale a alternativa correta:
- ( ) O módulo opera de forma totalmente isolada sem interface de dados.
- (x) O fluxo de dados segue validação de entrada, processamento e verificação de saída.
- ( ) As regras de negócio devem ser codificadas diretamente na camada de apresentação.
-
( ) Não há suporte para testes de integração.
-
Qual a melhor prática ao implementar Projeto Capstone: Ecossistema de Produtividade Integrado 🚀?
- (x) Manter o código coeso, desacoplado e devidamente documentado.
- ( ) Utilizar variáveis globais sem controle de acesso.
- ( ) Omitir o tratamento de erros em produção.
-
( ) Desabilitar a checagem de tipos estáticos.
-
Como verificar se a implementação de Projeto Capstone: Ecossistema de Produtividade Integrado 🚀 atingiu os objetivos de qualidade?
- ( ) Observando o tamanho do arquivo fonte em bytes.
- (x) Executando testes automatizados de cobertura e benchmarks de desempenho.
- ( ) Verificando a cor do tema do editor de código.
-
( ) Aguardando reclamações dos usuários finais em produção.
-
Ao lidar com exceções em Projeto Capstone: Ecossistema de Produtividade Integrado 🚀, deve-se:
- (x) Capturar falhas específicas e fornecer mensagens informativas com rastreamento.
- ( ) Ignorar todos os erros com blocos vazios try-catch.
- ( ) Encerrar o sistema imediatamente sem log.
-
( ) Modificar o sistema operacional hospedeiro.
-
Qual o impacto do mau uso dos conceitos de Projeto Capstone: Ecossistema de Produtividade Integrado 🚀?
- (x) Degradação de desempenho, vulnerabilidades de segurança e débito técnico.
- ( ) Redução automática no uso de memória RAM.
- ( ) Melhoria na taxa de transferência de dados da rede.
-
( ) Formatação automática de arquivos Markdown.
-
O princípio da responsabilidade única aplicado a Projeto Capstone: Ecossistema de Produtividade Integrado 🚀 determina que:
- (x) Cada classe ou função deve ter apenas uma razão para mudar.
- ( ) Todas as funções do sistema devem residir no mesmo arquivo.
- ( ) O banco de dados deve ser executado na mesma thread do frontend.
-
( ) Os comentários de código devem ser removidos antes da compilação.
-
Na integração de Projeto Capstone: Ecossistema de Produtividade Integrado 🚀 com outros componentes do ecossistema:
- (x) Deve-se utilizar interfaces bem definidas e contratos claros (APIs/DTOs).
- ( ) Deve-se utilizar acesso direto às estruturas privadas de outros módulos.
- ( ) É proibido transmitir dados pela rede.
-
( ) Todos os dados devem ser trafegados em formato de texto bruto desformatado.
-
A documentação técnica referente a Projeto Capstone: Ecossistema de Produtividade Integrado 🚀 deve conter:
- (x) Requisitos, diagramas de fluxo, exemplos de uso e instruções de teste.
- ( ) Apenas o nome do autor do código.
- ( ) Lista de reprodução de músicas recomendadas.
- ( ) Histórico completo de conversas do suporte.
Slides
Configuração
Ambientes de Desenvolvimento e Configuração 🛠️
Guias oficiais passo a passo para configurar suas ferramentas profissionais de desenvolvimento para Ferramentas para Gestão de Projetos.
-
Plataformas de Gestão Ágil (Jira, Trello, Notion) --- Configuração de quadros Kanban, sprints Scrum e bases de conhecimento.
-
Plataformas de Código Colaborativo (GitHub e GitLab) --- Configuração de branch protection rules, templates de PR e automação.
-
Clientes de Teste de APIs (Postman e Insomnia) --- Criação de coleções de requisições, variáveis de ambiente e testes automatizados de API.
-
Ambientes Padronizados com Docker Desktop --- Uso de containers para subir bancos de dados e serviços auxiliares de projeto localmente.
Setup 01: Plataformas de Gestão Ágil (Jira, Trello, Notion) 🛠️
Objetivo da Configuração
Objetivo: Configuração de quadros Kanban, sprints Scrum e bases de conhecimento.
1. Pré-Requisitos e Visão Geral
A configuração correta deste ambiente é fundamental para o desenvolvimento eficiente e sem atritos ao longo do curso de Ferramentas para Gestão de Projetos.
2. Passo a Passo de Instalação e Configuração
📥 Passo 1: Download e Instalação
Siga as instruções oficiais correspondentes ao seu sistema operacional (Windows, Linux ou macOS):
- Baixe o pacote oficial da ferramenta diretamente do site do mantenedor.
- Execute o assistente de instalação habilitando a opção de adicionar os binários à variável de ambiente PATH.
⚙️ Passo 2: Verificação no Terminal
Abra uma nova janela de terminal e valide se o comando está acessível:
# Verificação de versão instalada
echo "Validando ambiente de Ferramentas para Gestão de Projetos..."
💻 Passo 3: Configuração no Editor / IDE
- Instale as extensões recomendadas para obter destaque de sintaxe, autocompletar e linters integrados.
- Reinicie o editor para carregar os novos caminhos de execução.
3. Teste Rápido de Validação
Crie um arquivo de teste simples para comprovar que o compilador, interpretador ou ferramenta está operando com 100% de sucesso.
🎯 Próximos Passos
Com o ambiente configurado, você está pronto para iniciar as aulas práticas e desenvolver os projetos da disciplina.
Setup 02: Plataformas de Código Colaborativo (GitHub e GitLab) 🛠️
Objetivo da Configuração
Objetivo: Configuração de branch protection rules, templates de PR e automação.
1. Pré-Requisitos e Visão Geral
A configuração correta deste ambiente é fundamental para o desenvolvimento eficiente e sem atritos ao longo do curso de Ferramentas para Gestão de Projetos.
2. Passo a Passo de Instalação e Configuração
📥 Passo 1: Download e Instalação
Siga as instruções oficiais correspondentes ao seu sistema operacional (Windows, Linux ou macOS):
- Baixe o pacote oficial da ferramenta diretamente do site do mantenedor.
- Execute o assistente de instalação habilitando a opção de adicionar os binários à variável de ambiente PATH.
⚙️ Passo 2: Verificação no Terminal
Abra uma nova janela de terminal e valide se o comando está acessível:
# Verificação de versão instalada
echo "Validando ambiente de Ferramentas para Gestão de Projetos..."
💻 Passo 3: Configuração no Editor / IDE
- Instale as extensões recomendadas para obter destaque de sintaxe, autocompletar e linters integrados.
- Reinicie o editor para carregar os novos caminhos de execução.
3. Teste Rápido de Validação
Crie um arquivo de teste simples para comprovar que o compilador, interpretador ou ferramenta está operando com 100% de sucesso.
🎯 Próximos Passos
Com o ambiente configurado, você está pronto para iniciar as aulas práticas e desenvolver os projetos da disciplina.
Setup 03: Clientes de Teste de APIs (Postman e Insomnia) 🛠️
Objetivo da Configuração
Objetivo: Criação de coleções de requisições, variáveis de ambiente e testes automatizados de API.
1. Pré-Requisitos e Visão Geral
A configuração correta deste ambiente é fundamental para o desenvolvimento eficiente e sem atritos ao longo do curso de Ferramentas para Gestão de Projetos.
2. Passo a Passo de Instalação e Configuração
📥 Passo 1: Download e Instalação
Siga as instruções oficiais correspondentes ao seu sistema operacional (Windows, Linux ou macOS):
- Baixe o pacote oficial da ferramenta diretamente do site do mantenedor.
- Execute o assistente de instalação habilitando a opção de adicionar os binários à variável de ambiente PATH.
⚙️ Passo 2: Verificação no Terminal
Abra uma nova janela de terminal e valide se o comando está acessível:
# Verificação de versão instalada
echo "Validando ambiente de Ferramentas para Gestão de Projetos..."
💻 Passo 3: Configuração no Editor / IDE
- Instale as extensões recomendadas para obter destaque de sintaxe, autocompletar e linters integrados.
- Reinicie o editor para carregar os novos caminhos de execução.
3. Teste Rápido de Validação
Crie um arquivo de teste simples para comprovar que o compilador, interpretador ou ferramenta está operando com 100% de sucesso.
🎯 Próximos Passos
Com o ambiente configurado, você está pronto para iniciar as aulas práticas e desenvolver os projetos da disciplina.
Setup 04: Ambientes Padronizados com Docker Desktop 🛠️
Objetivo da Configuração
Objetivo: Uso de containers para subir bancos de dados e serviços auxiliares de projeto localmente.
1. Pré-Requisitos e Visão Geral
A configuração correta deste ambiente é fundamental para o desenvolvimento eficiente e sem atritos ao longo do curso de Ferramentas para Gestão de Projetos.
2. Passo a Passo de Instalação e Configuração
📥 Passo 1: Download e Instalação
Siga as instruções oficiais correspondentes ao seu sistema operacional (Windows, Linux ou macOS):
- Baixe o pacote oficial da ferramenta diretamente do site do mantenedor.
- Execute o assistente de instalação habilitando a opção de adicionar os binários à variável de ambiente PATH.
⚙️ Passo 2: Verificação no Terminal
Abra uma nova janela de terminal e valide se o comando está acessível:
# Verificação de versão instalada
echo "Validando ambiente de Ferramentas para Gestão de Projetos..."
💻 Passo 3: Configuração no Editor / IDE
- Instale as extensões recomendadas para obter destaque de sintaxe, autocompletar e linters integrados.
- Reinicie o editor para carregar os novos caminhos de execução.
3. Teste Rápido de Validação
Crie um arquivo de teste simples para comprovar que o compilador, interpretador ou ferramenta está operando com 100% de sucesso.
🎯 Próximos Passos
Com o ambiente configurado, você está pronto para iniciar as aulas práticas e desenvolver os projetos da disciplina.
Sobre
Sobre o Guia de Ferramentas 🚀
O Guia de Ferramentas da ADS Extra nasceu para preencher a lacuna entre o conhecimento teórico de programação e as ferramentas reais utilizadas no dia a dia das empresas de tecnologia.
🎯 Por que este curso?
No mercado atual, saber codificar em uma linguagem (como JavaScript, Java ou Python) é apenas o primeiro passo. O diferencial competitivo de um desenvolvedor está em sua capacidade de:
- Gerenciar seu tempo e tarefas de forma ágil (Jira, GitHub Issues).
- Colaborar efetivamente com outros desenvolvedores (Git, GitHub, PRs).
- Garantir a qualidade do que entrega (Testes, Linters, API Testing).
- Automação de ambientes e processos (Docker, CI/CD, Terraform).
- Comunicar-se e entender as interfaces de design (Slack, Figma).
🛠️ Metodologia
Nosso foco é 100% aplicado: - Termynal: Exemplos interativos de linha de comando. - Diagramas: Visualização clara de fluxos e arquiteturas. - Projetos Progressivos: Cada aula resulta em uma configuração ou cinto de ferramentas útil para sua carreira.
🎓 Público-Alvo
- Estudantes de Análise e Desenvolvimento de Sistemas.
- Desenvolvedores juniores buscando maturidade profissional.
- Entusiastas de tecnologia que querem entender o "como as coisas funcionam" nos bastidores das grandes Big Techs.
📚 O Que Você Vai Aprender
Módulo 1 – Fundamentos e Gestão
- Organização profissional com Jira, Trello e Asana
- Domínio do Ambiente de Dev (VS Code, Extensões e Terminal)
- Máquina do Tempo com Git: Fundamentos e snapshots
Módulo 2 – Colaboração e Dados
- O Ciclo PR: GitHub, GitLab e Code Review
- Manipulação Visual de Dados (PostgreSQL, MongoDB, Redis)
- Frameworks de Qualidade e Testes (Jest, PyTest)
Módulo 3 – Qualidade e Automação
- Testes de API profissionais com Postman e Insomnia
- Qualidade de Código estática (ESLint, Prettier)
- CI/CD Moderno com GitHub Actions
Módulo 4 – Infraestrutura e Integração
- Automação de Servidores e IaC (Ansible, Terraform)
- Contêineres com Docker e Orquestração K8s
- Ferramentas de Comunicação (Slack/Teams) e Design (Figma)
🛠️ Metodologia
Foco 100% prático e orientado a projetos. Cada aula resulta em uma peça funcional do seu ambiente de trabalho ou em uma competência técnica validada por mini-projetos e quizzes, garantindo que ao final do curso você domine as ferramentas padrão da indústria.
Pronto para dominar as ferramentas? Começar Agora
Materiais de Apoio 📚
Bem-vindo à seção de materiais complementares do curso. Aqui você encontra recursos individuais organizados por categoria.
-
Material visual das aulas com diagramas e conceitos principais.
-
Testes interativos de 10 questões para validar seu conhecimento.
-
Listas progressivas (básico, intermediário e desafio) por aula.
-
Aplicações práticas para consolidar os temas de cada módulo.
-
Guias passo a passo para configurar seu ambiente de desenvolvimento.
🏷️ Índice de Tags Didáticas
Navegue pelas aulas, exercícios e projetos do curso organizados por temas, tecnologias e conceitos fundamentais:
tags.md:145-167/name
Versão para Impressão
Esta página foi gerada automaticamente para impressão.