Escolar Documentos
Profissional Documentos
Cultura Documentos
Catalogação na Fonte preparada pela Biblioteca Comunitária “Wolgran Junqueira Ferreira” do IFSP –
Câmpus São João da Boa Vista
Professor Convidado 1
Titulação
Instituição
Professor Convidado 2
Titulação
Instituição
Steve Jobs
CANDIDO, Paulo Henrique Nogueira. Análise de Tecnologias para desenvolvimento
Web produtivo. 2017. Trabalho de Conclusão de Curso (Monografia) – Insti-
tuto Federal de Educação, Ciências e Tecnologia, Câmpus São João da Boa
Vista, São João da Boa Vista - SP. 2017.
RESUMO
Na pesquisa serão abordadas tecnologias que auxiliam no desenvolvimento de aplicações
web com a finalidade de obtenção de códigos mais organizados, de fácil manutenção e escrita
ágil, trazendo como resultado um processo de desenvolvimento de software produtivo. A
principal motivação foi a “correção” de um sistema web informatizado denominado UNIF,
criado por uma turma do Curso Técnico Integrado em Informática do ano de 2014, para
solucionar a problemática na gestão da Coordenadoria de Extensão do Instituto Federal
de Educação, Ciência e Tecnologia Câmpus São João da Boa Vista, desencadeando um
ambiente informatizado nas atividades corriqueiras como divulgação de atividades de
extensão, eventos, palestras e minicursos ofertados pelo câmpus, com auxílio de Tecnologia
da Informação. Esta pesquisa foi elaborada em um modelo de análise qualitativa dos
códigos produzidos que busca observar os ganhos da utilização de tecnologias como HTML5
e CSS3 para desenvolvimento front-end, Laravel Framework PHP no desenvolvimento
back-end e MySQL para persistência de dados no software intitulado UNIF, resultado do
trabalhos destes alunos do curso integrado.
ABSTRACT
In the research will be approached technologies that help in the development of web
applications for the purpose of obtaining more organized codes, easy maintenance and agile
writing, resulting in a process of development of productive software. The main motivation
was the "correction" of a computerized web system called UNIF, created by a group of the
Technical Course Integrated in Informatics of the year 2014, to solve the problem in the
management of the Extension Coordination of the Federal Institute of Education, Science
and Technology Campus São João da Boa Vista, triggering a computerized environment in
everyday activities such as dissemination of extension activities, events, lectures and mini
courses offered by the campus, with the help of Information Technology. This research was
elaborated on a qualitative analysis model of the produced codes seeking to observe the
gains of using technologies such as HTML5 and CSS3 for front-end development, Laravel
PHP Framework in the back-end development and MySQL for data persistence in the
software titled UNIF, Result of the work of these students of the integrated course.
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3 Organização Deste Trabalho . . . . . . . . . . . . . . . . . . . . . . . 23
2 REFERENCIAL TEÓRICO . . . . . . . . . . . . . . . . . . . . . . . 25
2.1 HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 CSS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 FRAMEWORKS FRONT-END . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 SASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 BOOTSTRAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.1 FRAMEWORKS BACK-END E LARAVEL . . . . . . . . . . . . . . . . . . 31
2.5 POSTMAN E UNIVERSAL CODE LINES COUNTER . . . . . . . . 32
2.6 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . 33
3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 Passo 1 - Definição e redução de escopo do estudo de caso adotado
(Projeto UNIF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Passo 2 - Escolha das tecnologias a serem adotadas . . . . . . . . . 36
3.3 Passo 3 - Aplicar os Frameworks escolhidos no Projeto UNIF . . . . 38
4 RESULTADOS E DISCUSSÃO . . . . . . . . . . . . . . . . . . . . . 41
4.1 Passo 4 - Definição das métricas para aplicação da análise . . . . . 41
4.2 Passo 5 - Análise quantitativa e qualitativa dos códigos produzidos 42
4.2.1 Ambiente de aplicação da codificação e análises . . . . . . . . . . . . . . . 42
4.2.2 Desenvolvimento Front-End (Lado Cliente) . . . . . . . . . . . . . . . . . 43
4.2.3 Desenvolvimento Back-End (Lado Servidor) . . . . . . . . . . . . . . . . . 45
4.2.3.1 Modelo Lógico e Físico do Banco de Dados . . . . . . . . . . . . . . . . . . . 45
4.2.3.2 Linhas de Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.3.3 Interação Cliente-Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Passo 6 - Discussão sobre as principais vantagens e desvantagens
com a adoção das tecnologias selecionadas . . . . . . . . . . . . . . . 59
4.3.0.1 Aplicação desenvolvida com Laravel. . . . . . . . . . . . . . . . . . . . . . . 59
4.3.0.2 Aplicação desenvolvida com PHP puro. . . . . . . . . . . . . . . . . . . . . . 60
5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1 Sugestões para Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . 61
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
21
1 INTRODUÇÃO
1.1 JUSTIFICATIVA
É de grande importância o objetivo do projeto UNIF, que almeja melhora na
coordenadoria de extensão do campus, para fins de maior e melhor exposição das atividades
que a mesma oferta ao decorrer dos semestres e anos letivos, atividades essas como:
minicursos, viagens, vistas técnicas, dentre outras. Como consequência, a falta de um
veículo central para canalização dessas informações e principalmente em ambiente web,
torna este trabalho limitado no sentido de nível de exposição daquilo que a coordenadoria
deseja divulgar. A premissa do software é justa e uma necessidade real, com base no relato
anterior indicando fatores que a aplicação web criada pelos alunos do ensino integrado
como a não ideal em ambiente de produção e um projeto de extensão destinado para
evolui-la, a pesquisa tem como motivação análise das tecnologias também mencionadas
anteriormente para adequar este software para internet pensando em desenvolvimento
produtivo. O desenvolvimento produtivo torna o processo de criação de software em
diversas ocasiões mais adequados para adotar como metodologia, pois gera acerca da
aplicação uma expectativa maior no que diz respeito à entrega funcional dentro do prazo
estipulado, tendo em vista, a pesquisa levanta quais as vantagens e desvantagens da adoção
de tal técnica.
1.2 OBJETIVOS
Nesta seção serão apresentados os objetivos gerais e específicos desta pesquisa.
2 REFERENCIAL TEÓRICO
2.1 HTML5
É a última versão estável do HTML (HyperText Markup Language), tecnologia
responsável pela marcação e estruturação dos elementos que serão expostos na página de
um web site ou web app, fundamental em sua existência para o que será visualizado pelo
usuário final, ou seja, o resultado que aparecerá em sua tela.
A versão 5 da linguagem vem com novos elementos, atributos, comportamentos e
um conjunto maior de tecnologias que permite o desenvolvimento de aplicações e web sites
mais diversos e poderosos(EIS e FERREIRA, 2012). Um dos objetivos para a criação desta
versão, que surgira no início do ano de 2008, provida pelo World Wide Web Consortium
(W3C), era criar um padrão universal para desenvolvimento das páginas e com maior
compreensão por parte dos desenvolvedores no que diz respeito a formatação do seu código
fonte, tornando os resultados da marcação (utilizando tags da linguagem) menos plurais.
26 Capítulo 2. Referencial Teórico
2.2 CSS3
Também é a versão mais recente da tecnologia, sendo desenvolvido constantemente
após o início dos anos 2000, por Eric A. Meyer e Bert Bos no W3C. Engloba o resultado
que será exibido na tela do usuário da aplicação, mas com uma finalidade de “estilizar” os
elementos contidos nas páginas, tais quais: posicionamento de textos, imagens, cor e serifa
das fontes, famílias das fontes, formatações do conteúdo em si ligados a esquema de cores
e etc.
O CSS (Cascading Style Sheets) possui sua sintaxe de organização no espoco do có-
digo assim como o HTML e outras linguagens possuem os seus, e sentiu-se uma necessidade
2.3. FRAMEWORKS FRONT-END 27
por parte dos desenvolvedores para aprimorar uma importante etapa do desenvolvimento
de aplicações para melhores resultados na tecnologia, focando principalmente padronização,
produtividade, reaproveitamento de código (questão importante para desenvolvimento de
softwares de alto desempenho) e inovações no sentido de melhorar a iteração e velocidade
de apresentação dos layouts nos web apps e sites disponíveis para os usuários. Sendo o
responsável por formatar a informação que é entregue pelo HTML como imagens, textos,
vídeos, áudios entre outros elementos, a versão 3 da tecnologia trouxe a possibilidade de
seleção de elementos específicos, gradientes em textos, bordas arredondadas, controle de
rotação, controle de perspectiva, animações, controle básico 3D e demais features (EIS e
FERREIRA, 2012).
O código abaixo deixa claro a evolução da usabilidade do CSS3 com relação as
versões antigas, tornando possível a simples adição de um círculo em uma página web sem
a necessidade da importação de um arquivo de imagem na tag "img"do HTML, criando o
próprio apenas com uma classe CSS usando o recurso de arredondamento border-radius:
1
2 . circle {
3 width : 200 px ;
4 height : 200 px ;
5 line - height : 200 px ;
6 border - radius : 50%; /* arredondamento */
7 -moz - border - radius : 50%;
8 - webkit - border - radius : 50%;
9 float : none ;
10 margin : 0 auto ;
11 }
Aspectos de design e layout devem seguir conceitos pré-definidos pelos criadores das
aplicações, a versão 3 do CSS contribui muito para isto, e trata de tornar mais interativo o
resultado final do front-end que será apresentado para o usuário (HTML combinado com
CSS). Outra particularidade da tecnologia é a implementação do conceito de orientação a
objetos para facilitar o desenvolvimento e a futura manutenção das aplicações, tornando o
desenvolvimento mais produtivo.
2.3.1 SASS
Com o objetivo de tornar o CSS ainda mais dinâmico, a partir do ano de 2006, foram
criadas formas para auxiliar e estender a linguagem tornando seus recursos ainda mais
fáceis de manuseio. Para esta etapa de desenvolvimento, são indicados os pré-processadores,
tecnologia para alinhamentos de regras CSS, reaproveitamento de escrita e uso de variáveis
e funções no mesmo (SOUZA, s.d.).
A importância de aderir estes novos recursos, como o SASS (Syntactically Awesome
Style Sheets) para funcionalidades padrões na criação das aplicações é necessariamente
recomendável. O SASS trabalha com a ideia de escrita do código em um arquivo .scss,
que por sua vez não pode ser interpretado pelos navegadores de internet, e posteriormente
serem compilados em um terminal com o auxílio da lingugem Ruby para ser processado e
ter como saída um arquivo .css
Sendo assim, o código abaixo exemplifica a ganho poderoso de manutenibilidade
do CSS em aplicações web de grande porte:
1
2 /* Arquivo SASS ( input ) : */
3
4 $primary - color : #3 bbfce
5 $margin : 16 px
6
7 . content - navigation
8 border - color : $primary - color
9 color : darken ( $primary - color , 10%)
10
11
12 /* Arquivo CSS ( output ) : */
13
14 . content - navigation {
15 border - color : #3 bbfce ;
16 color : #2 b9eab ;
17 }
2.3. FRAMEWORKS FRONT-END 29
2.3.2 BOOTSTRAP
Criado em meados de 2011 por Mark Otto e Jacob Thornton, desenvolvedores
do Twitter, este Framework é a junção das tecnologias front-end citadas anteriormente,
alinhado com a filosofia mobile first, possibilita aos desenvolvedores agilidade e facilidade
no processo de criação das páginas HTML e folhas de estilo CSS (SILVA, 2015). Esta
biblioteca pode ser adquirida gratuitamente no site: http://getbootstrap.com/, e precisa
ser importada na página principal da aplicação para ser utilizada.
O Bootsatrp trabalha com um sistema de grid possuindo 12 colunas, os grids são
conjuntos de classes CSS que definem a posição dos elementos dispostos no layout da
aplicação de acordo com a resolução ou dispositivo que irá acessa-la (SILVA, 2015). Com
esta tecnologia, a criação se torna veloz por possuir um arquivo denominado bootstrap.css
no diretório "css"da biblioteca, com milhares de classes pré-definidas já estilizadas de
acordo com as necessidades genéricas de uma aplicação web, viabilizando a possibilidade da
criação de sites responsivos, páginas com habilidade de se adequar a qualquer dispositivos
que irá acessa-la apresentando seu conteúdo. Este Framework também possui integração
com jQuery, uma biblioteca da linguagem de scripts JavaScript usada para deixar as
aplicações mais dinâmicas com controle de eventos e interação dos usuários ainda melhores.
Será apresentada a estrutura de pastas da biblioteca na Figura 2:
30 Capítulo 2. Referencial Teórico
2.4 PHP
Não menos importante, após as etapas de criação do front-end da aplicação,
chegamos ao “motor” que fica por trás de toda parte visual e trata do funcionamento dos
web apps e sites que necessitam destes recursos. A linguagem de programação utilizada
para esse dever é o PHP, iniciando com o significado de Personal Home Page Tools, criada
por Rasmus Lerdorf em 1994, costumava ser usada em projetos pessoais, alguns anos
depois, teve seu código aberto e possou a adotar características de diversos desenvolvedores
que contribuíram ao projeto para torna-la com a nomenclatura que conhecemos hoje, um
acrônimo recursivo de PHP: Hypertext Preprocessor (DALL’OGLIO, 2015).
O PHP é uma linguagem interpretada no server-side(lado servidor), é necessário
que o servidor possua um interpretador devidamente configurado (MILETTO e BERTAG-
NOLLI, 2014). A Figura 3 ilustra seu funcionamento, as classes e controladores codificados
no back-end recebem requisições do client-side (lado cliente), que por sua vez terão sua
codificação em PHP interpretadas no servidor e retornarão uma resposta ao client:
2.4. PHP 31
Esta linguagem foi escolhida por ser simplificada no que diz respeito a sua usabili-
dade para solucionar problemas em softwares web, trazendo consigo uma fácil adaptação do
desenvolvedor no domínio da mesma para implementar sua lógica e algoritmos direcionados
a proposta do projeto.
web convencionais, o software Postman simula através de sua interface uma interação com
a URL (Uniform Resource Locator) das aplicações criadas para envio de parâmetros dos
quais a requisição aguarda, exibindo o status para a requisição, podendo simular envios
de parâmetros com os métodos GET, POST, PUT, DELETE entre outros (POSTMAN,
2017).
O software Universal Code Lines Counter é uma aplicação para contagem de
linhas dos códigos fontes resultantes em um processo de desenvolvimento de software,
Com este aplicativo é possível obter um relatório detalhado com as linhas, espaços em
branco, comentários e linhas de código mescladas com comentários. Possui uma simples
instalação e é compatível com linguagens de programação como: AutoIt, C, CSS, COBOL,
Delphi/Pascal, Fortran, HTML, Java, JavaScript, MetaQuotes Language 4/5 (MQL),
Modula 2/3, MySQL, Perl, PHP, Prolog, Python, Ruby, VBScript/ASP, Visual Basic e
XML (AB-TOOLS, 2017).
3 METODOLOGIA
Figura 7 – Desenvolvimento das aplicações com Código Puro e Código utilizando Fra-
meworks.
4 RESULTADOS E DISCUSSÃO
• Servidor Local - XAMPP para Windows com Apache + MariaDB + PHP 7.0.25;
O software web possui um total de cinco interfaces para à aplicação dos testes
sugeridos nesta pesquisa, sendo elas páginas para autenticação do usuário como mostrado
anteriormente, e mais três para a aplicação dos testes de CRUD envolvendo o módulo de
cadastro de cursos extraído da documentação, A Figura 11 exposta demostra o resultado
de uma das três telas direcionadas para este propósito:
4.2. Passo 5 - Análise quantitativa e qualitativa dos códigos produzidos 45
O software com escopo reduzido possui duas tabelas para a persistência e aplicação
da análise, sendo elas uma tabela usuários e outra cursos, elas representam duas entidades
do aplicativo para a manipulação de objetos a fim de serem definidos e manipulados na
linguagem de programação, para serem posteriormente persistidos na base de dados. A
Figura 12 exposta demonstra o Modelo Lógico da base de dados utilizada nos testes:
46 Capítulo 4. Resultados e Discussão
A métrica Linhas de Código será aplicada aos blocos de códigos das linguagens
PHP e SQl para confronto da quantidade de escrita que cada método de desenvolvimento
proporciona seguindo regras de sintaxe e lógica de programação para o funcionamento do
fluxo da aplicação. O trecho de código abaixo demonstra um bloco para autenticação do
usuário na aplicação desenvolvida apenas com scrptis PHP fora de um padrão de projeto
e isento do paradigma de Programação Orientada a Objetos:
1
2 <? php
3
4 require ’ banco . php ’;
5 $pdo = Banco :: conectar () ;
6
7 session_start () ;
8 error_reporting (0) ;
48 Capítulo 4. Resultados e Discussão
53 < link href =" css / bootstrap . css " rel =" stylesheet " >
54 </ head > ’;
55 echo ’< div class =" container " >
56 < div class =" row " >
57 < div class =" col - md -8 col - md - offset -2" >
58 < div class =" alert alert - danger alert - dismissable " >
59 <a href ="#" class =" close " data - dismiss =" alert " aria -
label =" close " >& times ; </a > </ div >
60 </ div >
61 </ div >
62 </ div > ’;
63 exit ;
64 }
65 }
66 ?>
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
52 Capítulo 4. Resultados e Discussão
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
4.2. Passo 5 - Análise quantitativa e qualitativa dos códigos produzidos 53
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
54 Capítulo 4. Resultados e Discussão
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
4.2. Passo 5 - Análise quantitativa e qualitativa dos códigos produzidos 55
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
56 Capítulo 4. Resultados e Discussão
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
4.2. Passo 5 - Análise quantitativa e qualitativa dos códigos produzidos 57
Fonte: Elaborado pelo autor com base no software Universal Code Lines Counter.
58 Capítulo 4. Resultados e Discussão
camadas e fazem a escrita mais reduzida, através do seu sistema de Facades que fornecem
uma interface "estática"para classes que estão disponíveis no contêiner de serviços do Laravel.
Outras vantagens estão relacionadas com seu sistema de Migrations para versionamento,
controle e criação de base de dados. O Route do Laravel proporciona maior flexibilidade
e facilidade para passagem de parâmetros e escrita de URL’s amigáveis no processo de
tratamento das requisições e respostas no fluxo de uma aplicação.
Já em termos de desempenho, por se tratar de um Framework e possuir inúmeros
Superclasses com milhares de linhas de códigos e as mesmas serem estendidas nas Classes
que criamos para tratamento das regras de negócio das aplicações, seu desempenho
referente a tempo de requisição e resposta, demonstra-se inferior ao de aplicações criadas
com código PHP puro, podendo tornar-se um problema ao ser adotada em aplicações
de grande porte, que demande disponibilidade para inúmeros usuários simultaneamente,
necessitando ser repensado a adoção de facilidades e recursos que o tornam ágil no processo
de desenvolvimento.
5 CONCLUSÃO
Este trabalho teve como objetivo reunir um conjunto de informações que possam ser
relevantes para a comunidade de desenvolvimento de softwares no ambiente web, cujo foco
principal foi informar baseado em pesquisa acadêmica de cunho científico, qual tomada de
decisão se enquadra em determinados projetos, quais tecnologias ou tendências podem ser
utilizadas e como fazê-las de modo a respeitar padrões e primar pela qualidade do produto
final. A relevância da aprendizagem e valor do conhecimento também são importantes
e foram discutidos na pesquisa a fim de contribuir não somente com os envolvidos mas
também os estudantes acadêmicos para cursos relacionados a Tecnologia da Informação,
fomentando debates de forma sadia e argumentativa com o objetivo único de explorar o
que tecnologias e métodos possuem de vantagens e desvantagens
Esta pesquisa possui um conjunto de objetivos atingidos nas seguintes seções:
REFERÊNCIAS
Leanpub, 2015.
SILVA, Pablo Henrique. Estudo e implementação de web services utilizando Zend
Framework. 2011. Trabalho de Conclusão de Curso. Universidade Tecnológica Federal do
Paraná.
SILVA, Wesley Willians Ramos da. Bootstrap 3.3. 5: Aprenda a usar o framework
Bootstrap para criar layouts CSS complexos e responsivos. 1. Novatec Editora, 2015.
SOUZA, Natan. Sass - Aprendendo pré-processadores CSS. Casa do Código - Série
Caleum.
TURIN, Rodrigo. PHP e Laravel - Crie aplicações web como um verdadeiro artesão.
Casa do Código - Série Caleum.
ZAPALOWSKI, Vanius. Análise quantitativa e comparativa de linguagens de
programação. 2011.