Universidade TecnolĂłgica Federal do ParanĂĄ
Campus Siqueira Campos
Revolução Digital:
Desvendando Algoritmos, Reconectando Humanidade
Material DidĂĄtico para Professores do 1Âș ao 3Âș Ano

PARTE 14: O QUE FAZER QUANDO OCORRER UM ERRO

Erros comuns e como resolver

“Python não encontrado”
VocĂȘ nĂŁo instalou o Python
Baixe em python.org e instale
Ou no terminal: sudo apt install python3 (Linux)
“Live Server não funciona”
Verifique se a extensĂŁo estĂĄ instalada
Tente reiniciar o VSCode
Verifique se o arquivo Ă© .html
“O VSCode não reconhece meu comando”
VocĂȘ precisa instalar a extensĂŁo certa
Ou o comando que vocĂȘ quer executar nĂŁo existe no seu PATH
“O cĂłdigo nĂŁo roda e nĂŁo sei por quĂȘ”
Olhe o painel PROBLEMAS (embaixo)
Ele mostra todos os erros de sintaxe
É seu novo melhor amigo
“Perdi minhas configuraçÔes”
Elas estão num arquivo JSON. Use a Command Palette e busque “Open User Settings (JSON)”
– Ou ative o Settings Sync e restaure

PARTE 15: BÔNUS COMO PARECER UM PROGRAMADOR PROFISSIONAL

  1. Use temas escuros. É clichĂȘ, mas funciona. Dark Modern, One Dark Pro, Dracula todos sĂŁo aceitĂĄveis.
  2. Use fontes com ligaturas. Fira Code, Cascadia Code, JetBrains Mono. Elas transformam != em ≠ e => em ⇒. Parece mágica.
  3. Decore os atalhos. NĂŁo precisa saber todos, mas saber os principais (Command Palette, abrir arquivos, terminal) te faz parecer um ninja.
  4. Use o terminal integrado. Nada grita “sou profissional” como abrir o terminal dentro do editor em vez de abrir um CMD separado.
  5. Faça commits frequentes. Git integrado + commits com mensagens boas = vocĂȘ parece um sĂȘnior.
  6. Personalize. Mude o tema, instale extensÔes, configure atalhos. Seu VSCode é seu. Faça dele sua casa.
imagem 20

CONCLUSÃO

ParabĂ©ns! VocĂȘ agora sabe o suficiente sobre VSCode pra começar a programar como um verdadeiro(a) dev. NĂŁo importa se vocĂȘ vai fazer HTML, CSS, JavaScript ou Python o VSCode vai estar lĂĄ, firme e forte, te ajudando a transformar suas ideias em cĂłdigo.

Lembre-se:

Agora vai. Abre o VSCode, cria um projeto, e começa a codar. O mundo precisa do que vocĂȘ vai criar.

E se der erro? Relaxa. É sĂł um bug. VocĂȘ tem as ferramentas pra consertar.

“O VSCode nĂŁo Ă© apenas um editor. É um estilo de vida.” AlguĂ©m na internet, provavelmente.

ÍNDICE DAS PARTES

Parte TĂ­tulo
1 O que Ă© essa ferramenta e por que vocĂȘ deve amar ela
2 Instalação baixando o poder
3 A interface conhecendo os botÔes mågicos
4 ExtensÔes tornando o VSCode um super-editor
5 Seu primeiro projeto mĂŁo na massa
6 Rodando o cĂłdigo hora do show
7 Debugando caçando bugs como um profissional
8 ConfiguraçÔes deixando do seu jeito
9 Controle de versĂŁo Git integrado
10 Terminal integrado seu melhor amigo
11 Atalhos avançados virando um ninja
12 Dicas e truques que ninguém te conta
13 Perguntas frequentes (FAQ)
14 O que fazer quando der pra erro
15 BĂŽnus como parecer um programador profissional

🚀 PARTE 2: INSTALAÇÃO DETALHADA BAIXANDO O PODER (DE VERDADE)

Bem-vindo Ă  matriz, parte 2

Na parte 1, vocĂȘ conheceu o VSCode e ficou de queixo caĂ­do com tanta promessa. Agora Ă© hora de colocar a mĂŁo na massa e instalar essa belezinha. E nĂŁo, nĂŁo Ă© sĂł “baixar e next, next, finish” – tem detalhes que fazem toda a diferença e que ninguĂ©m te conta.

Pega um café (ou uma cerveja, não vou julgar), respira fundo e vai.

📩 INSTALAÇÃO NO WINDOWS O PASSO A PASSO QUE NINGUÉM TE DEU

Escolhendo seu instalador: User vs System vs ZIP

O VSCode no Windows vem em trĂȘs sabores:

Tipo O que Ă© Quando usar
User Installer (recomendado) Instala sĂł pro seu usuĂĄrio. NĂŁo precisa de senha de administrador. 99% dos casos Ă© o que vocĂȘ vai usar. AtualizaçÔes mais suaves.
System Installer Instala pra todos os usuĂĄrios do computador. Precisa de permissĂŁo de admin. Computadores compartilhados (tipo o PC da famĂ­lia ou do trampo).
ZIP Archive Um arquivo zipado. Só extrair e rodar. Quer levar o VSCode num pendrive? É pra isso.

Minha recomendação: baixe o User Installer. É o mais simples, não enche o saco pedindo senha e atualiza sozinho igual mágica.

Passo 1: Baixe o instalador

  1. Abra seu navegador (se ainda tiver coragem depois de tantas abas abertas)
  2. VĂĄ para https://code.visualstudio.com/Download
  3. O site jĂĄ detecta que vocĂȘ estĂĄ no Windows e mostra o botĂŁo certo
  4. Clique no botĂŁo de download. O arquivo vai se chamar algo como VSCodeUserSetup-x64-1.XX.X.exe

đŸ”„ DICA DE OURO: Se vocĂȘ tem um PC com processador ARM (tipo os novos Snapdragon), baixe a versĂŁo ARM especĂ­fica. SenĂŁo, o x64 padrĂŁo resolve.

Passo 2: Execute o instalador

  1. DĂȘ dois cliques no arquivo .exe baixado
  2. Tela 1 Licença: “Aceito o contrato” → ✅ (ninguĂ©m lĂȘ mesmo, mas finge que leu)
  3. Tela 2 Local de instalação:
    • O padrĂŁo Ă© C:\Users\SeuUsuario\AppData\Local\Programs\Microsoft VS Code
    • ⚠ ATENÇÃO: Alguns “especialistas” vĂŁo dizer pra instalar em outro disco. IGNORE. Deixa onde estĂĄ. O VSCode Ă© leve (< 100 MB), nĂŁo vai encher seu SSD.
  4. Tela 3 Pasta do Menu Iniciar: Deixa padrĂŁo. Next.
  5. TELA 4 A MAIS IMPORTANTE DE TODAS (presta atenção aqui):

    Aparecem umas caixinhas pra marcar. MARCA TUDO:

    Opção Por que marcar
    ☑ Add “Open with Code” action to Windows Explorer file context menu Clica com botĂŁo direito em qualquer arquivo e abre no VSCode. Mudança de vida.
    ☑ Add “Open with Code” action to Windows Explorer directory context menu Clica com botĂŁo direito em qualquer PASTA e abre no VSCode. Mais mudança de vida.
    ☑ Register Code as an editor for supported file types Arquivos .txt, .html, .js, etc abrem no VSCode por padrĂŁo.
    ☑ Add to PATH (a mais importante) Permite digitar code no terminal e abrir o VSCode. SEM ISSO VOCÊ É UM MERO MORTAL.
  6. Tela 5 Pronto pra instalar: Confere se tá tudo certo e clica em “Instalar”
  7. Espera a barra de progresso encher (dá tempo de tomar um gole d’água)
  8. Tela 6 Concluído: Clica em “Concluir” e o VSCode abre

Passo 3: Verifique se deu certo

Abra o Prompt de Comando ou PowerShell (digita “cmd” no menu iniciar) e digite:

code --version

Se aparecer um nĂșmero de versĂŁo (tipo 1.85.0), deu certo. Se aparecer 'code' nĂŁo Ă© reconhecido, vocĂȘ esqueceu de marcar “Add to PATH” volta, reinstala e marca a porcaria da caixinha.

imagem 21

