🧩 Exercícios: VS Code Profissional e Governança de Workspace
Extra Guia de Ferramentas • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 9.1 — Configuração de Recomendações de Extensões (.vscode/extensions.json)
Contexto: Criar o arquivo de governança que solicita automaticamente a instalação de extensões essenciais para um projeto Python/FastAPI no VS Code.
Extensões Requeridas:
ms-python.pythoncharliermarsh.ruffeamodio.gitlensusernamehw.errorlens
Resultado Esperado
{
"recommendations": [
"ms-python.python",
"charliermarsh.ruff",
"eamodio.gitlens",
"usernamehw.errorlens"
]
}
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
extensions_SeuNome.json - Envie na tarefa:
Atividade Cap 09 - VS Code Profissional
🔑 Gabarito de Código & Solução Comentada
{
"recommendations": [
"ms-python.python",
"charliermarsh.ruff",
"eamodio.gitlens",
"usernamehw.errorlens"
]
}
Comentário: Ao abrir o repositório, o VS Code exibe uma notificação para instalar todas as extensões recomendadas com um clique.
🎯 Nível 2: Prática
Problema 9.2 — Arquivo de Configuração de Workspace (.vscode/settings.json)
Escreva o settings.json com formatação automática ao salvar com o Ruff, régua visual na coluna 88 e 120, e exclusão de indexação de pastas pesadas.
🔑 Gabarito de Código & Solução Comentada
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.rulers": [88, 120],
"editor.bracketPairColorization.enabled": true,
"files.exclude": {
"**/.git": true,
"**/.venv": true,
"**/__pycache__": true,
"**/.pytest_cache": true
}
}
🎯 Nível 3: Integração
Problema 9.3 — Configuração de Depuração com Múltiplos Perfis (.vscode/launch.json)
Configure o launch.json com 2 configurações de depuração:
FastAPI Local Server(executauvicorn main:app --reload).Pytest Current File(executa os testes do arquivo ativo aberto no editor).
🔑 Gabarito de Código & Solução Comentada
{
"version": "0.2.0",
"configurations": [
{
"name": "FastAPI: Uvicorn Server",
"type": "debugpy",
"request": "launch",
"module": "uvicorn",
"args": ["src.main:app", "--reload", "--port", "8000"],
"jinja": true,
"justMyCode": true
},
{
"name": "Pytest: Current File",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": ["${file}", "-v"],
"console": "integratedTerminal",
"justMyCode": false
}
]
}
🎯 Nível 4: Desafio
Problema 9.4 — Configuração Completa de Dev Container (.devcontainer/devcontainer.json)
Crie uma especificação de Dev Container para desenvolvimento em Python 3.12 com Docker in Docker (DinD), porta 8000 encaminhada, extensões pré-instaladas e script pós-criação (pip install -e .).
🔑 Gabarito de Código & Solução Comentada
// .devcontainer/devcontainer.json
{
"name": "Python 3.12 Dev Environment",
"image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
"forwardPorts": [8000],
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"charliermarsh.ruff",
"tamasfe.even-better-toml",
"rangav.vscode-thunder-client"
],
"settings": {
"editor.formatOnSave": true,
"python.defaultInterpreterPath": "/usr/local/bin/python"
}
}
},
"postCreateCommand": "pip install --upgrade pip && pip install -r requirements.txt"
}