Programação II – ECO Ferramentas

IDEs, Editores e Ambiente de Desenvolvimento

Configuração do ambiente para desenvolvimento web com JavaScript. Comparativo de ferramentas e atividade de pesquisa.

Introdução

Antes de escrever a primeira linha do projeto semestral, precisamos de um ambiente de desenvolvimento configurado e funcionando. A escolha das ferramentas certas afeta diretamente a produtividade, a qualidade do código e a facilidade de identificar erros ao longo do semestre.

Vamos conhecer as principais categorias de ferramentas, entender o que cada uma oferece e — através de uma pesquisa e avaliação — decidir qual combinação cada grupo adotará durante a disciplina.

Se você faltou na aula lembre de ler todas as seções desta pagina, pesquisar as ferramentas listadas, instalar e configurar o ambiente escolhido e entregar o resultado conforme descrito na seção "Entrega". Nao há necessidade de revisão em aula se você estudar.

1. O que é uma IDE e por que ela importa?

Uma IDE (Integrated Development Environment) reúne em um único programa os recursos necessários para escrever, executar e depurar código. Um simples editor de texto também serve para escrever JavaScript, mas uma IDE ou editor avançado oferece:

Contexto da disciplina: ao longo do semestre vamos escrever JavaScript puro, HTML, CSS, criar APIs, conectar ao banco de dados e fazer deploy de aplicações web. O ambiente precisa dar suporte a tudo isso de forma integrada.

2. Ferramentas disponíveis

As ferramentas estao organizadas por categoria. Escolher pelo menos uma ferramenta de cada categoria obrigatória e justificar a escolha no relatório.

2.1 IDEs e editores de código

Ferramenta central do desenvolvimento. É onde se escreve, organiza e depura o código. Para desenvolvimento web com JavaScript, as principais opções são:

Ferramenta Tipo Licenca Destaques para a disciplina
VS Code Editor avancado Gratuito Extensões para JS, HTML, CSS, Node, Git, banco de dados e debug integrado. Recomendado.
WebStorm IDE Freemium IDE dedicada a JavaScript com suporte nativo a Node, frameworks e banco de dados. Gratuita para estudantes.
IntelliJ IDEA IDE Freemium Versão Community gratuita. Suporte a JavaScript via plugins. Excelente para quem migra de Java.
Eclipse IDE Gratuito Tradicional em Java. Suporte a web via pluggins (Eclipse Wild Web Developer). Interface mais pesada.
Sublime Text Editor avancado Freemium Leve e rápido. Menor ecosistema de extensões comparado ao VS Code.
Vim / Neovim Editor de terminal Gratuito Alta produtividade apos curva de aprendizado. Configurável para desenvolvimento web completo.
Replit IDE online Online Sem instalação. útil para prototipagem rápida e trabalho colaborativo em tempo real.
StackBlitz IDE online Online Ambiente Node.js completo no navegador. Ótimo para testar projetos web sem configurar nada.
CodeSandbox IDE online Online Focado em frontend. Bom para compartilhar exemplos e prototipagem rápida de interfaces.

2.2 Controle de versão e colaboração

Essenciais para trabalhar em equipe e manter o histórico de evolução do projeto. Usaremos Git e GitHub no decorrer do semestre.

Ferramenta Tipo Licenca Destaques para a disciplina
Git Controle de versão Gratuito Ferramenta principal. Obrigatória. Usada via terminal ou integrada na IDE.
GitHub Plataforma de repositórios Gratuito Repositório oficial da disciplina. Entregas e colaboração entre duplas.
GitHub Desktop Cliente Git gráfico Gratuito Interface gráfica para Git. Útil para quem ainda está se familiarizando com linha de comando.
GitLens (extensão VS Code) Plugin Freemium Visualização de histórico e autoria de código diretamente no editor.

2.3 Gerenciamento de pacotes e dependências

Permitem instalar e gerenciar bibliotecas externas no projeto JavaScript/Node.js.

Ferramenta Tipo Licenca Destaques para a disciplina
npm Gerenciador de pacotes Gratuito Vem junto com o Node.js. Principal gerenciador para instalar frameworks e bibliotecas.
yarn Gerenciador de pacotes Gratuito Alternativa ao npm, com cache mais eficiente e instalação paralela de dependências.
pnpm Gerenciador de pacotes Gratuito Mais rápido e econômico em disco que npm e yarn. Crescente adoção no mercado.

