SlideShare uma empresa Scribd logo
4
Mais lidos
6
Mais lidos
8
Mais lidos
ESTRUTURA
DE UM
FRONT-END
EFICIENTE(PARA INICIANTES)
Um breve guia de
melhores práticas
QUEM
Desenvolvedor Php e Javascript focado
em Wordpress, CakePHP, social apps e
client-side apps.
Desenvolve pra web há mais de 5 anos.
SÉRGIO VILAR
Front-End Engineer @ Vertex Tecnologia
SOBRE
WTF?
O MODO COMO UM DESENVOLVEDOR
ORGANIZA SEU PROJETO DIZ MUITO
SOBRE ELE.
Muitos front-ends ao começar na área,
não possuem uma base sólida de como
funciona o back-end de uma aplicação.
Este guia tem como objetivo mostrar as
melhores práticas para uma melhor
produtividade de toda a equipe
partindo de uma boa organização.
ESTRUTURA
DE PASTAS
É importante que esteja claro sobre
onde determinado trecho de código
está no seu projeto. Veja esta estrutura:
/- css
/- pages
- ... (seus arquivos .css)
- main.css
/- img
/- sample
- ... ( suas imagens na raiz da pasta)
/- js
/- components
/- modules
- main.js
ESTRUTURA
DE PASTAS
CSS
main.css: importa os arquivos
correspondentes a cada página
pages: pasta que contém os
arquivos .css para cada página do seu
projeto
ESTRUTURA
DE PASTAS
IMG
sample: pasta que contém todas as
imagens de exemplo que você usou e
que serão preenchidas pelo back-end
... : as imagens ou sprites do seu projeto
vão na raiz da pasta img
ESTRUTURA
DE PASTAS
JS
components: nesta pasta ficarão as libs
que você está usando no seu projeto,
você pode apontar o bower para esta
pasta.
modules: nesta pasta fica cada módulo
responsável por cada página no seu
projeto front-end
main.js: seu arquivo javascript principal
DESMEMBRAMENTO
E COMO ISTO IRÁ TE SALVAR
Com uma aplicação
desmembrada, debugar
qualquer coisa é mamão-
com-açúcar, aproveite!
Cada desenvolvedor poderá
trabalhar em uma parte da
aplicação sem atrapalhar o
trabalho do colega.
Modularizando sua
aplicação, você saberá
exatamente onde procurar
ou implementar
determinada funcionalidade
para determinada página.
CADA UM NO SEU QUADRADO DEBUG FTW DESENVOLVIMENTO EM PARALELO
DESMEMBRAMENTO
CSS
Use seu arquivo main.css para importar
o CSS específico para cada página.
Ex:
@import “pages/home.css”
@import “pages/contato.css”
DESMEMBRAMENTO
JAVASCRIPT
Você pode usar o require.js para carregar
dinamicamente os arquivos .js para cada
módulo.
Ex:
var module = $('body').attr('rel');
require(['/js/modules/'+module+'.js'],function(Module){
Module.init();
});
Neste exemplo, armazenamos o módulo no qual
queremos carregar no atributo “rel” da tag body.
DESMEMBRAMENTO
JAVASCRIPT
E como fica esse módulo?
define('myModule', [], function(){
function Module(){
this.init = function(){
// aqui você inicializa o módulo
this.events();
};
this.events = function(){
// método de exemplo
};
}
return new Module();
});
A CÉSAR O QUE É DE CÉSAR
NO CSS OU NO HTML?
Tudo que é estático fica no CSS, como
aquela setinha ou aquele bg.
Tudo que é dinâmico fica no HTML.
Dessa forma, o back-end da aplicação
poderá manusear de acordo com os
dados oriundos do banco de dados.
DICA: Preferencialmente use a tag img
para conteúdo dinâmico e a
propriedade background do CSS para
conteúdo estático.
SEMÂNTICA
E UM POUQUINHO DE MINIMALISMO
Use apenas tags HTML necessárias.
Não coloque uma tag a mais para
resolver algo que você poderia fazer
com CSS.
Leia a documentação do HTML no site
da W3C e entenda para quê cada tag
serve (você pode até descobrir algumas
tags novas).
ESCREVENDO HTML EFICIENTE
ENTENDER O PROJETO É PRECISO!
Ao escrever seu HTML, preste muita
atenção para o que é estático e
dinâmico, isso fará total diferença.
Aquele texto é estático ou dinâmico?
Caso seja dinâmico, escreva o HTML de
acordo com isso.
Veja os dois exemplos a seguir:
ESCREVENDO HTML EFICIENTE
EXEMPLO DE TEXTO ESTÁTICO
<h3>Descrição da galeria de imagens</h3>
<figure>
<img src=”img.jpg” />
</figure>
<figure>
<img src=”img.jpg” />
</figure>
ESCREVENDO HTML EFICIENTE
EXEMPLO DE TEXTO DINÂMICO
<figure>
<img src=”img.jpg” />
<figcaption>Descrição da foto</figcaption>
</figure>
<figure>
<img src=”img.jpg” />
<figcaption>Descrição da foto</figcaption>
</figure>
HEADER E FOOTER?
COMO O BACK-END VERÁ SEU HTML
O header da sua página HTML é toda a
parte comum a todas as páginas no
início do arquivo, o footer é toda a parte
comum no final do arquivo.
Para o back-end da aplicação, ter cada
página com um head e footer diferente
será uma tortura. Sim, ele vai te xingar
muito.
HEADER E FOOTER?
COMO O BACK-END VERÁ SEU HTML
Use o mesmo header e footer para
todas as páginas HTML, se precisar de
algo diferente, faça no módulo do
javascript correspondente.
É preciso que o que exista de diferente
entre suas páginas HTML seja apenas o
“miolo”.
É ISSO AÍ,
ATÉ LOGO.
http://about.me/vilar
http://sergiovilar.com.br
http://github.com/sergiovilar

