Por que padronizar um projeto?
Um projeto profissional não deve apenas funcionar. Ele precisa ser fácil de entender, manter, corrigir e evoluir.
Imagine entrar em um projeto criado por outra pessoa e encontrar dezenas de arquivos chamados teste.html, novo.js, final.css e coisa.js.
Organização é uma forma de comunicação entre desenvolvedores.
Progresso da aula
O que é organização de projeto?
Entendendo por que a estrutura importa.
Organização de projeto é a definição de uma estrutura lógica para armazenar arquivos, pastas, imagens, estilos, scripts e documentos.
Quando todos os arquivos possuem um local e uma finalidade clara, o desenvolvimento se torna mais previsível.
Se você precisar explicar durante vários minutos onde determinado arquivo está, provavelmente a estrutura pode ser melhorada.
Terminou esta etapa? Marque como concluída para atualizar seu progresso.
Organização de pastas
Separando arquivos por responsabilidade.
Uma das primeiras decisões de um projeto é definir onde cada tipo de recurso será armazenado.
Um projeto pequeno pode possuir poucas pastas. Um projeto maior pode possuir uma estrutura muito mais detalhada.
meu-projeto/
│
├── index.html
│
├── pages/
│ ├── sobre.html
│ ├── contato.html
│ └── produtos.html
│
├── css/
│ └── style.css
│
├── js/
│ └── script.js
│
├── img/
│ ├── logo.png
│ └── banner.jpg
│
└── docs/
└── README.md
pages/
Páginas HTML adicionais do sistema.
css/
Folhas de estilo e arquivos relacionados à apresentação.
js/
Arquivos JavaScript responsáveis pela lógica e interações.
img/
Imagens utilizadas pelo projeto.
Compreendeu a organização das pastas?
Padronização de nomes de arquivos
Criando nomes previsíveis e profissionais.
O nome de um arquivo deve permitir que outra pessoa entenda sua finalidade sem precisar abrir o arquivo.
Evite
Página Inicial.html
Meu Arquivo.html
teste.html
teste2.html
FINAL.css
novo.js
coisa.js
imagem 01.jpg
Prefira
index.html
pagina-inicial.html
pagina-contato.html
style.css
script.js
validacao-formulario.js
imagem-01.jpg
Utilize letras minúsculas e hífen para separar palavras em nomes de arquivos.
Agora você já consegue avaliar nomes de arquivos.
O que é nomenclatura?
Definindo regras para dar nomes ao código.
Nomenclatura é o conjunto de regras utilizadas para nomear elementos de um projeto.
Ela pode ser aplicada a:
pages, css, js, img
index.html, contato.html
card-produto, menu-principal
calcularTotal(), usuarioLogado
O nome deve explicar a finalidade do elemento.
Entendeu o conceito de nomenclatura?
Padronização de classes CSS
Criando nomes que representam componentes e funções.
Classes CSS devem representar o significado ou a responsabilidade do elemento, e não apenas sua aparência.
❌ Evite
.azul
.caixa1
.coisa
.div123
.bonito
.texto-grande
✅ Prefira
.menu-principal
.card-produto
.formulario-contato
.botao-enviar
.titulo-principal
.descricao-produto
Exemplo prático
<article class="card-produto">
<h2 class="titulo-produto">
Notebook
</h2>
<p class="descricao-produto">
Computador portátil.
</p>
<button class="botao-comprar">
Comprar
</button>
</article>
Aprendeu a diferenciar aparência de responsabilidade?
IDs e identificadores
Quando utilizar nomes claros para elementos únicos.
O atributo id identifica um elemento específico dentro da página.
O nome deve representar a função daquele elemento.
<form id="formulario-contato">
<input id="nome-usuario" type="text">
<button id="botao-enviar" type="submit">
Enviar
</button>
</form>
Etapa sobre IDs concluída?
Nomes de variáveis
Escrevendo variáveis que explicam seus valores.
Uma variável deve possuir um nome que permita entender o dado armazenado nela.
let nomeAluno = "João";
let idadeAluno = 18;
let quantidadeProdutos = 10;
let usuarioLogado = true;
let valorTotalCompra = 250.50;
❌ Pouco claro
let x = 10;
let a = true;
let b = "João";
✅ Claro
let quantidade = 10;
let usuarioLogado = true;
let nomeAluno = "João";
Entendeu a importância de nomes descritivos?
Camel Case
Um padrão muito utilizado em JavaScript.
No padrão camelCase, a primeira palavra começa com letra minúscula e as palavras seguintes começam com letra maiúscula.
nomeAluno
dataNascimento
quantidadeProdutos
usuarioLogado
valorTotal
calcularTotal()
validarFormulario()
cadastrarAluno()
buscarProduto()
atualizarUsuario()
Pronto para utilizar camelCase?
Kebab Case
Padronizando arquivos e classes.
O padrão kebab-case utiliza letras minúsculas e hífen para separar palavras.
pagina-inicial.html
pagina-contato.html
lista-produtos.html
.menu-principal
.card-produto
.botao-enviar
.titulo-principal
.descricao-produto
Entendeu a diferença entre os padrões?
Nomes de funções
Funções representam ações.
Funções normalmente representam uma ação. Por isso, seus nomes devem indicar claramente o que elas executam.
function cadastrarAluno() {
}
function calcularTotal() {
}
function validarFormulario() {
}
function buscarProduto() {
}
function atualizarUsuario() {
}
Aprendeu a nomear funções?
Constantes e variáveis
Escolhendo nomes e declarações de forma consistente.
Além de escolher bons nomes, precisamos utilizar corretamente as declarações do JavaScript.
const nomeSistema = "Sistema Escolar";
const quantidadeMaxima = 50;
let quantidadeAtual = 20;
let usuarioLogado = true;
Etapa concluída?
Organização do HTML
Estruturando o documento de maneira previsível.
O HTML também deve seguir uma estrutura organizada. Utilize indentação, elementos semânticos e agrupamento lógico.
<main>
<section class="produtos">
<h2>
Produtos
</h2>
<article class="card-produto">
<h3>
Notebook
</h3>
<p>
Computador portátil.
</p>
</article>
</section>
</main>
Um código corretamente indentado permite identificar rapidamente a hierarquia dos elementos.
Entendeu a importância da indentação?
Organização do CSS
Mantendo estilos previsíveis e fáceis de localizar.
Um arquivo CSS pode crescer rapidamente. Por isso, é importante organizar as regras por responsabilidade.
/* ================================
MENU
================================ */
.menu-principal {
display: flex;
}
/* ================================
CARD
================================ */
.card-produto {
padding: 20px;
}
/* ================================
BOTÃO
================================ */
.botao-enviar {
padding: 12px 20px;
}
Pronto para organizar seu CSS?
Consistência é mais importante que improvisação
Escolha um padrão e mantenha-o durante o projeto.
Um dos problemas mais comuns em projetos é misturar vários padrões.
card-produto
cardProduto
CardProduto
card_produto
CARDPRODUTO
produtoCard
.card-produto
.card-usuario
.card-pedido
.card-categoria
.card-produto-destaque
Para este laboratório, adotaremos kebab-case para classes CSS e nomes de arquivos e camelCase para variáveis e funções JavaScript.
Entendeu a importância da consistência?
Estrutura recomendada
Um modelo que podemos utilizar nos projetos.
Agora podemos juntar os conceitos estudados em uma estrutura completa.
projeto-integrador/
│
├── index.html
│
├── pages/
│ ├── sobre.html
│ ├── contato.html
│ └── servicos.html
│
├── css/
│ └── style.css
│
├── js/
│ └── script.js
│
├── img/
│ ├── logo.png
│ ├── banner.jpg
│ └── produto-01.jpg
│
├── assets/
│ ├── icons/
│ └── fonts/
│
└── docs/
└── README.md
Esta estrutura pode ser utilizada como referência para seus projetos.
Checklist de padronização
Antes de entregar um projeto, faça esta verificação.
Utilize o checklist abaixo antes de considerar a organização do projeto concluída.
Confira todos os itens antes de avançar.
Organize um projeto desorganizado
Imagine que você recebeu o seguinte projeto. Seu desafio é identificar os problemas e propor uma estrutura profissional.
site/
├── index.html
├── teste.html
├── final.html
├── FINAL.css
├── novo.css
├── script.js
├── script2.js
├── coisa.js
├── imagem 1.jpg
├── imagem final.jpg
├── x.png
└── pagina2.html
- Nomes inadequados.
- Arquivos duplicados.
- Falta de pastas.
- Falta de padrão.
- Crie uma estrutura.
- Renomeie os arquivos.
- Separe responsabilidades.
- Defina um padrão.
Finalizou o desafio?
Exercícios de fixação
Verifique se os conceitos foram compreendidos.
Questão 1
Qual nome é mais adequado para uma página de contato?
A) Pagina Final.html
B) contato.html
C) coisa.html
D) pagina2.html
Questão 2
Qual nome representa melhor uma classe CSS?
A) .azul
B) .div1
C) .card-produto
D) .coisa
Questão 3
Qual variável possui melhor nomenclatura?
A) let x = 10;
B) let a = 10;
C) let quantidadeProdutos = 10;
D) let coisa = 10;
Questão 4
Qual nome representa melhor uma função?
A) fazer()
B) coisa()
C) executar()
D) calcularTotal()
Questão 5
Qual padrão é utilizado nos exemplos de variáveis JavaScript?
A) kebab-case
B) camelCase
C) snake_case
D) UPPER-CASE
Terminou os exercícios?
Padronizando o Projeto Integrador
Agora aplique todos os conceitos estudados no Projeto Integrador do seu grupo.
Resumo da aula
Código organizado não é apenas código que funciona. É código que outra pessoa consegue entender, manter e continuar desenvolvendo.
Aula concluída!
Você estudou organização, estrutura, nomenclatura e padronização de projetos Front-end.
Agora aplique esses padrões no seu próprio projeto.