2.4 Banco de dados e clientes de banco

Vamos conectar o projeto web a um banco de dados relacional. Além do SGBD, é útil ter um cliente gráfico para visualizar e consultar os dados durante o desenvolvimento.

Ferramenta Tipo Licenca Destaques para a disciplina
PostgreSQL SGBD relacional Gratuito Robusto, amplamente usado em produção. Excelente suporte a JSON e tipos avançados.
MySQL SGBD relacional Gratuito Muito popular em aplicações web. Boa documentação e integração com Node.js.
SQLite SGBD leve Gratuito Banco de dados em arquivo. Ideal para projetos pequenos e prototipagem rápida sem servidor.
DBeaver Cliente de banco gráfico Gratuito Suporta PostgreSQL, MySQL e SQLite. Interface clara para visualizar tabelas e executar queries.
TablePlus Cliente de banco gráfico Freemium Interface moderna e rápida. Versão gratuita com algumas limitações de abas.
Database Client (extensão VS Code) Plugin Freemium Permite conectar e consultar bancos de dados diretamente dentro do VS Code.

2.5 Teste e depuração de APIs

Indispensáveis para testar os endpoints da API REST que vamos construir no projeto.

Ferramenta Tipo Licença Destaques para a disciplina
Postman Cliente HTTP / teste de API Freemium Interface gráfica para enviar requisições HTTP e inspecionar respostas. Muito usado no mercado.
Insomnia Cliente HTTP / teste de API Freemium Alternativa ao Postman, mais leve. Suporte a REST e GraphQL.
Thunder Client (extensão VS Code) Plugin Gratuito Cliente HTTP integrado ao VS Code. Evita a necessidade de abrir uma ferramenta separada.
curl Linha de comando Gratuito Ferramenta de terminal para fazer requisições HTTP. Útil para scripts e automação.

2.6 Qualidade e padronização de código

Garantem que o código do projeto siga um padrão consistente entre todos os integrantes da equipe.

Ferramenta Tipo Licenca Destaques para a disciplina
ESLint Linter JavaScript Gratuito Aponta erros de estilo e problemas de código antes de executar. Integrável ao VS Code.
Prettier Formatador de código Gratuito Formata automáticamente JS, HTML e CSS com um padrão consistente ao salvar o arquivo.
EditorConfig Padronização de editor Gratuito Define configurações de indentação e charset compartilhadas entre todos no projeto.

2.7 Deploy e ambiente de execução

Ferramenta Tipo Licenca Destaques para a disciplina
Node.js Runtime JavaScript Gratuito Ambiente de execução do JavaScript fora do navegador. Obrigatório para o backend.
GitHub Pages Hospedagem estática Gratuito Já usado na disciplina. Facilita para gerenciar o projeto.
Render Hospedagem de aplicações Gratuito Hospeda aplicações Node.js gratuitamente. Boa opcão para deploy do backend do projeto.
Railway Hospedagem de aplicações Freemium Suporta Node.js e banco de dados PostgreSQL na mesma plataforma. Facil de configurar.
Vercel Hospedagem de aplicações Gratuito Excelente para frontend e APIs simples em Node.js (serverless). Deploy automático via GitHub.
Docker Conteinerizacão Gratuito Empacota a aplicacão e suas dependências em um container. Garante que o ambiente seja idêntico em qualquer máquina.

3. Como avaliar uma ferramenta

Comparem ferramentas de forma estruturada.

Criterio O que observar
Facilidade de instalacão Quantos passos são necessários? Funciona sem configuracão adicional?
Suporte a JavaScript e Node.js A ferramenta entende a sintaxe, sugere código. e aponta erros em JS nativamente?
Suporte a HTML e CSS Oferece autocompletar e validacão de HTML e CSS para o frontend?
Debugger integrado E possivel pausar a execucão, inspecionar variáveis e acompanhar o fluxo sem sair da ferramenta?
Integracão com Git e GitHub Permite fazer commits, push e pull diretamente pela interface?
Terminal integrado Tem terminal embutido para rodar Node.js e npm sem abrir uma janela separada?
Extensões e plugins Existe um ecosistema de extensões para banco de dados, APIs, linting e formatacão?
Performance A ferramenta abre rápidamente e responde bem em máquinas com hardware limitado?
Custo E gratuita para estudantes? Tem limitações na versão gratuita que impactam o projeto?
Documentacão e comunidade Há documentacão oficial clara e uma comunidade ativa para ajudar com dúvidas?