Mais conteúdo relacionado

PPSX
Spring - Part 1 - IoC, Di and Beans
PDF
Object Oriented Programming with Laravel - Session 3
PDF
Python and MongoDB
PPTX
Lecture 2_ Intro to laravel.pptx
PPTX
What is Swagger?
PPTX
Spring boot anane maryem ben aziza syrine
PPT
HTML Introduction
PDF
Openehr clinical modelling
Spring - Part 1 - IoC, Di and Beans
Object Oriented Programming with Laravel - Session 3
Python and MongoDB
Lecture 2_ Intro to laravel.pptx
What is Swagger?
Spring boot anane maryem ben aziza syrine
HTML Introduction
Openehr clinical modelling

Mais procurados (20)

PDF
angular fundamentals.pdf angular fundamentals.pdf
PPTX
Angular 4 and TypeScript
PDF
Object Oriented Programming with Laravel - Session 2
PPTX
Laravel Tutorial PPT
PDF
Javascript projects Course
PDF
Spring annotation
PPTX
Introduction to HTML
PPT
JAVA SCRIPT
PDF
Object Oriented Programming with Laravel - Session 1
PPTX
Java Logging
PPTX
Elasticsearch
PPTX
Presentation1.pptx
PDF
Chef basics - write infrastructure as code
PDF
Données liées et Web sémantique : quand le lien fait sens.
KEY
Introdução ao Spring Framework
PDF
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
PDF
Introducción a JEE
PDF
ReactJS Tutorial For Beginners | ReactJS Redux Training For Beginners | React...
angular fundamentals.pdf angular fundamentals.pdf
Angular 4 and TypeScript
Object Oriented Programming with Laravel - Session 2
Laravel Tutorial PPT
Javascript projects Course
Spring annotation
Introduction to HTML
JAVA SCRIPT
Object Oriented Programming with Laravel - Session 1
Java Logging
Elasticsearch
Presentation1.pptx
Chef basics - write infrastructure as code
Données liées et Web sémantique : quand le lien fait sens.
Introdução ao Spring Framework
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
Introducción a JEE
ReactJS Tutorial For Beginners | ReactJS Redux Training For Beginners | React...
Anúncio

Destaque (20)