🍎 INSTALAÇÃO NO MAC A VERSÃO “É SÓ ARRASTAR” (MENTIRA, TEM DETALHE)

Passo 1: Baixe o .dmg

  1. VĂĄ para https://code.visualstudio.com/Download
  2. O site detecta que vocĂȘ Ă© do time da maçã mordida
  3. Baixa o arquivo .dmg tem versĂŁo pra Intel (processador antigo) e Apple Silicon (M1, M2, M3). Se nĂŁo sabe qual Ă© o seu, baixa o Universal, que funciona nos dois.

Passo 2: Instale (a parte fĂĄcil)

  1. DĂȘ dois cliques no .dmg baixado
  2. Uma janela aparece com o Ă­cone do VSCode e uma seta apontando pra pasta Applications
  3. ARRASTE o Ă­cone do VSCode pra dentro da pasta Applications
  4. Pronto. É literalmente isso. A Apple gosta de fazer parecer fácil.

Passo 3: Abra pela primeira vez (a parte que a Apple nĂŁo conta)

  1. VĂĄ na pasta Applications e dĂȘ dois cliques no Visual Studio Code
  2. ⚠ ALERTA: O Mac vai falar que o aplicativo Ă© de desenvolvedor nĂŁo identificado e nĂŁo vai deixar abrir
  3. Clique com o botão direito no ícone do VSCode e escolha “Abrir” aí sim aparece a opção “Abrir mesmo assim”
  4. Confirme e pronto. Agora o VSCode estĂĄ liberado.

đŸ”„ DICA: Para deixar o VSCode no Dock, clique com o botĂŁo direito no Ă­cone quando ele estiver aberto e selecione OpçÔes > Manter no Dock.

Passo 4: Configure o comando code no terminal (PARTE MAIS IMPORTANTE)

No Mac, o code nĂŁo vem configurado por padrĂŁo. VocĂȘ precisa fazer isso MANUALMENTE:

  1. Abra o VSCode
  2. Pressione Cmd + Shift + P (a Command Palette que vocĂȘ jĂĄ ama)
  3. Digite “shell command”
  4. Selecione “Shell Command: Install 'code' command in PATH”
  5. Uma notificação vai aparecer confirmando que deu certo
  6. Reinicie o terminal (feche e abra de novo)
  7. Teste: digite code --version no terminal

Se aparecer a versĂŁo, VOCÊ É UM HERÓI. Se nĂŁo aparecer, vocĂȘ tem um problema antigo de alias veja o tutorial oficial que resolve.

imagem 22

🐧 INSTALAÇÃO NO LINUX O CAMINHO DO GUERREIRO (COM SUDO)

Escolha sua distribuição, jovem padawan

O VSCode no Linux tem instalador pra quase tudo:

Distribuição Formato Comando
Ubuntu/Debian .deb sudo apt install ./<arquivo>.deb
Fedora/RHEL .rpm sudo dnf install <arquivo>.rpm
Arch AUR yay -S visual-studio-code-bin
Snap Snap sudo snap install --classic code
Nix Nix nix-env -iA nixpkgs.vscode

O método mais fåcil: Snap (funciona em qualquer uma)

sudo snap install --classic code

Pronto. O Snap cuida de tudo e mantém atualizado automaticamente.

O método .deb (Ubuntu/Debian)

  1. Baixe o arquivo .deb do site
  2. No terminal, navegue até a pasta onde baixou
  3. Rode:
    sudo apt install ./code_.deb
  4. O sistema instala e configura o repositório pra receber atualizaçÔes automåticas

Configure o code no PATH

No Linux, o code jĂĄ vem no PATH se vocĂȘ instalou pelo .deb ou Snap. Mas se nĂŁo veio:

  1. Abra o VSCode
  2. Ctrl + Shift + P
  3. Digite “shell command”
  4. Selecione “Install 'code' command in PATH”

Teste com code --version.

imagem 23

🌐 INSTALAÇÃO VIA WEB SEM INSTALAR NADA (SÉRIO)

Sabia que vocĂȘ pode usar o VSCode direto do navegador?

Acesse https://vscode.dev e pronto. VocĂȘ tem um VSCode funcionando no browser.

Mas peraĂ­:

imagem 24

✅ PÓS-INSTALAÇÃO O QUE FAZER ASSIM QUE ABRIR

  1. A tela de boas-vindas Quando vocĂȘ abre o VSCode pela primeira vez, aparece uma tela de boas-vindas. Ela tem: links pra documentação, opçÔes de tema, tutoriais interativos. NĂŁo precisa ler tudo agora. DĂĄ uma olhada, escolhe um tema escuro (porque vocĂȘ Ă© cool) e fecha.
  2. Verifique a instalação Abra o terminal integrado (Ctrl + ` no Windows/Linux, Cmd + ` no Mac) e digite:
    code --version
    VocĂȘ deve ver algo como:
    1.85.0
    a1b2c3d4e5f6...
    x64
    Se aparecer, tĂĄ tudo certo. Se nĂŁo aparecer, volta e configura o PATH.
  3. Instale a extensĂŁo de PortuguĂȘs (opcional, mas recomendado) Se vocĂȘ nĂŁo se sente confortĂĄvel com inglĂȘs, pode deixar o VSCode em portuguĂȘs:
    1. Abra a aba de extensĂ”es (đŸ§©)
    2. Busque por “Portuguese” ou “Portuguese (Brazil)”
    3. Clique em Instalar
    4. O VSCode vai pedir pra reiniciar aceite
    5. Pronto, tudo em portuguĂȘs
imagem 25

🎯 PRIMEIROS PASSOS COM HTML SEU PRIMEIRO ARQUIVO

Agora que o VSCode estĂĄ instalado, vamos fazer algo de verdade.

Passo 1: Crie uma pasta

No seu computador, crie uma pasta chamada meu-primeiro-html. Pode ser na Área de Trabalho, Documentos, onde vocĂȘ quiser.

Passo 2: Abra a pasta no VSCode

Passo 3: Confie nos autores

Se o VSCode perguntar “VocĂȘ confia nos autores dos arquivos desta pasta?”, clique em “Yes, I trust the authors”. Isso Ă© uma medida de segurança. Como a pasta Ă© sua, pode confiar.

Passo 4: Crie seu primeiro arquivo HTML

No Explorer (lado esquerdo), vocĂȘ vai ver o nome da sua pasta. Do lado do nome, tem uns Ă­cones:

Clique em New File e digite index.html.

Passo 5: O atalho mĂĄgico do HTML

Dentro do index.html, digite ! e aperte Tab.

O VSCode vai expandir automaticamente para:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
</body>
</html>

Isso Ă© o Emmet uma das coisas mais satisfatĂłrias da vida. VocĂȘ acabou de criar a estrutura bĂĄsica de uma pĂĄgina HTML com UM CARACTERE.

đŸ”„ BÔNUS: Mude lang="en" para lang="pt-BR" e Document para o tĂ­tulo que vocĂȘ quiser.

imagem 26

Passo 6: Salve e veja a mĂĄgica

  1. Pressione Ctrl + S (Windows/Linux) ou Cmd + S (Mac)
  2. Instale a extensĂŁo Live Server (se vocĂȘ ainda nĂŁo instalou)
  3. Com o index.html aberto, clique com o botĂŁo direito no editor
  4. Escolha “Open with Live Server”
  5. Seu navegador abre com a pĂĄgina
imagem 27

🎹 CONFIGURAÇÕES INICIAIS QUE VÃO SALVAR SUA VIDA

Agora que vocĂȘ jĂĄ tem um HTML rodando, vamos fazer algumas configuraçÔes que vĂŁo tornar sua vida INFINITAMENTE melhor.

Como acessar as configuraçÔes

ConfiguraçÔes recomendadas (via interface)

Configuração O que faz Valor recomendado
editor.fontSize Tamanho da fonte 16 (seus olhos agradecem)
editor.fontFamily Fonte do cĂłdigo 'Fira Code', 'Cascadia Code', monospace
editor.fontLigatures LigaçÔes entre caracteres (ex: != vira ≠) true (instale a Fira Code primeiro)
editor.wordWrap Quebra linhas longas on
editor.minimap.enabled Mapa miniatura do cĂłdigo true
editor.renderWhitespace Mostra espaços invisíveis all
editor.formatOnSave Formata automaticamente ao salvar true (precisa do Prettier)
files.autoSave Salva automaticamente afterDelay (salva apĂłs pausa)
files.autoSaveDelay Tempo de espera pro auto save 1000 (1 segundo)

