Arquiteturas. Serviços. Protocolos de comunicação entre cliente e servidor e entre servidores. Representação de dados no cliente. Acesso a bases de dados. Escalabilidade. Linguagens de modelagem da interface com o usuário. Linguagens de programação no cliente e no servidor. Segurança. Instalação e configuração de servidores. Prática de programação.
3. Cursos Relacionados
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículos: 1996-1 (Optativa); 2007-1 (Optativa)
Capacitar os estudantes para que compreendam os fundamentos conceituais e tecnológicos bem como as linguagens pertinentes ao desenvolvimento de aplicações para web.
4.2 Objetivos Específicos:
Apresentar as principais tecnologias utilizadas no desenvolvimento de aplicações exemplo.
Possibilitar que os estudantes pratiquem o desenvolvimento de aplicações para web.
Possibilitar que os estudantes aprendam a instalar, configurar e administrar servidores web.
5. Conteúdo Programático
Parte 1 - Linguagens para Desenvolvimento Web [14 horas-aula]
Visualização de dados
HTML
CSS
Frameworks
Pré-processadores
Representação de dados
XML
JSON
Programação
Visão Geral sobre PHP, Java, Python e Ruby
JavaScript
Elementos de Programação Orientada a Objetos
Elementos de Programação Funcional
Técnicas de Processamento Assíncrono: Callback, Promise, Observable, Async/Await
Modularização
Bibliotecas
Linguagens Alternativas: TypeScript e Elm
Parte II - Modelagem de Aplicações para Web [42 horas-aula]
Modelo Cliente-Servidor
Protocolos de Comunicação
HTTP
Websocket
Tecnologias de Comunicação
Ajax
SSE
Finalidade
Aplicações orientadas a serviço
Protocolo SOAP
Estilo Arquitetural RESTful: REST, GraphQL e Protobuf
Aplicações orientadas a página
Múltiplas Páginas
Página Única
Progressivas
Browser APIs
Arquiteturas
Monolíticas
Em camadas
Distribuídas
CQRS
Microserviços
Aspectos de Segurança
Transmissão da Informação
Autenticação do Usuário
Autorização para Acesso aos Recursos
Protocolo OAuth 2
OpenID Connect
JSON Web Token
Protocolo HTTP
Política de Mesma Origem
Cabeçalhos de Segurança
Filtros
Cookies
Operações de E/S Escaláveis
Acesso a webservices
Acesso a bases de dados
Técnicas de Desenvolvimento
No lado servidor
Domain Driven Design
Event Driven Design
Event Sourcing
Programação Reativa
No lado cliente
Componentes Web
Design Responsivo
Material Design
Gerenciamento de Estado
Processamento de Fluxos de Dados
MVC
Fluxo Unidirecional: Redux, MVI
Parte III ? Estudo de Um Servidor de Aplicações [16 horas-aula]
MARDAN, A. Practical Node.js, 2nd ed, Apress, 2018. Disponível em https://itbook.download/topic/Practical_Node_js_2nd_Edition
KALBACH, James. Design de navegação web: otimizando a experiência do usuário. Porto Alegre: Bookman, 2009. xiii, 427p. ISBN 9788577804917.
SEBESTA, Robert W. Programming the world wide web 2009. 5th ed. Boston: Addison Wesley, c2010. xviii, 734p. ISBN 9780136076636.
SILVA, Maurício Samy. HTML 5: a linguagem de marcação que revolucionou a web. São Paulo: Novatec, 2011. 320 p. ISBN 9788575222614.
EVANS, Eric. Domain-driven design: atacando as complexidades no coração do software. Rio de Janeiro: Alta Books, 2009. xxviii, 499 p. ISBN 9788576083603.
7. Bibliografia Complementar
AMUNDSEN, Michael. Building hypermedia APIs with HTML5 and Node. Beijing: O'Reilly, 2011. xvii, 219 p. ISBN 9781449306571.
BONÉR, Jonas. Reactive Microservices Architecture. Sebastopol: O?Reilly Media, Inc, 2017. 84 p. ISBN 9781491994368.BURNS, Brendam. Designin Distributed Systems. Sebastopol: O?Reilly Media, Inc, 2017. 160 p. ISBN 9781491983638.
FREDERICK, Gail Rahn; LAL, Rajesh. Dominando o desenvolvimento web para smartphone: construindo aplicativos baseados em JavaScript, CSS, HTML e Ajax para iPhone, Android, Palm Pre, BlackBerry, Windows Mobile e Nokia S60. Rio de Janeiro: Alta Books, 2011. xiii, 344 p. ISBN 788576085140.
GHOSH, Debasish. Functional and Reactive Domain Modeling. New York: Manning Publications Co, 2017. 322p, ISBN 9781617292248.
HERRON, David. Node Web Development. Birmingham: Packt Publishing Ltd, 2013. 230p. ISBN 9781782163305.