10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
FERRAMENTAS DE
DESENVOLVIMENTO WEB
AULA 1
Prof. Yanko Costa
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 1/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
CONVERSA INICIAL
Em nossas aulas, serão abordados os conhecimentos necessários
para a utilização das
tecnologias que envolvem o desenvolvimento de sistemas web
e a possibilidade de
reaproveitamento dessas tecnologias no ambiente móvel. As
aulas buscam relacionar os aspectos
principais do desenvolvimento de sistemas
que são acessados via navegador e disponibilizados na
internet, como esses sistemas
têm evoluído sua interface com o usuário e quais tecnologias
contribuíram para
isso.
Nesta aula, serão abordados importantes conceitos que
facilitarão o entendimento de algumas
tecnologias incorporadas ao
desenvolvimento dos sistemas, as quais serão apresentadas nas aulas
seguintes.
Também será apresentada a linguagem de marcação HTML, que será utilizada como
base
na construção de interfaces nas demais aulas.
TEMA 1 – DESENVOLVIMENTO WEB
O desenvolvimento de sistemas foi se transformando à medida
que as interfaces usadas para o
acesso às informações dos sistemas foram
evoluindo: de telas de texto puro para interfaces gráficas.
A incorporação das
redes de computadores pelas empresas impulsionou a redistribuição do
processamento
executado pelos programas, podendo ser feito em diferentes dispositivos e
retornando o resultado para o usuário que pode visualizá-lo, estando em uma
localização diferente
de onde é feito esse processamento.
Esse novo contexto alterou o conjunto de conhecimentos que o
desenvolvedor precisava ter ao
projetar um sistema. Agora é preciso avaliar o
ambiente em que será executado, como será a
comunicação entre o usuário e a
interface e, também, a comunicação entre a interface e o conjunto
de regras necessárias
para a execução do sistema.
Para desenvolver um sistema, uma das primeiras coisas que são
percebidas como necessárias
pelo desenvolvedor é a linguagem de programação.
Apesar de uma linguagem de programação ser
indispensável, o entendimento e o
uso de tecnologias de rede são a base de apoio para o uso da
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 2/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
maioria dos sistemas
atualmente, principalmente ao considerar sistemas web, como também
aplicativos
em dispositivos móveis (smartphones, tablets e notebooks).
Um sistema web utiliza as tecnologias e ferramentas associadas
à internet como base para seu
desenvolvimento, e a navegação nesse tipo de
sistema tem como base o Uniform Resource Locator
(URL), que possibilita a
localização do recurso que contém a informação, podendo esse recurso ser
uma figura, uma página com diferentes conteúdos, um vídeo ou um sistema de
informação.
Como exemplo de localização de um recurso usando uma URL,
temos
“http://www.empresa.com.br/pasta/programa.php?opcao=12”, em que o
recurso é um programa
que receberá um parâmetro, vai ser executado e retornará
a informação; e
“http://www.site.org/pasta/imagem.png”, em que, nesse
caso, o recurso é uma imagem que será
retornada para o usuário.
A forma como o usuário interage com um sistema web foi
evoluindo com o tempo, e com a
aplicação de novas características e componentes
na criação de interfaces, foi possível a
implementação de aplicações padrão RIA
(Rich Internet Applications, ou “aplicações de internet
ricas”),
em que a interação do usuário se assemelha ao tipo de interação a que ele
estava
acostumado nos programas desktop (com isso, a
interface fica mais “rica” em detalhes) (Deitel;
Deitel, 2009, p. 313). Essas aplicações
são chamadas de “aplicações web” (web applications) pelo
órgão
internacional que padroniza o ambiente web, chamado de W3C (W3C, 2021b).
Para entender melhor a parte técnica que será apresentada futuramente,
devemos antes detalhar
alguns conceitos específicos, como arquitetura
cliente-servidor, tipos de aplicações no ambiente web
e aplicações web em
ambiente móvel.
1.1 CLIENTE-SERVIDOR
Tanenbaum e Bos (2015, p.
577) afirmam que “a web é fundamentalmente um sistema cliente-
servidor, no qual
o usuário é um cliente e um website é o servidor”. Considerando que a web é um
ambiente cliente-servidor e que trataremos de sistemas que vão trabalhar nesse ambiente,
vamos
entender melhor esse mecanismo.
Uma arquitetura cliente-servidor estabelece de início uma
forma de comunicação entre duas
entidades: uma que solicita uma
informação (cliente) e outra que responde a essa solicitação
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 3/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
(servidor).
Os dispositivos não precisam estar fisicamente na mesma localização: basta que
se tenha
um meio de transmissão das informações que possibilitem que um
dispositivo encontre o outro
(Tanenbaum; Bos, 2015, p. 68; Connolly; Begg, 2005, p. 58).
Figura 1 – Diferentes dispositivos em rede
Créditos: sergeyvasutin/Adobe
Stock.
Como exemplificado na Figura 1,
essa comunicação pode acontecer entre diferentes dispositivos.
A rede de
computadores cria um caminho padronizado para a troca de informações, mas
também
pode acontecer no mesmo dispositivo, em que uma aplicação cliente
solicita uma informação para
uma aplicação servidora que está em execução no
mesmo dispositivo.
Segundo Connolly e Begg (2005, p. 57), a estruturação dessas aplicações
pode ser feita de duas
formas.
a. Tier 2 (duas camadas): o aplicativo cliente (camada 1) recebe, processa
e apresenta os
dados do resultado da solicitação e o armazenamento dos dados e
validação de acesso estão
localizados no servidor (camada 2).
b. Tier
3 (três camadas): o processamento fica distribuído em três componentes, podendo
ser feito em parte pelo aplicativo no cliente (camada 1) que fica responsável
pela apresentação
dos dados, por um sistema intermediário (middleware)
localizado em um servidor que realiza o
processamento das regras de negócio
(camada 2) e pela base de dados em outro servidor
(camada 3).
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 4/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Figura 2 – Sistemas em 2 e 3 camadas
Créditos: A
Stefanovska/Adobe Stock.
O uso de camadas depende do tipo de sistema que está
sendo desenvolvido, da capacidade de
processamento requerida e da quantidade
de usuários que precisam acessar o sistema de forma
simultânea.
Em nossa disciplina, a arquitetura cliente-servidor será
utilizada associada aos protocolos e às
formas de comunicação utilizadas na internet,
sendo o protocolo HTTP (HyperText Transfer Protocol
ou “protocolo de
transferência de hipertexto”) utilizados como base da comunicação entre os
programas exemplificados nas demais aulas.
1.1.1 HYPERTEXT TRANSFER PROTOCOL (HTTP)
O HTTP não é um conceito, mas um dos mais utilizados
protocolos de comunicação na internet.
Ele é a base do ambiente web, sendo
usado na comunicação das solicitações dos navegadores e nas
respostas dos
servidores.
Conforme Tanenbaum e Wetherall (2011,
p. 664), no início da web, os conteúdos armazenados
nos servidores eram estáticos,
ou seja, arquivos contendo páginas de texto ou figuras eram
transferidos para o
cliente usando um aplicativo chamado browser (navegador) e a forma
básica de
construir esses conteúdos era utilizando uma linguagem de marcação
chamada HTML (a qual
veremos mais adiante).
Para disponibilizar um sistema web no servidor, um serviço
HTTP precisa ser instalado e
configurado, para que seja executado
indefinidamente, aguardando alguma solicitação via rede. Essa
solicitação pode
ser criptografada ou não, e utiliza como padrão as portas[1] 443
(criptografado) e 80
(normal).
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 5/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
1.1.2 PROGRAMAÇÃO NO SERVIDOR
Um dos sistemas que implementam o HTTP mais utilizados é o
sistema Apache[2], que, além
de
receber e responder às solicitações HTTP, também tem mecanismos para
incorporar uma linguagem
de programação que pode ser usada no desenvolvimento
de sistemas no lado servidor. Outros
serviços HTTP também podem ser utilizados
(por exemplo, Nginx, Nodejs), mas um fator que vai
tornar esses serviços
propícios para o desenvolvimento de sistemas no lado servidor é a integração
com alguma linguagem de programação.
Com a utilização de uma linguagem de programação incorporada
ou integrada ao um serviço
HTTP, o desenvolvedor terá acesso ao banco de dados,
a outros servidores, a sistemas de arquivos e
demais recursos de forma
centralizada. Essa centralização pode ser muito importante para
compartilhar
informações atualizadas entre vários clientes.
1.2 APLICAÇÕES WEB
No início da internet, ao desenvolver um sistema em um ambiente
web, o processamento era
feito somente no servidor e o cliente apenas
solicitava a nova página que traria outras informações.
Nesse método, tínhamos
as “páginas dinâmicas”: sites em que as páginas eram construídas na
medida em
que eram solicitadas. Assim, o usuário navegava nos menus dos sistemas e clicava
nas
opções. Ao selecioná-las (clicando em um hiperlink, por exemplo), uma
solicitação era enviada ao
servidor e uma nova página chegava ao navegador com
todas as informações. Esse contexto era
chamado de MultiPage Applications
– MPA (ou “aplicação de múltiplas páginas”).
Todo o processamento era feito no servidor, e conforme a
quantidade de usuários ia
aumentando, multiplicava-se a capacidade do servidor.
Em sistemas menores, com poucos usuários,
essa situação não chegava a impactar
no ambiente do servidor e muitos sistemas ainda têm essa
estrutura. No entanto,
em sistemas com milhões de acessos, a infraestrutura necessária para manter
o
sistema com um desempenho aceitável era muito grande.
Uma questão que pesava nesse tipo de processamento é que toda
a página (layout, figuras,
estrutura, dados) precisava ser refeita na tela do
navegador. Isso tinha um impacto no servidor
(processava toda a tela
novamente), no cliente (redesenhava toda a tela novamente) e na
comunicação
(todos os bytes da tela eram transmitidos novamente).
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 6/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Para criar uma alternativa para essa estrutura e diminuir a
crescente demanda por mais
processamento no servidor, a atenção voltou-se para
a forma como uma aplicação de desktop (em
duas camadas) era
desenvolvida. A tela e o processamento eram manipulados pelo lado do cliente e
apenas a informação específica que precisava ser atualizada era solicitada ao
servidor. Em um sistema
web, esse método é chamado de Single Pages
Applications – SPA (ou “aplicação de página única”).
Na SPA, o servidor envia para o cliente um código que será
executado no navegador e, quando a
informação precisar ser atualizada, esse código
no cliente envia uma solicitação contendo apenas
essa necessidade para o
servidor.
Dessa forma, a primeira transmissão enviada para o usuário
conterá o código principal e, assim,
uma boa parte do processamento será transferida
para o cliente e o servidor centralizará os dados.
Com o aumento da quantidade
de usuários acessando o servidor, como parte do processamento vai
para cada
usuário (cliente), os recursos do servidor (memória, processamento) podem ser
menores.
Como vantagem adicional, esse código que será executado no
cliente poderá trabalhar as
interações com o usuário de forma mais rápida e
poderá criar personalizações no layout de forma
mais dinâmica.
Tanto as aplicações MPA quanto as aplicações SPA são
consideradas aplicações web (web
applications), desde que tornem a
experiência do usuário semelhante ao uso de aplicações desktop.
Para desenvolver tanto uma aplicação MPA quanto uma aplicação
SPA, o desenvolvedor
precisará conhecer ferramentas e tecnologias usadas no
navegador do cliente (por exemplo, HTML,
CSS, JavaScript) e no servidor (por exemplo,
banco de dados, plataforma HTTP). Para aprofundar o
contexto de processamento
no lado cliente, incluiremos aqui, futuramente, um detalhamento maior
sobre o Cascading
Style Sheets – CSS (ou “folha de estilo em cascata”), criado com o
propósito de
prover um mecanismo mais flexível para organizar a estética dos
documentos HTML e do JavaScript,
linguagem de programação inserida no navegador
para manipular o documento HTML e interagir
com este.
1.3 PROGRESSIVE WEB APP (PWA)
Outro ambiente que tem sido alvo do desenvolvimento de
sistemas atuais é o móvel (mobile),
em que o smartphone é o
principal dispositivo. Esse ambiente tem algumas características próprias,
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 7/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
por
exemplo, sensores, sistema operacional e interface e, com isso, tem um
desenvolvimento
diferenciado.
No entanto, o desenvolvimento web tem também algumas
tecnologias em comum com o
ambiente móvel, em que podemos citar: ambos usam a
rede de comunicação para acessar bases de
dados, um navegador web também está
presente nos dispositivos móveis e as linguagens de
programação são as mesmas.
Essa percepção vai orientar a possibilidade de poder reutilizar o
código
dessas aplicações entre esses ambientes.
Uma opção que foi criada para o reaproveitamento de código de
uma aplicação web e que
possibilita ter a experiência de uso semelhante a um
aplicativo usado em aparelhos móveis é o
Progressive Web App – PWA (ou “aplicativo
web progressivo”). Com esse tipo de configuração da
aplicação web, o sistema
pode ser instalado no smartphone de forma semelhante a um aplicativo,
podendo ser identificado na tela inicial do aparelho ou na lista de
aplicativos. Nesse caso, a instalação
não é feita pela loja de aplicativos dos
sistemas Android ou IOS, mas por meio de uma interface no
navegador do smartphone.
Algumas características fazem esse tipo de configuração ser
diferente de um simples atalho para
um site: a aplicação web deve ter um
arquivo de configuração chamado de manifesto, que indica
diversos
parâmetros a serem utilizados na sua instalação (por exemplo, nome, ícone,
local), deve
poder interceptar a conexão com a rede e desviar o acesso ao
dispositivo local nos casos de estar
sem rede (off-line), o acesso externo deve
ser criptografado (https), deve ser usável tanto em
navegadores com menos
recursos (usando menos funcionalidades) quanto em navegadores mais
avançados e
deve ser utilizável independentemente do tamanho da tela (responsivo).
Deve-se considerar que esse tipo de alternativa, apesar de
melhor integrada com o sistema
operacional, continua sendo uma aplicação web, que
é instalada no dispositivo móvel e automatiza a
execução de um navegador
reconfigurado para não mostrar seus controles e menus; entretanto, para
o
usuário, a utilização é semelhante à de um aplicativo nativo (MDN Web Docs, 2021).
TEMA 2 – BIBLIOTECAS E FRAMEWORKS
Durante o desenvolvimento de um sistema, algumas tarefas são
genéricas a ponto de poderem
ser necessárias em outros sistemas. É o caso de
leitura de banco de dados, compactação de dados,
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 8/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
conversão de dados, emissão de
alertas etc. Nesses casos, o desenvolvedor que já tem alguma
experiência em
programação e com bom nível de abstração percebe que poderá utilizar essas
tarefas
novamente, cria um repositório dessas funções (muitas vezes em arquivos
separados) e inclui essas
funções nos demais sistemas que desenvolve.
Em alguns casos, tais funções são tão práticas e genéricas que
o desenvolvedor acaba
divulgando para outros desenvolvedores e esse repositório
vai sendo disseminado. Um repositório
desse tipo é chamado de biblioteca
(em inglês, library ou lib).
Quando todo um conjunto de funções do sistema pode ser reaproveitado
em outros sistemas,
por exemplo, o processo de acesso (login e senha), a
navegação nos menus ou a consistência de
formulários de usuários, essas partes
podem ser agrupadas em um framework que, por sua vez,
pode conter
ou acessar bibliotecas. Os frameworks são usados como base para o
desenvolvimento de
aplicações que têm funcionamento semelhante.
2.1 TIPOS
Existem diversos tipos de bibliotecas e frameworks. As
bibliotecas podem se limitar a
componentes específicos, como manipulação de
imagens, compactação, renderização 3D, protocolos
de rede, para citar alguns. O
próprio sistema operacional apresenta um conjunto de bibliotecas que
podem
também ser utilizado para o desenvolvimento de programas independentes.
Os frameworks também podem compor um escopo específico,
como frameworks para layout,
desenvolvimento de aplicações móveis,
desenvolvimento de sistemas corporativos ou
desenvolvimento de sites dinâmicos,
por exemplo. Em muitos casos, é o framework que administra o
fluxo dos
dados e a interação com o usuário.
Aqui vamos abordar o uso de framework no
desenvolvimento de layout (Bootstrap) e um caso no
desenvolvimento de
aplicação web (Angular).
TEMA 3 – HYPERTEXT MARKUP LANGUAGE (HTML)
A estruturação e apresentação das informações para o usuário é
um ponto fundamental para o
sistema ser considerado útil. Da mesma forma que um
livro, artigo ou página de revista, alguma
padronização é importante para
facilitar a identificação de partes importantes da informação. Títulos,
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 9/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
parágrafos, separadores de texto – como ponto-e-vírgula (;), vírgula (,) e ponto-final
(.) – e
espaçamento são usados como auxiliares na apresentação das informações.
Em um sistema informatizado, as informações são também
padronizadas e facilitam a navegação
entre as diferentes partes do sistema, bem
como auxiliam na apresentação de grandes volumes de
dados e são criados
mecanismos para destacar certos tipos de dados (erros, valores, saldos,
dependência).
Cada sistema poderia ter sua própria padronização, mas isso
resultaria em um custo adicional de
treinar o usuário para interpretar seu
formato diferenciado, assim como cada desenvolvedor teria que
aprender a criar essas
estruturas conforme o sistema.
A linguagem de marcação HTML foi criada por Tim Berners-Lee, em
1989, com o objetivo de
facilitar o compartilhamento de informações científicas
entre grupos de pesquisadores de diferentes
países, idiomas e sistemas de
computadores (W3C, 2021a).
Essa linguagem cria marcações para indicar que a informação é
um texto, um título, uma
referência para outras informações, um conteúdo de uma
tabela ou uma lista de opções. Conforme o
HTML vem evoluindo, são criadas novas
marcações ou variações na apresentação e interpretação de
marcações existentes.
Atualmente, o HTML está na versão 5 e sua criação, evolução e
padronização foi conduzida
desde 1989 pelo centro de pesquisas do Conseil
Européen pour la Recherche Nucléaire – Cern (ou
Conselho Europeu de Pesquisa
Nuclear). Depois, em 1994, foi criado um consórcio de entidades
chamado W3C
para promover sua evolução e, após acordo com o W3C, o padrão HTML tem sido
mantido pelo grupo web Hypertext Application Technology Working Group – WHATWG
(Jaffe, 2019).
A apresentação de informações
estruturadas em marcações e outras tecnologias web tem
extrapolado a internet e
tem sido utilizada também para formatar textos em editores, planilhas
(Microsoft Docs, 2021) e até mesmo em interfaces de
sistemas operacionais (Microsoft Docs, 2019).
Para implementar a estrutura de HTML no conteúdo de sites e
sistemas, vamos verificar como
funciona a sintaxe e os principais marcadores.
3.1 SINTAXE HTML
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 10/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
A sintaxe de um marcador no HTML utiliza os símbolos < e
> entre o nome do identificador da
marcação inicial e </ e > para
indicar o fim da marcação. Esses marcadores são chamados de tag.
As tags básicas <html>, <head> e <body>
compõem a estrutura do documento, informadas as
partes visíveis e as
reservadas para configuração. As tags podem ser agrupadas e aninhadas
dentro
de outras tags. Os navegadores que interpretam o documento HTML não
fazem distinção se as tags
de início e fim estão na mesma linha ou em linhas
separadas. O documento todo poderia estar em
uma linha apenas que o
navegador conseguiria interpretar e mostrar as informações de forma
organizada.
Outra característica do navegador e do HTML é que se houver um
erro no documento (uma
escrita errada de uma tag ou a falta de um finalizador)
o navegador não interrompe a leitura e
mostra o erro: ele ignora a tag errada e
continua tentando interpretar o documento. O resultado final
pode variar no
caso de algum erro no documento, podendo a informação não aparecer, o texto ou
figura ficar na posição errada, o layout da tela ficar confuso ou não mostrar
nada. De qualquer
maneira, o navegador tentará mostrar algo e, em alguns casos,
e conforme o navegador, poderá
perceber o erro e mostrar o resultado correto.
No Quadro 1, temos um exemplo de um documento HTML básico que
pode ser acessado via
navegador, que por sua vez mostrará apenas o resultado da
interpretação das marcações, como
pode ser visto na Figura 3 a seguir. É
importante salientar que as marcações (tags) no HTML podem
ser escritas em
maiúsculo ou minúsculo.
Quadro 1 – Exemplo de documento HTML
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 11/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Fonte: Costa,
2021.
As informações que ficaram visíveis na Figura 3 estão usando a
formatação padrão do
navegador. Nesse exemplo específico, o que fica mais
aparente é o fundo de texto em branco, a letra
em cor preta e o tamanho
diferenciado entre a tag <h1>“ (título) e a tag <p>“ (parágrafo).
Diversos
outros parâmetros associados com marcações do HTML têm uma formatação
visual padrão, que
podem ser alteradas conforme veremos futuramente.
Figura 3 – Resultado do HTML no navegador
Fonte: Costa,
2021.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 12/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
No Quadro 2, temos a relação das principais tags do HTML e uma
breve descrição de sua função
no documento. Nas aulas práticas, serão feitos
roteiros de uso das principais tags para a criação de
documentos HTML e estas
também serão utilizadas nas aulas de CSS e programação mais adiante.
Quadro 2 – Resumo de tags do HTML
Tags de
componentes e estruturação do documento: Tags de
parametrização de textos:
Criação de Tabelas = < TABLE > Negrito = < B >, < STRONG >
Parágrafos = < P > Itálico = < I >, < EM >
Títulos = < H > Monospace = < CODE >
Quebra de linha = < BR > Sobre/subscrito = < SUP >, < SUB
>
Listas = < OL >, < UL > Delete/Insert = < DEL
>, < INS >
Formulários = < FORM > Abreviação = < ABBR >
Link = < A >
Separador = < HR >
Botão = < BUTTON >
Sessão = < DIV >
Texto = < SPAN >
Imagem = < IMG >
Texto pré-formatado = < PRE >
Quadro de visualização = < IFRAME >
Fonte: Costa,
2021.
Enquanto que na criação de páginas HTML estáticas para sites
podem ser utilizados editores
específicos para HTML ou um editor de texto puro[3],
no desenvolvimento de sistemas web, essas
tags que estruturam o documento e
formatam a informação são inseridas de forma automatizada. A
linguagem de
programação escolhida imprime a tag entre as informações que serão buscadas de
uma base de dados, de um sistema de arquivos, de outro sistema ou da entrada de
dados do usuário
(ver pseudocódigo no Quadro 3). Assim, a estrutura e o
conteúdo do documento HTML podem ter
variações conforme a frequência que os
dados são alterados na sua origem. Por esse motivo, são
chamadas de páginas
dinâmicas.
Quadro 3 – Exemplo de lógica para impressão de tag
HTML
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 13/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Fonte: Costa,2021.
O desenvolvedor necessita conhecer a linguagem de programação
escolhida, mas também como
as tags HTML funcionam. A falta de uma marcação
final ou o uso de uma marcação trocada em uma
tabela pode tornar a informação
do sistema ilegível ou confusa.
Como as tags vão estar sendo utilizadas em conjunto com uma
linguagem de programação, o
acréscimo de variáveis, repetições e estruturas de
decisão vão aumentar os cuidados que devem ser
tomados com os inícios e os fechamentos
de marcação, ou o aninhamento de tags.
As tags do HTML podem também ter parâmetros de configuração,
chamados de atributos. Em
algumas tags, sem algum desses parâmetros, a
funcionalidade da tag pode ficar prejudicada.
Esses atributos têm o formato “nome=valor” e ficam
dentro da tag a ser configurada, como
podemos ver nos exemplos a seguir.
<IMG
src=“figura.png”>, em que o atributo src com o valor figura.png
é utilizado para
informar qual arquivo de imagem será inserido no documento
pela tag IMG.
<P
id=“alerta”>, em que o atributo id marca um parágrafo com
um texto alerta.
Esses atributos vão auxiliar na integração do documento HTML
com outras tecnologias, como
CSS e JavaScript. Um atributo poderá indicar,
inclusive, um evento que será utilizado para criar uma
automatização na
tela, por exemplo, um clique com o botão direito do mouse em cima de uma
figura, o apertar de uma tecla de direção (seta) no teclado, ou o toque do dedo
em cima de uma
opção em uma tela touch screen[4].
TEMA 4 – HTML: CRIANDO LAYOUT
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 14/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Um sistema tem várias funções que precisam de interação com o
usuário. Seja para apresentar
um conjunto de informações, solicitar uma entrada
de dados, navegar entre partes do sistema ou
possibilitar a transmissão de um
vídeo, a tela do navegador precisa ser organizada de forma que o
máximo de
objetos possam ser utilizados pelo usuário de forma confortável e eficiente.
O menu de opções do sistema é uma peça-chave na organização da
tela principal do sistema,
assim como a área em que serão atualizadas as
informações.
Uma característica na interpretação do HTML é que ele respeita
somente as marcações ao
distribuir as informações na tela. Não adianta colocar
caracteres de espaço ou nova linha no texto,
pois o navegador poderá deixar o
conteúdo agrupado na mesma linha. Dessa forma, se precisar
quebrar a linha de
texto, criar colunas de informações ou posicionar imagens ao lado de uma lista
ordenada, será preciso inserir tags apropriadas que possam organizar essa distribuição.
Ao iniciar a construção de páginas web com muitas informações,
por falta de alternativa, as
tabelas (linhas e colunas) foram utilizadas para
posicionamento e diagramação. A possibilidade de
inserir tabelas dentro de
outras tabelas levou à criação de layouts complexos e com diferentes níveis
de
detalhes.
Com a criação e evolução do CSS (de que trataremos futuramente),
novas formas de
posicionamento e diagramação foram criadas e, com isso, o uso
das tabelas na diagramação de sites
diminuiu sensivelmente. Atualmente, sites
(ou telas de sistemas) que posicionam seus elementos sem
a necessidade de
tabelas na parte de diagramação são chamados de tableless (sem tabelas).
4.1 TABELAS
Apesar de ter sido criada para listar dados tabulares
(dispostos em linhas e colunas), uma das
primeiras formas de segmentar a tela
para a inserção de informações foi a construção de uma tabela
com linhas e
colunas que possam orientar o layout.
Apesar de simples para iniciar a criação de áreas no documento
HTML e distribuir informações, a
criação de layouts usando tabelas está caindo
em desuso em razão de problemas de desempenho
em layouts complexos e da
necessidade de adaptação das telas para diferentes tamanhos
(responsividade).
No entanto, ainda é uma forma didática de compreender como as informações
podem
ser distribuídas inicialmente. À medida que formos evoluindo no entendimento de
CSS e dos
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 15/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
frameworks de layout, poderemos usar o conceito de linhas e colunas
usado nas tabelas para
também posicionar as informações usando outros
mecanismos.
Na Figura 4, temos dois exemplos de utilização de uma tabela
com duas linhas e duas colunas
para separar quatro espaços que podem ser usados
para colocação de conteúdo. Em cada célula da
tabela, foi identificada a linha
e a coluna específica. Na primeira versão (esquerda), verifica-se que a
tabela
tem as bordas definidas, que podem ser identificadas as linhas e colunas. Na
versão seguinte
(direita), a mesma tabela está sem a definição das bordas, mas
as áreas continuam separadas.
Figura 4 – Uso
de tabela em layout
Fonte: Costa,
2021.
No Quadro 4, é mostrada a estrutura em HTML dessa tabela com
duas linhas e duas colunas,
com o seu código completo na lateral direita. No
exemplo, temos a tag <table>, que inicia a
construção da tabela; a tag
<tr>, que inicia a linha e finaliza com </tr>; a tag <td>,
que inicia a
coluna e finaliza com </td>; e, por fim, a tag </table”,
que finaliza toda a tabela. No código HTML
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 16/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
apresentado na lateral direita, todo
o documento é listado, inclusive as várias tags <br> (quebra de
linha)
usadas para pular linhas em branco, para, com isso, mostrar a frase area de
texto mais abaixo
na linha. Como o HTML não interpreta o enter como
um pulo de linha, é preciso colocar uma (ou
mais) tags específicas para isso.
Quadro 4 –
Estrutura de uma tabela
Fonte: Costa,
2021.
Na Figura 5, há novamente um exemplo de utilização de uma
tabela com duas linhas e duas
colunas, mas com um conteúdo mais próximo do real
(semelhante ao usado em sites e sistemas),
facilitando ao leitor o entendimento
de como são diagramadas as interfaces dos sistemas web
usando linhas e colunas.
Para atingir o tipo de formatação usado nesse exemplo da Figura 5, foram
também
utilizadas configurações de alinhamento, cor, espaçamento e bordas usando CSS.
Figura 5 – Utilização de tabela em layout de página
Versão da
tabela com borda definida (a)
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 17/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Versão da
tabela sem borda definida (b)
Fonte: Costa,
2021.
O exemplo da figura apresenta um campo de digitação para
pesquisa, em que o usuário deverá
inserir informações que o programa vai
coletar e usar no processamento local ou no servidor. Esta é
uma importante
parte do HTML, em que o usuário, ao invés de solicitar dados para o servidor,
poderá enviar dados. Veremos essa questão no tema seguinte.
TEMA 5 – HTML: COMUNICANDO-SE COM O USUÁRIO
Quando existe a necessidade de receber orientação ou
informação do usuário que está
operando o sistema web, o HTML apresenta tags
que possibilitam agrupar o conteúdo digitado (ou
selecionado pelo usuário) e
enviá-lo para ser processado por uma linguagem de programação.
O recebimento dessas informações passadas pelo usuário pode
ser feito no mesmo dispositivo,
ou enviada pela rede para outro equipamento que
vai fazer o processamento. O mecanismo é o
mesmo, e a localização do recebedor
da informação indicado nas tags do HTML é que definirá onde
será feito o
processamento.
5.1 HIPERLINKS
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 18/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Um mecanismo usado para facilitar o acesso a recursos e partes
do sistema é o hiperlink,
definido pela tag <A>. Usa-se a tag e uma URL para
acessar o documento HTML, que pode estar no
mesmo ou em outro servidor, e pode
ser um documento estático ou dinamicamente construído por
uma linguagem de
programação.
O hiperlink no HTML tem o formato como <a href=‘http://www.google.com.br’>
Site do Google
</a>. Isso indica que essa tag exige início <a>
e fechamento </a>, e apresenta um atributo essencial
href,
que indica qual recurso estará sendo vinculado. O texto que aparecer entre o
início e
fechamento da tag (“Site do Google”) será usado como palavra-chave
para chamar o recurso. Como
padrão de visualização, os navegadores vão sublinhar
a palavra-chave, indicando que pode ser
clicada para proceder com a
solicitação.
Para a execução de um programa no servidor, o hiperlink pode
indicar o endereço e qual
programa deve ser executado para retornar a
informação necessária. Para isso, no exemplo <a
href=‘http://local-do-servidor.com.br/programa.py’>
Calcula Saldo </a>, o hiperlink (ou apenas link,
na sua forma abreviada)
comunica-se com o navegador demandando que este solicite ao servidor
que
execute o programa.py e transmita o resultado do processamento.
O próprio documento que contém o hiperlink chamador pode ter
sido construído
dinamicamente por um programa em momento anterior. Ainda, o hiperlink
pode conter variáveis e
valores que serão enviados ao programa do
servidor que estará processando a solicitação. No último
exemplo da situação anterior,
temos: <a href=‘http://local-do-servidor.com.br/programa.py?
debito=200’>
Calcula Saldo </a>, em que o “programa.py” vai receber a variável debito
com um
valor de 200. Na verdade, na comunicação HTTP são enviados
apenas texto (strings), e o programa
que recebe o parâmetro deverá fazer
a conversão apropriada.
5.2 FORMULÁRIOS
Uma forma de coletar diferentes tipos de informações do
usuário é o mecanismo de formulário
do HTML representado pela tag <FORM>.
Nesse tipo de estrutura, é possível capturar diferentes
tipos de interação do
usuário com o navegador, como digitação de texto, seleção única, seleção
múltipla, deslizamento, que podem ser utilizados para diferentes dispositivos
de entrada, como
mouse, teclado, touch pad ou touch screen.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 19/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Na Figura 6, temos um exemplo didático de um formulário de
cadastro de produto, mostrando
algumas formas de coleta de informações do
usuário. Cada forma de coleta tem uma tag que
identifica tanto o formato quanto
as informações que serão extraídas para processamento posterior.
Figura 6 – Formulário de cadastro
Fonte: Costa,
2021.
Os formulários em HTML são estruturados com a tag inicial <form>
e finalizados com </form>.
Dentro dessa estrutura podem ser incluídas
outras tags gerais, mas o mais importante para esse
trecho são as tags
associadas ao formulário, como <input>, <textarea>
e <select>. Em todas as
opções usadas em formulários, é necessário
indicar uma variável em que os dados serão
armazenados para que um
programa que vai processar o conteúdo possa selecionar e acessar cada
uma das
informações coletadas.
No exemplo da Figura 6, temos um formulário que se inicia com
a solicitação de um código de
produto para o usuário. Esse tipo de solicitação
é feito com uma tag <input>, como pode ser visto no
Quadro 5. Essa
tag tem diferentes variações de forma de entrada de dados e a variação
utilizada
nesse item é de digitação de texto (type=‘text’). Também foi
indicada uma variável para armazenar a
informação (name=‘codigo’) e uma
mensagem de orientação (placeholder=‘ex. 1.23.456-8’). No
Quadro 5
também está exposta uma tag que apresenta um texto auxiliar – <label>
Código do
produto: </label> – que serve apenas para facilitar o
entendimento da opção.
Quadro 5 – Uso
da tag input
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 20/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
<label>Código do produto:</label>
<input type=‘text’ name=‘codigo’
placeholder=‘ ex. 1.23.456-8’>
Fonte: Costa,
2021.
No Quadro 6, temos outra variação da tag <input>
como o uso do atributo radio (type=“radio”).
Nessa opção, o
usuário vai selecionar entre duas alternativas. Esse é um tipo de seleção
única, pois o
usuário não poderá selecionar as duas opções simultaneamente; apenas
uma alternativa fica ativada.
Apesar de serem duas alternativas, o nome de
variável vai ser o mesmo para as duas, pois, conforme
descrito anteriormente,
apenas uma das escolhas será deixada ativada.
Quadro 6 – Uso da opção radio
Tipo:
<input type=“radio” name=‘tipo’>
Importado
<input type=“radio” name=‘tipo’>
Nacional
Fonte: Costa,
2021.
Outra variação da tag <input> pode ver vista no Quadro 7.
Nesse caso, é utilizado o atributo
para datas (type=‘date’). Também nesse
item foi acrescentado um atributo para orientar o usuário do
formato de data a
ser digitado (placeholder=‘ dd-mm-yyyy’).
Quadro 7 –
Entrada de datas
<label
>Data de recebimento:</label>
<input
type=“date” name=“data_inicio” placeholder=“dd-mm-yyyy” >
Fonte: Costa,
2021.
Além de poder digitar a data completa, o usuário poderá
(dependendo do navegador utilizado)
escolher uma data com base em um quadro de
seleção tipo calendário (Figura 7).
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 21/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Figura 7 – Seleção de data
Fonte: Costa,
2021.
No Quadro 8, temos uma opção da tag <input> que finaliza
a entrada de dados e envia todas as
informações digitadas ou selecionadas pelo
usuário para o programa que vai processá-los. Essa
opção (type=“submit”) normalmente
assume a forma de um botão que o usuário utiliza para finalizar
o formulário.
Quadro 8 –
Envio das informações
<input
type=“submit” name=“grava” value=“Grava” >
Fonte: Costa,
2021.
A aparência do formulário utilizada nos exemplos não é a que o
leitor vai visualizar se utilizadas
as tags apresentadas até esse ponto. Se não
for feita uma alteração na aparência das tags, elas usam
o padrão do navegador
para cor, posicionamento, espaçamento e demais características usadas em
layout
de telas.
No exemplo mostrado tanto na Figura 5 quanto na Figura 6, para
deixá-lo mais atrativo, foram
feitas alterações na aparência das tags
utilizando CSS e um framework específico para layout,
chamado de Bootstrap
(os quais serão vistos futuramente).
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 22/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Para efeito de comparação, a Figura 8 mostra o mesmo documento
HTML sem nenhuma
alteração visual diferente do padrão usado no navegador
Firefox.
Figura 8 – Formulário com visual padrão
Fonte: Costa,
2021.
A aparência não interfere na coleta das informações ou na
funcionalidade das tags do HTML. O
formulário continua funcionando, e apenas
pode haver um impacto no estímulo em utilizar esse tipo
de tela.
Muitos estudos de interface homem-computador valorizam cores e
agrupamento visual de
dados na confecção de telas de sistemas, com o intuito de
melhorar e facilitar a navegação entre as
partes do sistema e sua operação (Barbosa; Silva, 2010). As considerações de usabilidade
são
indiferentes ao tipo de sistema podendo ser aplicadas em sistemas desktop,
MPA, SPA, PWA assim
como aplicativos móveis.
A última versão disponível do HTML (chamada HTML5) trouxe
componentes e recursos que
tornaram o desenvolvimento de aplicações web mais
próximas das aplicações desktop: a
possibilidade de utilização de
gráficos avançados (2D e 3D), o armazenamento off-line, a
geolocalização e
controles multimídia sem a utilização de plugins. Essa versão reforça o
uso da
linguagem Javascript para a manipulação do documento HTML de forma
dinâmica.
FINALIZANDO
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 23/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Nesta aula, foram apresentados conceitos usados na construção
de sistemas web, que podem
ter seu processamento desenvolvido primariamente no
servidor, como no caso dos sistemas MPA, ou
com a execução de código no lado
cliente, como no caso dos sistemas SPA.
A possibilidade de reaproveitamento de tecnologias e sistemas
desenvolvidos para web em
dispositivos móveis trouxe o desenvolvimento de
aplicativos PWA.
Em ambos os casos (desenvolvimento web ou desenvolvimento de
aplicativos móveis), o uso da
rede de computadores como base para a comunicação
entre clientes (usuários) e servidores (bases
de dados) é uma peça importante
no compartilhamento e processamento de informações e deve ser
avaliada pelo
desenvolvedor ao estruturar a arquitetura do sistema.
Na parte final desta aula, foi apresentada a linguagem de
marcação HTML, que possibilitará criar
a apresentação dos dados dos sistemas.
Esse tipo de marcação de conteúdo tem sido incluso em
diferentes ambientes e
dispositivos em razão da facilidade de utilização em linguagens de
programação
de diferentes tipos, uma vez que basta concatenar as tags HTML nos dados de
saída
usando comandos de impressão próprios da linguagem.
Usando poucas Tags, foi possível montar exemplos de documentos
HTML que poderão servir de
base para os roteiros práticos e as demais
tecnologias que serão expostas na disciplina.
REFERÊNCIAS
BARBOSA, S.; SILVA, B. Interação humano-computador.
Rio de Janeiro: Elsevier Brasil, 2010.
BEM-VINDO ao Open XML SDK 2.5
para Office. Microsoft Docs, 1.º nov. 2017. Disponível em:
<https://docs.microsoft.com/pt-br/office/open-xml/open-xml-sdk>. Acesso
em: 13 mar. 2021.
CONNOLLY, T. M.; BEGG, C. E. Database systems: a
practical approach to design,
implementation, and management. Londres: Pearson
Education, 2005.
DEITEL, P. J.; DEITEL, H. M. Ajax, rich internet
applications e desenvolvimento web para
programadores. São Paulo: Pearson
Prentice Hall, 2009.
FACTS about W3C. W3C,
2021a. Disponível em <https://www.w3.org/
Consortium/facts>. Acesso em: 13 mar. 2021.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 24/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
JAFFE, J. W3C and WHATWG to
work together to advance the open web platform. W3C, 28 May
2019.
Disponível em <https://www.w3.org/blog/2019/05/
w3c-and-whatwg-to-work-together-to-advance-the-open-web-platform/>. Acesso
em: 13 mar. 2021.
PROGRESSIVE web apps (PWAs). MDN
web Docs, 2021. Disponível em:
<https://developer.mozilla.org/en-US/docs/web/Progressive_web_apps>. Acesso
em: 13 mar. 2021.
STANDARDS. W3C, 2021b.
Disponível em <https://www.w3.org/standards/>. Acesso
em: 13 mar.
2021.
TANENBAUM, A. S.; BOS, H. Modern operating systems.
Londres: Pearson, 2015.
TANENBAUM, A. S.;WETHERALL,
D. J. Computer Networks. Boston: Prentice Hall, 2011.
WHAT is Windows Presentation
Foundation (WPF.NET). Microsoft Docs, 18 jul. 2019. Disponível
em
<https://docs.microsoft.com/en-us/dotnet/desktop/wpf/over
view/?view=netdesktop-5.0>. Acesso em: 13 mar. 2021.
[1]
Porta é a denominação do endereço do
protocolo TCP utilizado na comunicação de rede, em
que o HTTP é encapsulado.
Cada programa, ao se comunicar na rede de computadores, precisa estar
associado
a uma porta e um endereço IP.
[2]
O site Netcraft mantém um longo
histórico de estatísticas sobre plataformas em uso nos sites
em atividade.
[3]
Editor de texto puro é aquele que não
acrescenta formatações no texto. Normalmente é usado
em programação.
[4]
Tipo de tela utilizada em smartphones
e alguns notebooks em que, ao se encostar o dedo na
tela, o sistema
consegue perceber a localização do toque.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 25/26
10/09/2021 16:12 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a1 26/26