ConfiguraçÔes via JSON (o jeito raiz)

Se vocĂȘ Ă© old-school e quer tudo num arquivo:

  1. Ctrl/Cmd + Shift + P
  2. Digite “Open User Settings (JSON)”
  3. Cole isso:
{
  "editor.fontSize": 16,
  "editor.fontFamily": "'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace",
  "editor.fontLigatures": true,
  "editor.wordWrap": "on",
  "editor.minimap.enabled": true,
  "editor.renderWhitespace": "all",
  "editor.formatOnSave": true,
  "editor.suggestSelection": "first",
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 1000,
  "workbench.colorTheme": "One Dark Pro",
  "workbench.iconTheme": "material-icon-theme"
}
imagem 28

đŸ§© EXTENSÕES OBRIGATÓRIAS PARA COMEÇAR

Na Parte 1 eu falei das extensÔes, mas agora vou ser mais específico sobre quais instalar AGORA.

ExtensĂŁo Para que serve Como instalar
Live Server Rodar HTML com atualização automática Busque por “Live Server”
Prettier Formatação automática de código Busque por “Prettier”
Auto Rename Tag Muda tag de abertura e fechamento juntas Busque por “Auto Rename Tag”
Color Highlight Mostra a cor no CSS Busque por “Color Highlight”
Material Icon Theme Ícones bonitos nos arquivos Busque por “Material Icon Theme”
Portuguese (Brazil) Interface em portuguĂȘs Busque por “Portuguese”

Como instalar todas de uma vez?

  1. Abra a aba de extensĂ”es (đŸ§©)
  2. Busque por cada uma e clique em “Install”
  3. Pronto. Demora 2 minutos.
imagem 29

đŸ–„ïž O COMANDO CODE SEU NOVO SUPER-PODER

Uma das coisas mais subestimadas do VSCode Ă© o comando code no terminal.

O que ele faz?

Comando O que acontece
code . Abre a pasta atual no VSCode
code index.html Abre esse arquivo no VSCode
code pasta/ Abre essa pasta no VSCode
code --version Mostra a versĂŁo instalada
code --list-extensions Lista todas as extensÔes instaladas

Como usar na prĂĄtica

  1. Abra o terminal (PowerShell no Windows, Terminal no Mac/Linux)
  2. Navegue até a pasta do seu projeto: cd Documents/meu-projeto
  3. Digite code .
  4. O VSCode abre instantaneamente com seu projeto

Isso Ă© especialmente Ăștil quando vocĂȘ estĂĄ no terminal e nĂŁo quer ficar navegando com o mouse.

imagem 30

❓ PROBLEMAS COMUNS NA INSTALAÇÃO E COMO RESOLVER

“O instalador não abre”
Windows: Clique com o botão direito > “Executar como administrador”
Mac: VĂĄ em PreferĂȘncias > Segurança e Privacidade > “Abrir mesmo assim”
Linux: Verifique se o pacote é compatível com sua distribuição
“O comando code não funciona”
Windows: VocĂȘ esqueceu de marcar “Add to PATH” reinstala e marca
Mac: Rode “Shell Command: Install 'code' command in PATH” na Command Palette
Linux: Instale o pacote code ou reinicie o terminal
“O VSCode estĂĄ em inglĂȘs e eu quero em portuguĂȘs”
Instale a extensĂŁo Portuguese (Brazil) e reinicie
“O Live Server não funciona”
Verifique se vocĂȘ instalou a extensĂŁo
Verifique se o arquivo Ă© .html
– Tente reiniciar o VSCode
“O VSCode está lento”
O VSCode Ă© leve (< 100 MB), mas se estiver lento:
Desative extensĂ”es que vocĂȘ nĂŁo usa
Feche projetos grandes que nĂŁo estĂĄ usando
Aumente a memória disponível (configuraçÔes > files.watcherExclude)

📝 CHECKLIST VOCÊ FEZ TUDO?

Se vocĂȘ marcou todos, PARABÉNS! VocĂȘ estĂĄ oficialmente pronto pra programar.

🚀 PARTE 3: HTML, CSS E JAVASCRIPT A TRÍADE SAGRADA NO VSCODE

Chegou a hora do show

Na Parte 1 vocĂȘ conheceu o VSCode. Na Parte 2 vocĂȘ instalou e configurou. Agora, na Parte 3, a mĂĄgica acontece.

VocĂȘ vai aprender a usar o VSCode para escrever HTML, CSS e JavaScript como um verdadeiro ninja. E nĂŁo, nĂŁo vai ser aquela coisa chata de “abrir o bloco de notas e salvar como .html”. Aqui a parada Ă© sĂ©ria, rĂĄpida e divertida.

Pega o cafĂ©, coloca uma mĂșsica maneira (recomendo synthwave ou lo-fi) e vai codar.

📄 HTML NO VSCODE O ESQUELETO DO SEU SITE

Suporte nativo (e ele Ă© bom)

O VSCode jĂĄ vem com suporte nativo para HTML. VocĂȘ nĂŁo precisa instalar NADA pra começar a escrever HTML. JĂĄ vem com:

Escrevendo HTML como um boss

Abra um arquivo .html e comece a digitar. O VSCode vai te dar sugestÔes o tempo todo.

IntelliSense em ação

Quando vocĂȘ digita <, aparece uma lista com todas as tags HTML. Conforme vocĂȘ digita, a lista filtra.

Quando vocĂȘ digita div. e aperta Tab, o VSCode completa com <div class=""></div> e deixa o cursor dentro das aspas pra vocĂȘ digitar o nome da classe.

imagem 31

Fechamento automĂĄtico de tags

Digite <div> e o VSCode jĂĄ coloca </div> automaticamente. Digite </ e ele jĂĄ sugere a tag de fechamento correta.

đŸ”„ DICA DE OURO: Se vocĂȘ mudar o nome de uma tag, o VSCode pode atualizar a tag de fechamento automaticamente se vocĂȘ habilitar:

"editor.linkedEditing": true

Com isso, se vocĂȘ mudar <div> pra <section>, o </div> vira </section> sozinho. É tipo mĂĄgica, mas Ă© configuração.

Validação de HTML

O VSCode valida seu HTML em tempo real. Se vocĂȘ esquecer de fechar uma tag, aparece um sublinado verde (warning) ou vermelho (erro).

✹ EMMET O SUPER-PODER QUE VOCÊ NÃO SABIA QUE PRECISAVA

O que Ă© Emmet?

Emmet é um sistema de abreviaçÔes que transforma textos curtos em estruturas HTML e CSS completas. Ele jå vem integrado no VSCode, sem precisar instalar nada.

Emmet Ă© suportado nativamente em arquivos .html, .css, .scss, .jsx e vĂĄrios outros.

Como funciona?

VocĂȘ digita uma abreviação e aperta Tab (ou Enter) o VSCode expande pra estrutura completa.

Atalhos bĂĄsicos de HTML

Abreviação Expande para
! + Tab Estrutura HTML5 completa
html:5 + Tab Mesma coisa que !
link:css + Tab <link rel="stylesheet" href="style.css">
script:src + Tab <script src=""></script>
ul>li*5 + Tab Lista nĂŁo ordenada com 5 itens
div.container + Tab <div class="container"></div>
header+main+footer + Tab TrĂȘs elementos irmĂŁos

Exemplos na prĂĄtica

1. Estrutura bĂĄsica: Digite ! e aperte Tab. O VSCode gera:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
</body>
</html>

2. Div com classe e filho: Digite div.container>h1{OlĂĄ Mundo} e aperte Tab. Gera:

<div class="container">
  <h1>OlĂĄ Mundo</h1>
</div>

3. Lista com itens: Digite ul>li.item*3 e aperte Tab. Gera:

<ul>
  <li class="item"></li>
  <li class="item"></li>
  <li class="item"></li>
</ul>

4. Estrutura complexa com agrupamento: Digite (header>h1)+(main>section*3)+(footer>p) e aperte Tab. Gera:

<header>
  <h1></h1>
</header>
<main>
  <section></section>
  <section></section>
  <section></section>