4. O que é debugging e por que ele e importante

Debugging e o processo de encontrar e corrigir erros no código.. Em vez de usar de>console.log para imprimir variáveis em todo lugar, uma IDE com debugger permite:

Dica pratica: ao longo do semestre, sempre que um método retornar um valor inesperado, coloque um breakpoint na linha suspeita em vez de adicionar vários de>console.log. Voce vai resolver o problema muito mais rápido.

Debugging no VS Code com Node.js

O VS Code possui debugger nativo para Node.js. Para usar, crie um arquivo de>.vscode/launch.json na raiz do projeto com o seguinte conteudo:

de>{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Executar projeto",
      "program": "${workspaceFolder}/src/index.js",
      "skipFiles": ["/**"]
    }
  ]
}
"type": "node"
Indica ao VS Code que este e um projeto Node.js.
"request": "launch"
O VS Code vai iniciar o programa diretamente (em vez de se conectar a um processo ja em execucão).
"program"
Caminho para o arquivo de entrada da aplicacão. Ajuste conforme a estrutura do seu projeto.
"skipFiles"
Ignora os arquivos internos do Node.js durante o passo a passo, para nao entrar no código. do proprio runtime.

Com o arquivo configurado, clique na margem esquerda de qualquer linha para adicionar um breakpoint (um circulo vermelho aparecera). Em seguida pressione de>F5 para iniciar o debugging. A execucão pausara na linha marcada e o painel lateral mostrara todas as variáveis disponiveis naquele momento.

Debugging no navegador (frontend)

Para o código. JavaScript que roda no navegador, o debugger ja esta embutido nas ferramentas de desenvolvedor. Pressione de>F12, va para a aba Sources, encontre o arquivo de>.js e clique na linha desejada para adicionar um breakpoint. Funciona da mesma forma: a execucão pausa, as variáveis ficam visiveis e você avanca passo a passo.

5. Atividade

Objetivo: pesquisar, testar e comparar ferramentas de desenvolvimento, escolher a combinacão que usaremos no semestre e documentar a decisão em um relatório.

Etapa 1 — Divisão e pesquisa

Cada integrante fica responsável por pesquisar um subconjunto das categorias abaixo. Ao final, reúnam as informações e discutam em conjunto.

Categorias obrigatórias para pesquisa
    >IDE ou editor de código. — compare pelo menos 2 opções da secão 2.1. >Cliente de banco de dados — compare pelo menos 2 opções da secão 2.4. >Ferramenta de teste de API — compare pelo menos 2 opções da secão 2.5.

Para cada par de ferramentas comparadas, use os criterios da secão 3 como base para a avaliacão. Atribua uma nota de 1 a 5 para cada criterio.

Categorias complementares (escolha pelo menos 1)
    >Ferramenta de qualidade de código. (secão 2.6): ESLint, Prettier ou EditorConfig. >Plataforma de deploy (secão 2.7): Render, Railway ou Vercel.

Etapa 2 — Instalação e configuração

Apos definir quais ferramentas adotarão, cada integrante instala e configura o seu ambiente. Ao final desta etapa, todos devem conseguir:

    >Abrir um arquivo de>.js no editor escolhido com realce de sintaxe ativo. >Executar de>node arquivo.js pelo terminal integrado. >Colocar um breakpoint e iniciar o debugger. >Fazer um commit e push para o repositório da disciplina pelo Git integrado ou GitHub Desktop. >Conectar ao banco de dados pelo cliente grafico escolhido. >Enviar uma requisicão GET de teste pelo cliente de API escolhido.

Etapa 3 — Relatório

Preencher o template de relatório disponivel e entregar no repositório da disciplina antes do final da aula. O relatório deve conter: