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.
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:
-
>Realce de sintaxe — cores que facilitam a leitura do código.
>Autocompletar inteligente — sugestões de funções, métodos e variáveis enquanto você digita.
>Detecção de erros em tempo real — sublinha problemas antes mesmo de executar.
>Debugger integrado — permite pausar o programa, inspecionar variáveis e acompanhar o fluxo de execução linha a linha.
>Terminal integrado — executa comandos Node.js, Git e npm sem sair da ferramenta.
>Integração com Git — faz commits, ajuda gerenciar alterações e resolver conflitos visualmente.
>Extensões e plugins — adicionam suporte a frameworks, formatadores e muito mais.
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:
-
>Definir breakpoints — pontos onde a execucão pausa automáticamente.
>Inspecionar variáveis — ver o valor exato de cada variável no momento da pausa.
>Executar passo a passo — avançar linha a linha para entender o fluxo do programa.
>Avaliar expressões — testar expressões JavaScript diretamente no estado atual do programa.
>Inspecionar a pilha de chamadas — ver quais funções foram chamadas ate chegar na linha atual.
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
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:
-
>Ferramentas comparadas e descricão breve de cada uma.
>Tabela comparativa com notas por criterio.
>Conclusão indicando qual ferramenta foi escolhida em cada categoria e por que.
>Print ou descricão do ambiente configurado.