</main>
<footer>
  <p></p>
</footer>

5. Atributos e conteĂșdo: Digite a[href="https://google.com"]{Clique aqui} e aperte Tab. Gera:

<a href="https://google.com">Clique aqui</a>

Emmet no CSS

Emmet também funciona no CSS. Digite abreviaçÔes de propriedades e aperte Tab:

Abreviação Expande para
m10 + Tab margin: 10px;
p20 + Tab padding: 20px;
w100p + Tab width: 100%;
bgc#fff + Tab background-color: #fff;
d:f + Tab display: flex;
jc:c + Tab justify-content: center;

Configurando o Tab para Emmet

Por padrĂŁo, o Emmet Ă© acionado com Tab nos arquivos HTML e CSS. Se por algum motivo nĂŁo estiver funcionando, vocĂȘ pode ativar explicitamente:

"emmet.triggerExpansionOnTab": true

Emmet em outros arquivos (JSX, React, etc)

Se vocĂȘ usa React com JSX, pode configurar o Emmet para funcionar em arquivos .jsx e .tsx:

"emmet.includeLanguages": {
  "javascript": "html",
  "javascriptreact": "html",
  "typescriptreact": "html"
}

Com isso, Emmet funciona em JSX e inclusive converte class para className automaticamente.

imagem 33

🌐 LIVE SERVER SEU HTML RODANDO EM TEMPO REAL

O que Ă© o Live Server?

O Live Server Ă© uma extensĂŁo que cria um servidor de desenvolvimento local e atualiza o navegador automaticamente sempre que vocĂȘ salva um arquivo.

Ou seja: vocĂȘ muda o cĂłdigo, salva, e o navegador recarrega sozinho. Sem F5, sem clicar em refresh, sem perder o foco.

Instalando o Live Server

  1. Abra a aba de extensĂ”es (đŸ§©) ou pressione Ctrl + Shift + X
  2. Busque por “Live Server”
  3. Instale a extensĂŁo do Ritwick Dey (Ă© a mais popular)

Usando o Live Server

Com o arquivo HTML aberto:

  1. Clique com o botĂŁo direito no editor
  2. Escolha “Open with Live Server”

Ou use o atalho:

O navegador abre com sua pågina em um endereço tipo http://127.0.0.1:5500.

imagem 34

O que acontece quando vocĂȘ edita?

  1. VocĂȘ faz uma alteração no HTML, CSS ou JS
  2. Pressiona Ctrl + S (salva)
  3. O Live Server detecta a mudança
  4. O navegador recarrega automaticamente

Isso Ă© game-changer. VocĂȘ nĂŁo perde tempo alternando entre editor e navegador. O foco fica no cĂłdigo.

Dicas do Live Server

🎹 CSS NO VSCODE DEIXANDO AS COISAS BONITAS

Suporte nativo para CSS

Assim como o HTML, o CSS tem suporte nativo no VSCode:

IntelliSense no CSS

Quando vocĂȘ digita uma propriedade CSS, o VSCode sugere as opçÔes.

Digite background e veja as sugestÔes: background-color, background-image, background-size, etc.

Digite c e veja color aparecer. Aperte Tab e o VSCode completa.

Color Picker

Passe o mouse em cima de qualquer cor no CSS (hex, rgb, hsl, nome) e aparece um seletor de cores.

VocĂȘ pode:

imagem 35

Emmet para CSS (de novo)

JĂĄ falamos disso, mas vale repetir: Emmet no CSS Ă© vida.

Formatando CSS

Use o comando Format Document (Shift + Alt + F) para organizar seu CSS automaticamente.

⚡ JAVASCRIPT NO VSCODE A MÁGICA ACONTECE

Suporte nativo para JavaScript

O VSCode tem suporte excelente para JavaScript:

IntelliSense no JavaScript

Quando vocĂȘ digita document., o VSCode sugere todos os mĂ©todos e propriedades do DOM: getElementById, querySelector, addEventListener, etc.

Quando vocĂȘ digita console., ele sugere log, error, warn, table.

imagem 36

Rodando JavaScript

Opção 1: No HTML (via Live Server) Se seu JS estå dentro de <script> no HTML ou em um arquivo .js linkado, o Live Server executa automaticamente.

