Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO
Esta pesquisa tem como objetivo apresentar uma gama de tecnologias presentes na plataforma web que serão
utilizadas no projeto prático, fazendo comparativos entre outras semelhantes no mercado, apresentando suas
demandas. Será tratado o aglomerado de tecnologias focadas no front-end, desde a estilização de páginas ao
dinamismo das mesmas. Além das tecnologias, será abordado o conceito de arquitetura em 3 camadas que
fornece uma divisão de funções de uma aplicação, distribuindo-se em apresentação (tela), regra de negócio
(fluxo de dados, manipulação e controle), que por sua vez será aplicada ao projeto prático complementar a esta
pesquisa.
ABSTRACT
This research aims to present a range of technologies present on the web platform that will be used at the end of
practical project, making comparisons between similar market, presenting their demands. It will be treated the
agglomerate of technologies focused on the front end, from the stylization of pages to the dynamism of the same.
In addition to the technologies, it will address the concept of architecture in 3 layers that provides a division of
an application functions, distributing up in presentation (display), business rule (data flow, manipulation and
control), which in turn is applied to the practical complement to this research project.
INTRODUÇÃO
O principal objetivo da Web em seu surgimento, era manter uma troca de informações
e de conteúdos estáticos entre postos militares, estas primeiras páginas continham apenas
textos, imagens e animações, ambos descritos em uma estrutura da tecnologia HTML
(HyperText Markup Language), um formato de arquivo textual que deveria ser armazenado
em uma
¹ Aluno do Curso Superior de Tecnologia em Redes de Computadores da Universidade Estadual de Goiás
² Professor do Curso Superior de Tecnologia em Redes de Computadores da Universidade Estadual de Goiás
22
máquina servidora, e acessado por navegadores web para sua visualização. Contudo, depois
de sua popularização provocada por Tim Berners-Lee nos anos 90, a Web passou ter outras
características, com um imenso potencial de comunicação e interação entre usuários de
diversas partes. O ecossistema que engloba a Web é extremamente vasto, compreendido por
diversas metodologias e tecnologias semelhantes, desde sua estruturação básica, ao
dinamismo de conteúdo que é possível se criar, utilizando métodos atuais. Com o crescente
aumento de pessoas tendo acesso à internet, seja por computadores, celulares, tabletes ou
TV’s, a web tomou proporções grandiosas, mas para manter essas páginas funcionando em
Ao acessar qualquer página web, o que nos é mostrado são telas bem desenhadas,
diversos conteúdos bem agrupados e subdivididos, onde todos os recursos presentes na página
são bem redimensionados e bem-dispostos, com cada imagem e texto colocados em seus
devidos lugares. Em uma página simples da web ou em um sistema de pequeno/grande porte,
a parte visual trata-se da camada de apresentação da arquitetura de 3 camadas, conhecida
como front-end. Segundo Mazza (2010, p.2)
Seja um sistema interno de um banco, uma rede social, um grande portal de notícias
ou sites para campanhas de publicidade, o meio comum hoje em dia é a web, e é
bastante interessante ter uma ótima base de conhecimento sobre desenvolvimento
front-end (um dos termos usados para se referenciar a interface de uma aplicação)
para contribuir para o sucesso dos projetos que você estiver participando.
1. <!DOCTYPE html>
2. <html lang="pt-br">
3. <head>
4. <title>Título da página</title>
5. <meta charset="utf-8">
6. </head>
7. <body>
8. Aqui vai o código HTML que fará seu site aparecer.
9. </body>
10. </html>
O DOCTYPE não se trata de um elemento, mas sim uma instrução que diz ao
navegador que abaixo estão escritos códigos de marcação HTML e em qual versão será
escrito, sendo declarado obrigatoriamente no início de todas as páginas. Na marcação do
HEAD, o cabeçalho da página recebe configurações de controle do documento, criação de
scripts e vinculação com outros arquivos. Única configuração neste trecho que se torna visível
para o usuário, é o conteúdo demarcado entre as TAG <title> </title>, que exibe o nome da
página na aba do navegador.
No desenvolvimento front-end, a área mais trabalhada pelo codificador se encontra
demarcada entre a TAG <body> </body>, ou seja, o corpo da página no qual se encontra
todo o conteúdo que os usuários têm acesso. Compondo toda a interface visual do sistema,
mostrando informações legíveis para o leitor do documento, não se limitando apenas em
textos, podendo ser composto por imagens, áudios, vídeos, jogos e até mini aplicativos
embutidos neste trecho. Ao se tratar de um sistema web, entradas e saídas de dados
1. <header> </header>
2. <aside>
3. <nav> </nav>
4. </aside>
5. <main>
6. <article>
7. <section> </section>
8. </article>
9. </main>
10. <footer> </footer>
Trata-se de uma plataforma criada pelo W3C, que serve para representar as estruturas
de marcações de arquivos HTML, XTML e XML, mostrando como estas estruturas são
interpretadas pelos navegadores. No entanto, DOM serve de base para o que realmente o
navegador monta na tela, a Árvore de Renderização. Segue uma representação da árvore
DOM:
Esta estrutura é composta por propriedades, eventos e métodos que compõe as páginas
web, que no processo de interpretação feito pelo navegador, cria-se esta árvore de hierarquias
dos elementos, as quais podem ser manipuladas por linguagens de scripts, como é o caso do
JavaScript, que manipulam os comportamentos destes elementos.
Numa visão mais ampla, o DOM possui um nó principal chamado Node.h que é a base
deste modelo, contudo, ainda existem outros três nodos relevantes para a renderização das
páginas web, o document, element e text. No qual document é o nó mais importante abaixo do
node.h, responsável pelo documento em si. Enquanto o element trata todas as marcações do
documento, que são transformadas em elementos a serem manipulados. E o text, responsável
pelo conteúdo das TAGS, como por exemplo, um texto entre a marcação de parágrafo <p>
</p>. Estes elementos são manipulados por métodos que retornam seus respectivos valores,
no código a seguir, nota-se que o método .getElementsByTagName(“P”) aplicado ao
documento em si, retornará todas as TAGS de parágrafo, que serão mostradas no método
alert().
1. paragraphs = document.getElementsByTagName("P");
2. // paragraphs[0] é o primeiro elemento <p>
3. // paragraphs[1] é o segundo elemento <p>, etc.
4. alert(paragraphs[0].nodeName);
O princípio inicial dos documentos HTML era apenas publicar textos tornando-os
públicos, sem qualquer tipo de formatação e sem mídias. Mas, devido a crescente
popularização desta tecnologia, foram surgindo algumas ideias para incrementar os
documentos mais simples, como mudar a cor da fonte, seu tamanho, colocar alguma cor de
fundo da página ou inserir uma imagem. Para fazer essa estilização básica, foram criadas
novas TAGS e alguns atributos para elas, contudo, se tornou um problema para os
desenvolvedores front-end por não manter uma padronização de conteúdos em todas as
páginas, pois cada navegador da época interpretava de uma forma, sendo necessário fazer as
modificações manualmente em cada uma, tornando o HTML mais complexo e difícil de
manter.
Diante deste problema, em 1994 Håkon Wium Lie e Bert Bos começaram a
desenvolver o projeto da linguagem CSS (Cascading Style Sheets – Folha de Estilo em
Cascata) para formatação e estilização de informações. No ano seguinte, o projeto chamou a
atenção do grupo W3C que criou uma equipe dando continuidade ao projeto que, por
conseguinte, em 1996 a associação lançou a recomendação oficial do CSS Level 1 (CSS1).
Esta primeira versão veio parar separar o conteúdo de sua estilização, permitindo
adicionar cores, diferentes estilos de fontes e modelo de layout. Com isso, o HTML voltou a
ter sentido apenas de marcação e delimitador de conteúdo, deixando os estilos concentrados
em arquivos CSS. Por se tratar de um arquivo a parte, ele precisa ser referenciado dentro do
1. seletor {
2. propriedade: valor;
3. }
4. seletor1, seletor2 {
5. ropriedade: valor;
p
6. propriedade: valor;
7. }
8. seletor1 seletor2 {
9. propriedade: valor;
10. }
2. @color: #4D926F;
3. #header { #header {
4. color: @color; color: #4D926F;
5. } }
6. h2 { h2 {
7. color: @color; } color: #4D926F; }
O pré-processador SASS é bastante semelhante ao LESS, porém, sendo mais utilizado
em ambientes de desenvolvimento Ruby, ou seja, para utilizá-lo é necessário a instalação de
um programa no computador. Mas, possui duas versões de sintaxes diferentes, a SASS que é
mais voltada para a indentação do código e a SCSS bem semelhante ao CSS original.
Ainda dentro das ferramentas que facilitam o desenvolvimento front-end, temos o
Stylus, sendo mais adaptável e trabalha com a sintaxe padrão do CSS, para se trabalhar com
esta ferramenta, é necessário a instalação de outra, conhecida como NodeJS. Diferenças
notáveis entre este e as tecnologias anteriores, é não ser obrigatório a utilização de chaves e
de ponto e vírgula, a definição de uma variável muda entre ambas, em LESS usa-se o @, em
SASS o $, quanto no Stylus não existem um padrão.
Documentos HTML e suas estilizações com CSS são estáticos, não possuem
interatividade com o usuário final, ou seja, os navegadores apenas vão interpretando a
codificação e exibindo na tela uma interface simples e estática. Para que fosse possível elevar
os websites para um novo nível, Brendan Eich desenvolveu no ano de 1995 quando
trabalhava na NetScape, a linguagem de script mais utilizada na web (lado do cliente) até os
dias atuais, a conhecida JavaScript ou JS. Porém, no início do projeto, a linguagem se
chamava Mocha, que posteriormente passou a se chamar de LiveScript, e finalmente levou o
nome de JavaScript por uma jogada de marketing da época com o tradicional Java. Mas, a
verdadeira nomenclatura desta tecnologia é ECMAScript, pois JavaScript é mantida por esta
associação que padroniza sistemas de informação e detém toda sua documentação. Segundo
Douglas Crockford [2001], citado por Plínio Balduino [2014]:
Vale ressaltar que JS e Java não são complementares, e muito menos diretamente
relacionadas, ou seja, Java é Java e JavaScript é JavaScript, ambas com suas particularidades
e funcionalidades diferentes. JavaScript trata-se de uma linguagem multiplataforma pequena e
leve de scripts, sendo interpretada pelos navegadores para manipulação dos modelos de
objetos de documento (DOM), podendo criar jogos e adicionar comportamentos ás páginas
web, por exemplo, passando o mouse sobre o menu, um submenu se expande apresentando
outros itens.
Por mais que JavaScript seja simples, escrever diversas funções para manipular toda
uma estrutura de um website ou até um sistema, se torna cansativo e estressante. E como
existem diversos projetos que visam facilitar a vida dos desenvolvedores, eis que surge uma
nova ferramenta, a biblioteca jQuery, que por ironia, toda escrita na linguagem a qual veio
para facilitar. Vih Damarques (2012) diz, “jQuery é apenas JavaScript, e não é capaz de fazer
nada que o JavaScript não possa fazer”.
jQuery simplifica toda e qualquer manipulação de documentos HTML, assim como
seus eventos, interações com outras tecnologias, como o AJAX por exemplo, manipulação de
estilização, ainda traz diversas animações e graças a toda sua simplicidade, essa biblioteca
passou ser a mais utilizada no desenvolvimento front-end.
Por ser JS, os códigos devem ser escritos seguindo a mesma marcação para scripts em
HTM e todos os comandos utilizando esta biblioteca, devem iniciar com o nome da mesma,
ou utilizando o alias $(“elemento”). Para se ter certeza que todo documento (DOM) esteja
carregado, para então iniciar o processamento do jQuery, devemos selecionar o segundo nó –
document - principal da estrutura de modelo de objetos do documento, utilizando o seguinte
exemplo:
1. $(document).ready(function){}
Dente as tecnologias, temos o PHP, Java, JSP, ASP, Ruby, dentre outras presentes
neste vasto ambiente de desenvolvimento. Tecnologias estas que tratam o dinamismo das
páginas que antes eram estáticas, retornando valores quando se faz uma busca e preenchendo
uma tabela com informações vindas do banco de dados, por exemplo.
Entre as tecnologias citadas anteriormente, a que possui maior índice de procura e está
sendo utilizada em maior escala no mercado de trabalho, é o Java, linguagem criada pela Sun
MicroSystems e pertencente a Oracle atualmente. Sendo considerada além de uma linguagem
de programação, como uma plataforma de desenvolvimento, graças a sua característica
multiplataforma é possível desenvolver para TV’s, desktop, celulares, trabalhar o back-end de
um site, entre outras.
A grande sacada desta tecnologia é suportar outras linguagens sem ser JAVA, como
Phyton, RUBY e Groovy sendo compatível ainda com qualquer sistema operacional existente,
que se torna tão compatível através do uso de sua máquina virtual para compilação dos
bytecodes.
Esta tecnologia é considerada como uma plataforma de desenvolvimento por seguir
algumas linhas de aplicabilidade, como o JSE (Java Standard Edition) sendo voltara para
aplicações desktop, o JME (Java Micro Edition) para sistemas embarcados e móveis, JEE
(Java Enterprise Edition) usada para aplicações web, JSP (Java Server Pages) que trabalha a
dinâmica dos dados dentro do HTML, JSF (Java Server Faces) é um framework designado
para desenvolver a cama de visão de um sistema e o Java Card que é voltado para
desenvolvimento de cartões inteligentes. Perante estas características, é possível notar o poder
de fogo desta plataforma. Três plataformas são voltadas para o desenvolvimento web, porém,
o enfoque deste trabalho será designado para o JEE e JSP.
4. }
5. }
JSP surgiu para contornar alguns problemas apresentados nos Servlets, evitando a
criação de diversas Servlets para trabalhar o dinamismo das páginas, com ele a programação
fica separada da tela, permitindo uma mistura de marcações HTML com códigos de Java,
assemelhando-se as tecnologias ASP e PHP. Nos permite aplicar condicionais, laços de
repetição e criação de varáveis, todo código Java inserido no documento deve vir dentro da
TAG <% %>, formando os códigos conhecidos como scriptlet (código pequeno). Mark
Szolkowski (2003, pag. 36) diz:
A JSP em si deve ser escrita por um desenvolvedor. Uma JSP desse tipo é uma
mistura de tags HTML estáticas, tags JSP e código Java, todos os quais são textos e,
portanto, podem ser escritos em qualquer editor de textos que você escolher.
3. </body>
CONSIDERAÇÕES FINAIS
REFERÊNCIAS
ADRIEL, Wendell. Sass vs. LESS vs. Stylus: Batalha dos Pré-processadores. Disponível
em: <http://tableless.com.br/sass-vs-less-vs-stylus-batalha-dos-pre-processadores/>. Acesso
em: 1 de outubro de 2016.
BALDUÍNO, Plínio. Dominando JavaScript com jQuery. São Paulo: Casa do Código,
2014.
FERREIRA, Elcio; EIS, Diego. HTML5 Curso W3C Escritório Brasil. Disponível em:
<http://www.w3c.br/pub/Cursos/CursoHTML5/html5-web.pdf>. Acesso em: 16 setembro de
2016.
LOPES, Sérgio. CSS fácil, flexível e dinâmico com LESS. Disponivel em: <http://blog.caelu
m.com.br/css-facil-flexivel-e-dinamico-com-less/>. Acesso em: 2 de outubro de 2016.
NIEDERAUER, Juliano. Web interativa com Ajax e PHP. São Paulo: Novatec Editora,
2007.
MAZZA, Lucas. HTML5 e CSS3 Domine a web do futuro. São Paulo: Casa do Código,
2014.
SOUZA, Natan. CSS menos sofrido com Sass. Disponivel em: <http://blog.caelum.com.br
SOUSA, Jailton. O que é Back-End ? - 05 Tudo que você precisa saber antes de estudar
programação. Dispoível em: <https://www.youtube.com/watch?v=JWUfoTARCtI>. Acesso
em: 18 de outubro de 2016.
SOUZA, Alberto. Java EE: Aproveite toda a plataforma para construir aplicações. São
Paulo: Casa do Código, 2015.
TEMPLE, André et al. Programação Web com Jsp, Servlets e J2EE. Disponível em:
<http://conteudo.icmc.usp.br/pessoas/mello/livro-j2ee.pdf>. Acesso em: 25 de outubro de
2016.
W3schools. The HTML DOM (Document Object Model). Disponível em: <http://www.
w3schools.com/js/js_htmldom.asp>. Acesso em: 23 de setembro de 2016.
ZEMEL, Tárcio. CSS Eficiente: Técnicas e ferramentas que fazem a diferença nos seus
estilos. São Paulo: Casa do Código, 2014.
¹ Aluno do Curso Superior de Tecnologia em Redes de Computadores da Universidade Estadual de Goiás
² Professor do Curso Superior de Tecnologia em Redes de Computadores da Universidade Estadual de Goiás