Introdução à Programação na Web
Objectivos
Os estudantes que terminam com sucesso esta unidade curricular serão capazes de:
- Enquadrar os principais elementos constituintes da arquitetura da World Wide Web.
- Demonstrar conhecimento teórico-prático sobre as principais normas associadas à componente de cliente (web browser).
- Utilizar o modelo de programação na componente cliente, nomeadamente no acesso dinâmico a conteúdos e tratamento de eventos.
- Utilizar e estender uma tecnologia de servidor com significativa adoção industrial, para criação de aplicações Web de pequena complexidade.
- Desenhar e implementar aplicações web com manutenção de estado de conversação, visualização e edição de dados.
Programa
- A arquitetura da World Wide Web: Identificação de recursos (URIs), interação (protocolo HTTP) e representação.
- Distribuição de conteúdos web (protocolo HTTP).
- Infraestruturas de suporte à criação da interface com o utilizador em aplicações web e respetivo modelo de programação.
- Componente de cliente (Web browser): descrição da estrutura (HTML), formatação visual (CSS), manipulação programática e atualizações totais e parciais da interface gráfica.
- Componente de servidor: distribuição de conteúdos estáticos; geração dinâmica de conteúdos; modelo de programação no servidor, utilizando o padrão MVC; manutenção de estado (de visualização, de sessão e de aplicação); interceção de pedidos.
- Consequências da distribuição no modelo de programação e respetivas arquiteturas de referência.
- Concretização dos temas estudados através do desenvolvimento de aplicações Web de pequena e média complexidade com suporte para persistência de dados.
Resultados
Esta unidade curricular representa, para a maioria dos alunos, o primeiro contacto com as problemáticas inerentes ao desenvolvimento de aplicações distribuídas, concretizadas sobre a plataforma Web. São introduzidos os principais elementos constituintes desta plataforma. Apresenta-se a componente de cliente (web browser) e as respetivas tecnologias normalizadas que lhe estão associadas. Descreve-se a componente de servidor, identificando os principais padrões arquiteturais usados no seu desenvolvimento, demonstrados na prática através de uma infraestrutura de servidor com significativa adoção industrial. O desenvolvimento de uma aplicação Web de pequena ou média complexidade é usado para praticar os conceitos e tecnologias transmitidas e colocar os alunos perante alguns dos problemas associados ao desenvolvimento deste tipo de aplicações.
Bibliografia
W3C Technical Architecture Group, Architecture of the World Wide Web, Volume One, http://www.w3.org/TR/webarch/, 2004.
Internet Engineering Task Force (IETF), Hypertext Transfer Protocol (HTTP/1.1), RFC 7230/7231, 2014
M. Haverbeke, Eloquent JavaScript: A Modern Introduction to Programming, 3rd edition, No Starch Press, 2018. ISBN 9781593279509, https://eloquentjavascript.net/
J. Wilson, Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales, The Pragmatic Bookshelf, 2017. ISBN 9781680501957