PDF
Guia do Front-end das Galáxias
PDF
O Papel do desenvolvedor Front End
PDF
Criando uma arquitetura de front-end do zero
PDF
O que você precisa saber para se tornar um dev front-end
PDF
ODP
1 - Introdução Ao Desenvolvimento Web - Estrutura Básica
ODP
Html5,css3,javascript o lugar onde sonhos se tornam realidade.
PDF
Hugo Brioso | Website Design, Development & Internet Marketing | Graphic Desi...
PPTX
Mercado Front-End no Brasil e no mundo
PPT
Front-end Development
PDF
Engenharia de front end de alta performance
PPTX
Minicurso Web. Front-end e HTML5 (parte 2)
PDF
ENERMETER – COMPANY PROFILE
PDF
Apresentacao Institucional da MKM Consulting
PDF
Company Profile
PPT
SASS + COMPASS - Alta Produtividade no Front-end
PPTX
Minicurso Web. Front-end e HTML5 (parte 1)
PDF
Construindo um framework CSS
PDF
FMZ Consulting
PDF
SEO para Front-End
Guia do Front-end das Galáxias
O Papel do desenvolvedor Front End
Criando uma arquitetura de front-end do zero
O que você precisa saber para se tornar um dev front-end
1 - Introdução Ao Desenvolvimento Web - Estrutura Básica
Html5,css3,javascript o lugar onde sonhos se tornam realidade.
Hugo Brioso | Website Design, Development & Internet Marketing | Graphic Desi...
Mercado Front-End no Brasil e no mundo
Front-end Development
Engenharia de front end de alta performance
Minicurso Web. Front-end e HTML5 (parte 2)
ENERMETER – COMPANY PROFILE
Apresentacao Institucional da MKM Consulting
Company Profile
SASS + COMPASS - Alta Produtividade no Front-end
Minicurso Web. Front-end e HTML5 (parte 1)
Construindo um framework CSS
FMZ Consulting
SEO para Front-End
Anúncio

Semelhante a Estrutura de um Front-End eficiente (para iniciantes) (20)

PPTX
Front-end 001
PDF
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
PPTX
Minicurso Iniciando no Mundo Front-End - Dia 02 - SASPI {5}
PPTX
Front-end: O que é necessário saber ?
PDF
Navegadores por de baixo dos panos - Ana Luiza Bastos
PDF
apostila-html-css-javascript.pdf
PDF
apostila-html-css-javascript.pdf
PPTX
5505 otimizando frontends
PDF
Mapa de aprendizado Front End
PDF
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
PPTX
XIV sacomp ufpel desenvolvimento web
PDF
Como os browsers funcionam - Front in Floripa 2014
PDF
Html5 workshop
PDF
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
PDF
MasterChef Web Version
PPTX
Html 5 datainfo
PPTX
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
PPTX
Práticas para Melhorar o seu Desenvolvimento Front-End
PPTX
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
PDF
Html5 em 15 minutos
Front-end 001
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
Minicurso Iniciando no Mundo Front-End - Dia 02 - SASPI {5}
Front-end: O que é necessário saber ?
Navegadores por de baixo dos panos - Ana Luiza Bastos
apostila-html-css-javascript.pdf
apostila-html-css-javascript.pdf
5505 otimizando frontends
Mapa de aprendizado Front End
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
XIV sacomp ufpel desenvolvimento web
Como os browsers funcionam - Front in Floripa 2014
Html5 workshop
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
MasterChef Web Version
Html 5 datainfo
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Práticas para Melhorar o seu Desenvolvimento Front-End
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Html5 em 15 minutos

