Capacitar os estudantes para construirem sistemas complexos e distribuídos, utilizando metodologias de desenvolvimento e tecnologias web / mobile atuais.
Métodos ágeis, DevOps, sistemas distribuídos, padrões arquiteturais, princípios arquiteturais, tecnologias web fundamentais, desenvolvimento para front-end e modelos de páginas, desenvolvimento para back-end e padrões arquiteturas, autenticação e autorização, banco de dados, infraestrutura, plataformas de entrega.
Métodos ágeis (valores, princípios e práticas), DevOps (entrega contínua, versionamento, trunk-based development, automação de testes), sistemas distribuídos (teorema CAP, consistência forte e eventual, níveis de disponibilidade), padrões arquiteturais (camadas, microkernel, microsserviços, baseada em eventos, nuvem), princípios arquiteturais (aplicações com 12 fatores, sistemas reativos, sistemas nativos à nuvem), tecnologias web fundamentais (HTML, CSS, JavaScript), modelo requisição-resposta (ad hoc, REST, GraphQL), desenvolvimento para front-end e modelos de páginas (MPA, SPA, SSR, PWA), desenvolvimento para back-end e padrões arquiteturais (MVC, MVP, MVVM, JAM), autenticação (identificadores sequenciais, UUID, tokens, JWT) e autorização (protocolos de controle de acesso), banco de dados (relacionais, não relacionais, mensageiros), infraestrutura (virtualização, conteinerização, orquestração e coreografia, malha de serviços) e plataformas de entrega (IaaS, PaaS, CDN, serverless).
Bibliografia básica: BONÉR, Jonas. Reactive Microsystems: The Evolution of Microservices at Scale. . Sebastopol: O’Reilly Media, Inc, 2017. GARRISON, Justin, NOVA, Kris. Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment. 1. ed. Sebastopol: O’Reilly Media, Inc, 2017. NEWMAN, Sam. Building Microservices: Designing Fine-Grained Systems. Sebastopol: O’Reilly Media, Inc, 2015. SADALAGE, Pramod J., FOWLER, Martin. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Upper Saddle River, NJ: Addison-Wesley, 2013. Bibliografia complementar: BONÉR, Jonas. Reactive Microservices Architecture: Design Principles for Distributed Systems. Sebastopol: O’Reilly Media, Inc, 2016. ECKSTEIN, Jutta. Agile Software Development in the Large: Diving Into the Deep. New York: Dorset House Publishing, 2004. EVANS, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. 1. ed. Boston: Addison-Wesley Professional, 2003. FORSGREN, Nicole, HUMBLE, Jez, KIM, Gene. Accelerate: The Science of Lean Software and Devops: Building and Scaling High Performing Technology Organizations. Revolution Press, 2018. GARBAJOSA, Juan, WANG, Xiaofeng, AGUIAR, Ademar. (Org.). Agile Processes in Software Engineering and Extreme Programming. XP 2018. Lecture Notes in Business Information Processing, vol 314. Springer, Cham. GEERS, Michael. Micro Frontends: Extending the Microservice idea to frontend development. 2017. HUMBLE, Jez, FARLEY, David. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. 1. ed. Boston: Addison-Wesley Professional, 2010. KNIBERG, Henrik, IVARSSON, Anders. Scaling Agile @ Spotify: With Tribes, Squads, Chapters & Guilds. 2012. LEFFINGWELL, Dean. Scaling Software Agility: Best Practices for Large Enterprises. 1. ed. Boston: Pearson Education, 2007. RICHARDS, Mark. Software Architecture Patterns. Sebastopol: O’Reilly Media, Inc, 2015. RICHARDSON, Chris. Microservice Patterns. Manning Publications, 2017. TRUNK BASED DEVELOPMENT. Trunk Based Development. Disponível em: . VERNON, Vaughn. Implementing Domain-Driven Design. Addison-Wesley Professional, 2013. WAMPLER, Dean. Fast Data Architectures for Streaming Applications. Sebastopol: O’Reilly Media, Inc, 2016. YANAGA, Edson. Migrating to Microservice Databases: From Relational Monolith to Distributed Data. Sebastopol: O’Reilly Media, Inc, 2017.