Opção 2: No terminal com Node.js Se vocĂȘ tem o Node.js instalado:

  1. Abra o terminal integrado (Ctrl + `)
  2. Rode: node script.js

Opção 3: Debug integrado Clique no ícone 🐛 da barra de atividades, configure e rode com breakpoints. É poderoso.

đŸ§č PRETTIER SEU CÓDIGO SEMPRE BONITO

O que Ă© o Prettier?

Prettier Ă© um formatador automĂĄtico de cĂłdigo. Ele organiza seu cĂłdigo HTML, CSS e JavaScript seguindo regras consistentes.

Chega de ficar ajustando espaços, quebras de linha e indentação. O Prettier faz isso por vocĂȘ.

Instalando o Prettier

  1. Abra a aba de extensĂ”es (đŸ§©)
  2. Busque por “Prettier - Code formatter”
  3. Instale

Configurando o Prettier

Passo 1: Definir como formatador padrĂŁo

  1. Abra as configuraçÔes (Ctrl + ,)
  2. Busque por “Default Formatter”
  3. Selecione “Prettier - Code formatter”

Passo 2: Ativar formatação automåtica ao salvar

  1. Nas configuraçÔes, busque por “Format On Save”
  2. Marque a opção

Pronto. Agora, toda vez que vocĂȘ salvar um arquivo (Ctrl + S), o Prettier vai formatar automaticamente.

Formatando manualmente

Se vocĂȘ quiser formatar sob demanda:

ConfiguraçÔes do Prettier

VocĂȘ pode personalizar como o Prettier formata:

{
  "prettier.tabWidth": 2,            // Tamanho da indentação
  "prettier.useTabs": false,         // Usa espaços em vez de tabs
  "prettier.semi": true,             // Ponto e vĂ­rgula no final
  "prettier.singleQuote": true,      // Aspas simples em vez de duplas
  "prettier.printWidth": 80          // Limite de caracteres por linha
}
imagem 37

đŸ§© EXTENSÕES ADICIONAIS PARA WEB

Além do Live Server e Prettier, instale estas:

ExtensĂŁo Para que serve
Auto Rename Tag Muda tag de abertura e fechamento juntas
HTML CSS Support Autocomplete para classes CSS no HTML
JavaScript (ES6) code snippets Snippets para ES6
Path Intellisense Autocomplete para caminhos de arquivos
Color Highlight Mostra a cor no cĂłdigo (ex: #ff0000 fica vermelho)

🎯 PROJETO PRÁTICO CRIE SUA PRIMEIRA PÁGINA

Agora vamos juntar tudo que vocĂȘ aprendeu.

Passo 1: Crie a estrutura

Crie uma pasta chamada meu-site e abra no VSCode.

Crie trĂȘs arquivos:

Passo 2: HTML com Emmet

No index.html, digite ! e aperte Tab. O VSCode gera a estrutura.

Modifique o <title> para “Meu Primeiro Site”.

Dentro do <body>, digite:

header>h1{TĂ­tulo do Site}+nav>ul>li*3{Item $}
main>section*2>h2{Seção $}+p{Lorem ipsum dolor sit amet.}
footer>p{© 2026 Meu Site}

Aperte Tab. O Emmet gera a estrutura completa.

Passo 3: CSS com estilo

No style.css, escreva:

body {
  font-family: 'Segoe UI', sans-serif;
  margin: 0;
  padding: 0;
  background: #f5f5f5;
  color: #333;
}
header {
  background: #2c3e50;
  color: white;
  padding: 20px;
  text-align: center;
}
nav ul {
  list-style: none;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 20px;
}
nav a {
  color: white;
  text-decoration: none;
}
main {
  max-width: 800px;
  margin: 20px auto;
  padding: 20px;
}
section {
  background: white;
  padding: 20px;
  margin-bottom: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
footer {
  background: #2c3e50;
  color: white;
  text-align: center;
  padding: 10px;
  position: fixed;
  bottom: 0;
  width: 100%;
}

💡 DICA: Use Emmet para acelerar. Digite bgc#f5f5f5 + Tab para background-color: #f5f5f5;.

Passo 4: JavaScript com interação

No script.js, escreva:

document.addEventListener('DOMContentLoaded', function() {
  console.log('🚀 Página carregada!');
  // Adiciona um evento nos itens do menu
  const items = document.querySelectorAll('nav ul li');
  items.forEach((item, index) => {
    item.addEventListener('click', function() {
      alert(`VocĂȘ clicou no item ${index + 1}`);
    });
  });
});

Passo 5: Rode com Live Server

  1. Clique com o botĂŁo direito no index.html
  2. Escolha “Open with Live Server”
  3. Veja sua pĂĄgina no navegador
imagem 38

Passo 6: Teste o fluxo

  1. Mude o texto do <h1> no HTML
  2. Salve (Ctrl + S)
  3. Veja o navegador atualizar automaticamente
  4. Mude uma cor no CSS
  5. Salve → navegador atualiza
  6. Mude o JavaScript (ex: mude o texto do alert)
  7. Salve → recarregue a página e veja a mudança

🧠 DICAS DE PRODUTIVIDADE PARA WEB

  1. Multi-cursor Segure Alt (Windows/Linux) ou Option (Mac) e clique em vĂĄrios lugares. Digite e veja o texto aparecer em todos os lugares ao mesmo tempo.
  2. Selecionar mĂșltiplas ocorrĂȘncias Selecione uma palavra e pressione Ctrl + D (Windows/Linux) ou Cmd + D (Mac) para selecionar a prĂłxima ocorrĂȘncia.
  3. Comentar rĂĄpido Ctrl + / (Windows/Linux) ou Cmd + / (Mac) comenta/descomenta a linha.
  4. Emmet Wrap Selecione um texto, abra a Command Palette (Ctrl + Shift + P), digite “Emmet: Wrap with Abbreviation”, digite uma abreviação (ex: div.container) e veja o texto ser envolvido.
  5. Navegação rápida Ctrl + P (ou Cmd + P) → abrir arquivo rapidamente; Ctrl + G → ir para uma linha específica; Ctrl + Shift + O → ir para um símbolo (função, classe, etc).
  6. Abrir no navegador sem Live Server Clique com o botĂŁo direito no arquivo → “Reveal in File Explorer”, dĂȘ dois cliques no arquivo HTML ele abre no navegador (mas sem atualização automĂĄtica).

📝 CHECKLIST VOCÊ DOMINOU A TRÍADE?

Se vocĂȘ marcou todos, PARABÉNS! VocĂȘ jĂĄ estĂĄ mais produtivo que 90% das pessoas que abrem o VSCode pela primeira vez.

🐍 PARTE 4: PYTHON NO VSCODE A LINGUAGEM QUE FAZ TUDO (INCLUSIVE CAFÉ)

Bem-vindo ao lado negro da força (que na verdade é azul)

Na Parte 3 vocĂȘ dominou a trĂ­ade sagrada da web (HTML, CSS, JS). Agora Ă© hora de adicionar Python ao seu arsenal. E nĂŁo Ă© qualquer Python Ă© Python no VSCode, que Ă© tipo colocar um motor de foguete num carro esportivo.

Python Ă© a linguagem que todo mundo ama. É usada pra:

E o VSCode é o melhor editor pra Python. A extensão oficial da Microsoft transforma o VSCode num IDE completo, com IntelliSense, debug, testes, formatação e muito mais.

Pega o café (ou chå, ou ågua, não vou julgar) e dominar o Python no VSCode.

📩 INSTALANDO O PYTHON O PRIMEIRO PASSO

VocĂȘ jĂĄ tem Python? Vamos descobrir.

Antes de sair instalando tudo, vamos ver se vocĂȘ jĂĄ tem Python no seu computador.

Abra o terminal (integrado do VSCode ou o do sistema) e digite:

python --version

ou

python3 --version

Se aparecer algo como Python 3.12.0 ou superior, vocĂȘ jĂĄ tem Python. Pule para a prĂłxima seção.

Se aparecer 'python' nĂŁo Ă© reconhecido ou similar, vocĂȘ precisa instalar.

Instalando Python (se vocĂȘ nĂŁo tiver)

No Windows

  1. VĂĄ para https://python.org/downloads/
  2. Baixe o instalador mais recente
  3. ⚠ ATENÇÃO: Na primeira tela, MARQUE “Add Python to PATH” (isso Ă© crucial)
  4. Clique em “Install Now”
  5. Espere terminar
  6. Abra o terminal e teste: python --version

No Mac

  1. Abra o terminal
  2. Instale via Homebrew (se tiver): brew install python
  3. Ou baixe do site oficial python.org
  4. Teste: python3 --version

No Linux

sudo apt update
sudo apt install python3 python3-pip

Teste: python3 --version

imagem 39

đŸ§© EXTENSÕES OBRIGATÓRIAS PARA PYTHON

O VSCode “puro” nĂŁo entende Python. VocĂȘ precisa instalar as extensĂ”es certas. E nĂŁo Ă© uma, sĂŁo vĂĄrias que trabalham juntas.

A TrĂ­ade do Python no VSCode

ExtensĂŁo O que faz Por que Ă© essencial
Python (ms-python.python) A extensĂŁo principal. DĂĄ suporte a IntelliSense, debug, testes, formatação, linting e muito mais. OBRIGATÓRIA. Sem ela, vocĂȘ tĂĄ escrevendo texto colorido, nĂŁo cĂłdigo.
Pylance O servidor de linguagem que faz o IntelliSense funcionar. OBRIGATÓRIA. É o cĂ©rebro por trĂĄs do autocomplete.
Python Debugger O debugger oficial do Python. OBRIGATÓRIA. VocĂȘ vai errar. E vai precisar debugar.

Como instalar

  1. Abra a aba de extensĂ”es (đŸ§©) ou pressione Ctrl + Shift + X
  2. Busque por “Python” (da Microsoft)
  3. Clique em Instalar
  4. As extensĂ”es Pylance e Python Debugger vĂȘm juntas com a Python extension. VocĂȘ nĂŁo precisa instalar separadamente.

ExtensÔes extras que vão mudar sua vida

ExtensĂŁo O que faz
Ruff Um linter e formatador extremamente rápido para Python, escrito em Rust. É tipo o Prettier do Python, só que mais rápido.
Python Indent Corrige indentação automaticamente (coisa que todo iniciante em Python sofre)
Jupyter Suporte a notebooks Jupyter dentro do VSCode
imagem 40

🎯 SEU PRIMEIRO PROJETO PYTHON

Passo 1: Crie uma pasta

Crie uma pasta chamada meu-python em algum lugar do seu computador.

Passo 2: Abra no VSCode

Passo 3: Crie seu primeiro arquivo Python

No Explorer, clique em New File e crie ola.py.

Passo 4: Escreva seu primeiro cĂłdigo

No ola.py, digite:

print("🐍 Olá, mundo do Python!")
nome = input("Qual Ă© o seu nome? ")
print(f"Bem-vindo ao VSCode, {nome}!")

Passo 5: Execute

imagem 41

🌍 AMBIENTES VIRTUAIS ISOLANDO SEUS PROJETOS

O que Ă© um ambiente virtual?

Um ambiente virtual é uma cópia isolada do Python dentro do seu projeto. Cada projeto tem seu próprio Python, suas próprias bibliotecas, suas próprias versÔes.

Por que isso Ă© importante?

É tipo cada projeto ter seu próprio quarto, com suas próprias coisas, sem bagunçar o quarto dos outros.

Criando um ambiente virtual com venv

O Python vem com o mĂłdulo venv pra criar ambientes virtuais.

No terminal integrado do VSCode (dentro da pasta do seu projeto), rode:

python -m venv .venv

Isso cria uma pasta .venv dentro do seu projeto com uma cĂłpia isolada do Python.

Ativando o ambiente virtual

Quando o ambiente estĂĄ ativo, vocĂȘ vĂȘ (.venv) no inĂ­cio do prompt do terminal.

Selecionando o interpretador no VSCode

O VSCode detecta automaticamente ambientes virtuais com o nome .venv na raiz do projeto.

Mas se nĂŁo detectar, vocĂȘ pode selecionar manualmente:

  1. Abra a Command Palette (Ctrl + Shift + P ou Cmd + Shift + P)
  2. Digite “Python: Select Interpreter”
  3. Escolha o interpretador que estĂĄ dentro da pasta .venv

O VSCode mostra na barra de status (embaixo) qual interpretador estĂĄ sendo usado.

imagem 42

Instalando pacotes no ambiente virtual

Com o ambiente ativado, use o pip para instalar pacotes:

pip install requests
pip install flask
pip install numpy pandas

Os pacotes sĂŁo instalados apenas dentro do .venv, nĂŁo afetam o resto do sistema.

O arquivo requirements.txt

Para compartilhar as dependĂȘncias do seu projeto:

pip freeze > requirements.txt

Isso cria um arquivo com todas as bibliotecas instaladas e suas versÔes.

Outra pessoa pode instalar tudo com:

pip install -r requirements.txt
imagem 43

🧠 INTELLISENSE O AUTOPILOTO DO PYTHON

O IntelliSense Ă© uma das melhores coisas do VSCode com Python. Ele:

Como funciona?

Quando vocĂȘ digita import , o VSCode sugere todos os mĂłdulos disponĂ­veis.

Quando vocĂȘ digita requests., ele sugere get, post, put, delete.

Quando vocĂȘ digita o nome de uma função, ele mostra os parĂąmetros esperados.

Atalhos do IntelliSense

Ação Atalho
Abrir sugestÔes manualmente Ctrl + Space
Aceitar sugestĂŁo Tab ou Enter
Ver documentação Ctrl + K, Ctrl + I
imagem 44

🐛 DEBUGANDO PYTHON CAÇANDO BUGS COMO UM PROFISSIONAL

O que Ă© debugging?

Debugging Ă© o processo de encontrar e corrigir erros no seu cĂłdigo. O VSCode tem um debugger integrado que permite:

Como debugar no VSCode

Passo 1: Abra a view de Debug Clique no ícone 🐛 na barra de atividades (ou pressione Ctrl + Shift + D / Cmd + Shift + D).

Passo 2: Configure o debugger

  1. Clique em “Run and Debug” (ou pressione F5)
  2. Selecione “Python File” (ou “Python Debugger”)
  3. O VSCode cria um arquivo .vscode/launch.json com a configuração

Passo 3: Coloque breakpoints Breakpoints sĂŁo pontos onde o cĂłdigo para de executar. Para colocar um: clique na margem esquerda do editor (ao lado do nĂșmero da linha) aparece uma bolinha vermelha 🔮.

Passo 4: Inicie o debug Pressione F5 ou clique no botĂŁo verde de play na view de Debug.

Passo 5: Controle a execução Quando o cĂłdigo para num breakpoint, vocĂȘ pode:

Comando Atalho O que faz
Continuar F5 Continua a execução até o próximo breakpoint
Passar por cima F10 Executa a linha atual e vai pra prĂłxima
Entrar F11 Entra dentro de uma função
Sair Shift + F11 Sai da função atual

Passo 6: Inspecione variĂĄveis No painel de debug, vocĂȘ pode ver:

imagem 45

Dicas de debugging

đŸ§č LINTING E FORMATAÇÃO CÓDIGO BONITO E SEM ERROS

Linting: encontrando erros antes de rodar

Linting Ă© o processo de analisar o cĂłdigo em busca de erros antes de executĂĄ-lo.

O VSCode com Python suporta vĂĄrios linters:

Linter O que faz
Pylint O mais tradicional. Analisa estilo, erros e problemas.
Flake8 Combina PyFlakes, pycodestyle e McCabe. Muito popular.
Ruff O mais novo e mais rĂĄpido escrito em Rust.

Instalando e configurando o Ruff (recomendado)

  1. Instale a extensĂŁo Ruff no VSCode
  2. Ou instale via pip: pip install ruff
  3. O Ruff vai apontar erros e problemas em tempo real

Como ativar o linting

  1. Abra a Command Palette (Ctrl + Shift + P)
  2. Digite “Python: Select Linter”
  3. Escolha o linter que vocĂȘ quer usar

Formatação: código sempre bonito

Assim como o Prettier para HTML/CSS/JS, o Python tem seus prĂłprios formatadores:

Formatador O que faz
Black O formatador mais popular “opinionado” e sem configuraçÔes
autopep8 Formata seguindo as regras do PEP 8
Ruff Também faz formatação, além de linting

Configurando o Ruff como formatador

  1. Instale a extensĂŁo Ruff
  2. Nas configuraçÔes, defina:
    {
      "[python]": {
        "editor.defaultFormatter": "charliermarsh.ruff",
        "editor.formatOnSave": true
      }
    }

Formatando manualmente

imagem 46

📓 JUPYTER NOTEBOOKS NO VSCODE

O que Ă© Jupyter?

Jupyter Notebook Ă© uma ferramenta que permite combinar cĂłdigo Python, texto e visualizaçÔes num Ășnico documento interativo.

É muito usado em:

Usando Jupyter no VSCode

O VSCode tem suporte nativo para Jupyter Notebooks.

Passo 1: Instale o Jupyter No terminal, com seu ambiente virtual ativado:

pip install jupyter

Passo 2: Crie um notebook No Explorer, clique em New File, nomeie o arquivo com extensĂŁo .ipynb (ex: analise.ipynb). O VSCode abre o notebook.

Passo 3: Escreva cĂłdigo Cada “cĂ©lula” pode conter cĂłdigo Python. Clique no botĂŁo ▶ para executar a cĂ©lula. O resultado aparece abaixo da cĂ©lula.

Passo 4: Misture com Markdown CĂ©lulas podem ser do tipo Markdown. VocĂȘ pode escrever texto, tĂ­tulos, listas, equaçÔes.

imagem 47

🚀 ATALHOS ESSENCIAIS PARA PYTHON

Ação Windows/Linux Mac
Executar arquivo Python Ctrl + F5 Cmd + F5
Iniciar debug F5 F5
Passar por cima (debug) F10 F10
Entrar (debug) F11 F11
Selecionar interpretador Ctrl + Shift + P → “Python: Select Interpreter” Cmd + Shift + P → “Python: Select Interpreter”
Criar ambiente virtual python -m venv .venv python3 -m venv .venv
Instalar pacote pip install pacote pip install pacote
Format Document Shift + Alt + F Shift + Option + F

🎯 PROJETO PRÁTICO UMA CALCULADORA EM PYTHON

Vamos criar um projeto Python completo no VSCode.

Passo 1: Crie a estrutura

meu-python/
├── .venv/          (ambiente virtual)
├── calculadora.py
└── requirements.txt

Passo 2: Crie o ambiente virtual

python -m venv .venv

Ative o ambiente e selecione o interpretador no VSCode.

Passo 3: Escreva o cĂłdigo

No calculadora.py:

"""
Calculadora simples em Python
Demonstra funçÔes, input do usuårio e tratamento de erros
"""

def soma(a, b):
    return a + b

def subtracao(a, b):
    return a - b

def multiplicacao(a, b):
    return a * b

def divisao(a, b):
    if b == 0:
        return "Erro: divisĂŁo por zero!"
    return a / b

def calculadora():
    print("🧼 CALCULADORA PYTHON")
    print("=" * 30)
    while True:
        print("\nOperaçÔes:")
        print("1 - Soma")
        print("2 - Subtração")
        print("3 - Multiplicação")
        print("4 - DivisĂŁo")
        print("5 - Sair")
        opcao = input("\nEscolha uma opção: ")
        if opcao == "5":
            print("👋 AtĂ© logo!")
            break
        if opcao not in ["1", "2", "3", "4"]:
            print("❌ Opção inválida!")
            continue
        try:
            num1 = float(input("Digite o primeiro nĂșmero: "))
            num2 = float(input("Digite o segundo nĂșmero: "))
        except ValueError:
            print("❌ Entrada invĂĄlida! Digite nĂșmeros.")
            continue
        if opcao == "1":
            resultado = soma(num1, num2)
            print(f"✅ {num1} + {num2} = {resultado}")
        elif opcao == "2":
            resultado = subtracao(num1, num2)
            print(f"✅ {num1} - {num2} = {resultado}")
        elif opcao == "3":
            resultado = multiplicacao(num1, num2)
            print(f"✅ {num1} × {num2} = {resultado}")
        elif opcao == "4":
            resultado = divisao(num1, num2)
            print(f"✅ {num1} Ă· {num2} = {resultado}")

if __name__ == "__main__":
    calculadora()

Passo 4: Rode e debugue

  1. Execute com Ctrl + F5 ou clique no triĂąngulo
  2. Teste todas as operaçÔes
  3. Coloque um breakpoint na função soma e debugue (F5)

Passo 5: Formate com Ruff

  1. Instale o Ruff: pip install ruff
  2. Instale a extensĂŁo Ruff no VSCode
  3. Pressione Shift + Alt + F para formatar
imagem 48

📝 CHECKLIST VOCÊ DOMINOU O PYTHON NO VSCODE?

Se vocĂȘ marcou todos, PARABÉNS! VocĂȘ Ă© oficialmente um(a) pythonista.

🌟 PARTE 5: PROJETO INTEGRADO HTML + CSS + JS + PYTHON = FELICIDADE

O momento da verdade

VocĂȘ jĂĄ:

Agora Ă© hora de JUNTAR TUDO numa aplicação de verdade. NĂŁo vai ser um “Hello World” vai ser um sistema completo com frontend e backend, rodando no VSCode, com direito a debug, formatação, e tudo que vocĂȘ aprendeu.

O projeto do dia: Lista de Tarefas (To-Do List) com:

Pega o café (ou energético, ou chå, ou suco, não julgo) e vai codar.

🎯 ESCOLHA DO PROJETO POR QUE UMA TO-DO LIST?

Porque Ă© um projeto clĂĄssico que:

No final, vocĂȘ vai ter uma aplicação funcional que roda no seu computador, com cĂłdigo bonito e bem estruturado.

📁 ESTRUTURA DO PROJETO

Crie uma pasta chamada todo-app e dentro dela a seguinte estrutura:

todo-app/
├── .venv/                    Ambiente virtual (criado depois)
├── backend/
│   ├── app.py                Servidor Flask
│   └── requirements.txt      DependĂȘncias do backend
├── frontend/
│   ├── index.html            Página principal
│   ├── style.css             Estilos
│   └── script.js             Lógica frontend
└── .vscode/                  ConfiguraçÔes do VSCode (opcional)
    └── settings.json         ConfiguraçÔes especĂ­ficas do projeto

Abra a pasta todo-app no VSCode.

imagem 49

🐍 BACKEND CRIANDO A API COM FLASK

O que Ă© Flask?

Flask Ă© um micro-framework para Python. Ele permite criar servidores web e APIs REST com poucas linhas de cĂłdigo. É leve, flexĂ­vel e perfeito para projetos como este.

Passo 1: Crie e ative o ambiente virtual

No terminal integrado (dentro da pasta todo-app):

python -m venv .venv

Ative:

Passo 2: Instale o Flask

pip install flask

Passo 3: Crie o arquivo requirements.txt

No terminal, rode:

pip freeze > backend/requirements.txt

Isso salva as dependĂȘncias. Sempre faça isso para compartilhar o projeto.

Passo 4: Escreva o backend

No arquivo backend/app.py, cole o cĂłdigo abaixo:

from flask import Flask, jsonify, request, render_template

app = Flask(__name__)

# Dados em memĂłria (simulando um banco de dados)
tarefas = []
contador_id = 1

@app.route('/')
def home():
    return "🚀 Servidor Flask está rodando! Acesse /tarefas para ver a lista."

@app.route('/tarefas', methods=['GET'])
def listar_tarefas():
    """Retorna todas as tarefas em formato JSON"""
    return jsonify(tarefas)

@app.route('/tarefas', methods=['POST'])
def criar_tarefa():
    """Cria uma nova tarefa"""
    global contador_id
    dados = request.get_json()
    if not dados or 'titulo' not in dados:
        return jsonify({'erro': 'TĂ­tulo Ă© obrigatĂłrio'}), 400
    nova_tarefa = {
        'id': contador_id,
        'titulo': dados['titulo'],
        'concluida': False
    }
    tarefas.append(nova_tarefa)
    contador_id += 1
    return jsonify(nova_tarefa), 201

@app.route('/tarefas/', methods=['PUT'])
def atualizar_tarefa(id):
    """Atualiza uma tarefa (marca como concluĂ­da ou nĂŁo)"""
    dados = request.get_json()
    for tarefa in tarefas:
        if tarefa['id'] == id:
            if 'titulo' in dados:
                tarefa['titulo'] = dados['titulo']
            if 'concluida' in dados:
                tarefa['concluida'] = dados['concluida']
            return jsonify(tarefa)
    return jsonify({'erro': 'Tarefa nĂŁo encontrada'}), 404

@app.route('/tarefas/', methods=['DELETE'])
def deletar_tarefa(id):
    """Remove uma tarefa pelo ID"""
    global tarefas
    tarefas = [t for t in tarefas if t['id'] != id]
    return jsonify({'mensagem': 'Tarefa removida com sucesso'}), 200

if __name__ == '__main__':
    app.run(debug=True, port=5000)

Explicação do código:

imagem 50

Passo 5: Rode o backend

  1. Com o app.py aberto, clique no botĂŁo de run ▶ no canto superior direito (ou pressione Ctrl + F5)
  2. O Flask vai iniciar o servidor em http://127.0.0.1:5000
  3. Abra seu navegador e acesse http://127.0.0.1:5000/tarefas vocĂȘ verĂĄ uma lista vazia []

Se quiser testar a API, vocĂȘ pode usar o Postman, Insomnia ou o prĂłprio terminal com curl. Mas nĂŁo precisa o frontend vai consumir a API.

imagem 51

🎹 FRONTEND CRIANDO A PÁGINA

Agora vamos construir a interface do usuĂĄrio que vai consumir a API.

Passo 1: HTML a estrutura

No arquivo frontend/index.html:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>📋 Minha Lista de Tarefas</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="container">
    <h1>📋 Minhas Tarefas</h1>
    <div class="formulario">
      <input type="text" id="input-tarefa" placeholder="Digite uma nova tarefa..." />
      <button id="btn-adicionar">Adicionar</button>
    </div>
    <ul id="lista-tarefas">
      <!-- As tarefas serĂŁo inseridas aqui via JavaScript -->
    </ul>
    <div id="status" class="status"></div>
  </div>
  <script src="script.js"></script>
</body>
</html>
imagem 52

Passo 2: CSS a beleza

No arquivo frontend/style.css:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
}
.container {
  background: white;
  border-radius: 15px;
  padding: 30px;
  max-width: 600px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
  transition: transform 0.3s;
}
.container:hover {
  transform: scale(1.01);
}
h1 {
  text-align: center;
  color: #333;
  margin-bottom: 20px;
  font-weight: 300;
}
.formulario {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
}
#input-tarefa {
  flex: 1;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 25px;
  font-size: 16px;
  outline: none;
  transition: border-color 0.3s;
}
#input-tarefa:focus {
  border-color: #667eea;
}
#btn-adicionar {
  background: #667eea;
  color: white;
  border: none;
  padding: 12px 25px;
  border-radius: 25px;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.3s, transform 0.2s;
}
#btn-adicionar:hover {
  background: #5a6fd6;
  transform: scale(1.02);
}
#lista-tarefas {
  list-style: none;
  padding: 0;
}
.tarefa-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 15px;
  margin-bottom: 8px;
  background: #f8f9fa;
  border-radius: 10px;
  border-left: 5px solid #667eea;
  transition: background 0.3s;
}
.tarefa-item:hover {
  background: #e9ecef;
}
.tarefa-item .titulo {
  flex: 1;
  cursor: pointer;
  font-size: 16px;
}
.tarefa-item .titulo.concluida {
  text-decoration: line-through;
  color: #6c757d;
}
.tarefa-item .acoes button {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  margin-left: 8px;
  transition: transform 0.2s;
}
.tarefa-item .acoes button:hover {
  transform: scale(1.2);
}
.tarefa-item .acoes .btn-deletar {
  color: #dc3545;
}
.tarefa-item .acoes .btn-toggle {
  color: #28a745;
}
.status {
  text-align: center;
  margin-top: 15px;
  color: #6c757d;
  font-size: 14px;
}
imagem 53

Passo 3: JavaScript a interação com a API

No arquivo frontend/script.js:

// URL da API (backend Flask)
const API_URL = 'http://127.0.0.1:5000/tarefas';

// Elementos DOM
const inputTarefa = document.getElementById('input-tarefa');
const btnAdicionar = document.getElementById('btn-adicionar');
const listaTarefas = document.getElementById('lista-tarefas');
const statusDiv = document.getElementById('status');

// Carrega as tarefas ao iniciar a pĂĄgina
document.addEventListener('DOMContentLoaded', carregarTarefas);

// Adiciona evento de clique no botĂŁo
btnAdicionar.addEventListener('click', adicionarTarefa);

// Adiciona evento de "Enter" no input
inputTarefa.addEventListener('keypress', (e) => {
  if (e.key === 'Enter') {
    adicionarTarefa();
  }
});

/**
 * Busca todas as tarefas da API e renderiza na tela
 */
async function carregarTarefas() {
  try {
    const response = await fetch(API_URL);
    if (!response.ok) throw new Error('Erro ao carregar tarefas');
    const tarefas = await response.json();
    renderizarTarefas(tarefas);
    atualizarStatus(tarefas);
  } catch (error) {
    console.error('Erro:', error);
    statusDiv.textContent = '❌ Erro ao carregar tarefas. Verifique se o backend está rodando.';
  }
}

/**
 * Envia uma nova tarefa para a API
 */
async function adicionarTarefa() {
  const titulo = inputTarefa.value.trim();
  if (!titulo) {
    alert('Digite uma tarefa!');
    return;
  }
  try {
    const response = await fetch(API_URL, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ titulo })
    });
    if (!response.ok) throw new Error('Erro ao adicionar tarefa');
    const novaTarefa = await response.json();
    inputTarefa.value = '';
    carregarTarefas(); // recarrega a lista
  } catch (error) {
    console.error('Erro:', error);
    alert('❌ Não foi possível adicionar a tarefa.');
  }
}

/**
 * Marca/desmarca uma tarefa como concluĂ­da
 */
async function alternarConcluida(id, concluidaAtual) {
  try {
    const response = await fetch(`${API_URL}/${id}`, {
      method: 'PUT',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ concluida: !concluidaAtual })
    });
    if (!response.ok) throw new Error('Erro ao atualizar tarefa');
    carregarTarefas(); // recarrega
  } catch (error) {
    console.error('Erro:', error);
    alert('❌ Não foi possível atualizar a tarefa.');
  }
}

/**
 * Remove uma tarefa
 */
async function deletarTarefa(id) {
  if (!confirm('Tem certeza que deseja deletar esta tarefa?')) return;
  try {
    const response = await fetch(`${API_URL}/${id}`, {
      method: 'DELETE'
    });
    if (!response.ok) throw new Error('Erro ao deletar tarefa');
    carregarTarefas(); // recarrega
  } catch (error) {
    console.error('Erro:', error);
    alert('❌ Não foi possível deletar a tarefa.');
  }
}

/**
 * Renderiza a lista de tarefas no DOM
 */
function renderizarTarefas(tarefas) {
  if (tarefas.length === 0) {
    listaTarefas.innerHTML = '
  • 🎉 Nenhuma tarefa! Adicione uma acima.
  • '; return; } listaTarefas.innerHTML = tarefas.map(tarefa => `
  • ${tarefa.titulo}
  • `).join(''); } /** * Atualiza o contador de tarefas */ function atualizarStatus(tarefas) { const total = tarefas.length; const concluidas = tarefas.filter(t => t.concluida).length; statusDiv.textContent = `📊 Total: ${total} | ConcluĂ­das: ${concluidas} | Pendentes: ${total - concluidas}`; }
    imagem 54

    🚀 RODANDO TUDO JUNTO

    Passo 1: Inicie o backend

    1. No terminal integrado, ative o ambiente virtual (se nĂŁo estiver ativo)
    2. Rode: python backend/app.py
    3. O servidor Flask vai iniciar em http://127.0.0.1:5000

    Deixe o terminal rodando. Ele vai ficar ouvindo requisiçÔes.

    imagem 55

    Passo 2: Abra o frontend

    VocĂȘ tem duas opçÔes:

    ⚠ ATENÇÃO: O frontend e backend rodam em portas diferentes. Isso Ă© normal. O frontend faz requisiçÔes para a porta 5000 (backend) via fetch.

    Passo 3: Use a aplicação

    imagem 56

    🐛 DEBUGGING INTEGRADO FRONTEND E BACKEND JUNTOS

    Debugando o backend (Flask)

    1. No app.py, coloque breakpoints clicando na margem esquerda
    2. Pressione F5 ou clique no ícone 🐛 e selecione “Python Flask”
    3. O VSCode inicia o Flask em modo debug
    4. Quando o frontend fizer uma requisição, o código para nos breakpoints
    5. VocĂȘ pode inspecionar variĂĄveis, executar passo a passo, etc

    Debugando o frontend (JavaScript)

    1. Abra o DevTools do navegador (F12 no Chrome/Edge, Option+Command+I no Mac)
    2. Vá para a aba “Sources” (ou “Depurador”)
    3. Encontre o script.js e coloque breakpoints
    4. Recarregue a pågina ou interaja com a aplicação
    5. O navegador para nos breakpoints e vocĂȘ pode inspecionar variĂĄveis
    imagem 57

    đŸ§č ORGANIZANDO O PROJETO CONFIGURAÇÕES ESPECÍFICAS

    Crie uma pasta .vscode na raiz do projeto e dentro dela um arquivo settings.json com:

    {
      "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
      "python.terminal.activateEnvironment": true,
      "editor.formatOnSave": true,
      "[python]": {
        "editor.defaultFormatter": "charliermarsh.ruff",
        "editor.codeActionsOnSave": {
          "source.fixAll": true,
          "source.organizeImports": true
        }
      },
      "ruff.enable": true,
      "ruff.format.args": ["--config", "${workspaceFolder}/pyproject.toml"],
      "files.exclude": {
        "**/__pycache__": true,
        "**/*.pyc": true
      }
    }

    Isso garante que o VSCode use o ambiente virtual e o Ruff para formatação e linting automaticamente ao salvar.

    📈 EXPANDINDO O PROJETO (IDEIAS)

    Se vocĂȘ quiser ir alĂ©m, aqui estĂŁo algumas ideias:

    Funcionalidade O que fazer
    Banco de dados Substitua a lista em memĂłria por SQLite, PostgreSQL ou MongoDB
    Autenticação Adicione login com Flask-Login e JWT
    Prazos Adicione campo de data e ordenação por prazo
    Categorias Adicione tags ou categorias para organizar
    Arrastar e soltar Use Drag and Drop API para reordenar tarefas
    NotificaçÔes Adicione notificaçÔes desktop com a API Notification do navegador
    Docker Containerize a aplicação com Docker e docker-compose

    O céu é o limite!

    📝 CHECKLIST PROJETO INTEGRADO COMPLETO

    🎬 CONCLUSÃO DA SAGA

    ParabĂ©ns! VocĂȘ chegou ao final dessa jornada Ă©pica. VocĂȘ:

    1. Instalou e configurou o VSCode como um(a) profissional
    2. Dominou HTML, CSS e JavaScript com as ferramentas do VSCode (Emmet, Live Server, Prettier)
    3. Dominou Python com ambientes virtuais, IntelliSense, debug e Ruff
    4. Integrou tudo num projeto completo de frontend + backend

    VocĂȘ nĂŁo Ă© mais um iniciante. VocĂȘ Ă© alguĂ©m que sabe construir uma aplicação web completa, com ferramentas modernas, cĂłdigo limpo e fluxo de trabalho eficiente.

    O que fazer agora?

    Lembre-se sempre

    📚 ÍNDICE GERAL DO MANUAL

    Parte TĂ­tulo
    1 O que Ă© essa ferramenta e por que vocĂȘ deve amar ela
    2 Instalação baixando o poder
    3 HTML, CSS e JavaScript no VSCode
    4 Python no VSCode
    5 Projeto Integrado HTML + CSS + JS + Python = FELICIDADE

    “O VSCode Ă© o canivete suíço dos devs. E agora vocĂȘ sabe usar todas as lĂąminas.” Eu, no final da jornada.

    Agora vocĂȘ tem em mĂŁos um guia completo, irreverente, didĂĄtico e extremamente detalhado sobre o VSCode, cobrindo desde a instalação atĂ© a criação de um projeto integrado. Use, abuse, compartilhe e, acima de tudo, codifique com paixĂŁo.