Estrutura de um Front-End eficiente (para iniciantes)

  • 2. QUEM Desenvolvedor Php e Javascript focado em Wordpress, CakePHP, social apps e client-side apps. Desenvolve pra web há mais de 5 anos. SÉRGIO VILAR Front-End Engineer @ Vertex Tecnologia
  • 3. SOBRE WTF? O MODO COMO UM DESENVOLVEDOR ORGANIZA SEU PROJETO DIZ MUITO SOBRE ELE. Muitos front-ends ao começar na área, não possuem uma base sólida de como funciona o back-end de uma aplicação. Este guia tem como objetivo mostrar as melhores práticas para uma melhor produtividade de toda a equipe partindo de uma boa organização.
  • 4. ESTRUTURA DE PASTAS É importante que esteja claro sobre onde determinado trecho de código está no seu projeto. Veja esta estrutura: /- css /- pages - ... (seus arquivos .css) - main.css /- img /- sample - ... ( suas imagens na raiz da pasta) /- js /- components /- modules - main.js
  • 5. ESTRUTURA DE PASTAS CSS main.css: importa os arquivos correspondentes a cada página pages: pasta que contém os arquivos .css para cada página do seu projeto
  • 6. ESTRUTURA DE PASTAS IMG sample: pasta que contém todas as imagens de exemplo que você usou e que serão preenchidas pelo back-end ... : as imagens ou sprites do seu projeto vão na raiz da pasta img
  • 7. ESTRUTURA DE PASTAS JS components: nesta pasta ficarão as libs que você está usando no seu projeto, você pode apontar o bower para esta pasta. modules: nesta pasta fica cada módulo responsável por cada página no seu projeto front-end main.js: seu arquivo javascript principal
  • 8. DESMEMBRAMENTO E COMO ISTO IRÁ TE SALVAR Com uma aplicação desmembrada, debugar qualquer coisa é mamão- com-açúcar, aproveite! Cada desenvolvedor poderá trabalhar em uma parte da aplicação sem atrapalhar o trabalho do colega. Modularizando sua aplicação, você saberá exatamente onde procurar ou implementar determinada funcionalidade para determinada página. CADA UM NO SEU QUADRADO DEBUG FTW DESENVOLVIMENTO EM PARALELO
  • 9. DESMEMBRAMENTO CSS Use seu arquivo main.css para importar o CSS específico para cada página. Ex: @import “pages/home.css” @import “pages/contato.css”
  • 10. DESMEMBRAMENTO JAVASCRIPT Você pode usar o require.js para carregar dinamicamente os arquivos .js para cada módulo. Ex: var module = $('body').attr('rel'); require(['/js/modules/'+module+'.js'],function(Module){ Module.init(); }); Neste exemplo, armazenamos o módulo no qual queremos carregar no atributo “rel” da tag body.
  • 11. DESMEMBRAMENTO JAVASCRIPT E como fica esse módulo? define('myModule', [], function(){ function Module(){ this.init = function(){ // aqui você inicializa o módulo this.events(); }; this.events = function(){ // método de exemplo }; } return new Module(); });
  • 12. A CÉSAR O QUE É DE CÉSAR NO CSS OU NO HTML? Tudo que é estático fica no CSS, como aquela setinha ou aquele bg. Tudo que é dinâmico fica no HTML. Dessa forma, o back-end da aplicação poderá manusear de acordo com os dados oriundos do banco de dados. DICA: Preferencialmente use a tag img para conteúdo dinâmico e a propriedade background do CSS para conteúdo estático.
  • 13. SEMÂNTICA E UM POUQUINHO DE MINIMALISMO Use apenas tags HTML necessárias. Não coloque uma tag a mais para resolver algo que você poderia fazer com CSS. Leia a documentação do HTML no site da W3C e entenda para quê cada tag serve (você pode até descobrir algumas tags novas).
  • 14. ESCREVENDO HTML EFICIENTE ENTENDER O PROJETO É PRECISO! Ao escrever seu HTML, preste muita atenção para o que é estático e dinâmico, isso fará total diferença. Aquele texto é estático ou dinâmico? Caso seja dinâmico, escreva o HTML de acordo com isso. Veja os dois exemplos a seguir:
  • 15. ESCREVENDO HTML EFICIENTE EXEMPLO DE TEXTO ESTÁTICO <h3>Descrição da galeria de imagens</h3> <figure> <img src=”img.jpg” /> </figure> <figure> <img src=”img.jpg” /> </figure>
  • 16. ESCREVENDO HTML EFICIENTE EXEMPLO DE TEXTO DINÂMICO <figure> <img src=”img.jpg” /> <figcaption>Descrição da foto</figcaption> </figure> <figure> <img src=”img.jpg” /> <figcaption>Descrição da foto</figcaption> </figure>
  • 17. HEADER E FOOTER? COMO O BACK-END VERÁ SEU HTML O header da sua página HTML é toda a parte comum a todas as páginas no início do arquivo, o footer é toda a parte comum no final do arquivo. Para o back-end da aplicação, ter cada página com um head e footer diferente será uma tortura. Sim, ele vai te xingar muito.
  • 18. HEADER E FOOTER? COMO O BACK-END VERÁ SEU HTML Use o mesmo header e footer para todas as páginas HTML, se precisar de algo diferente, faça no módulo do javascript correspondente. É preciso que o que exista de diferente entre suas páginas HTML seja apenas o “miolo”.
  • 19. É ISSO AÍ, ATÉ LOGO. http://about.me/vilar http://sergiovilar.com.br http://github.com/sergiovilar