Imparte:
Universidad Rey Juan Carlos - URJCInternet permite a los desarrolladores softwre ofrecer a nuestros usuarios todo tipo de servicios mediante aplicaciones web o APIs REST que serán usadas por aplicaciones móviles o diferentes dispositivos. Aunque la tecnología necesaria para implementar estos servicios se ha simplificado mucho en los últimos años, todavía es un reto para los desarrolladores conocer y dominar las herramientas y los conceptos que los hacen posibles: frameworks de desarrollo web y de APIs REST, acceso a bases de datos, implementación de APIs REST y aspectos de seguridad. Todo ello sin dejar de lado la calidad con la que debe desarrollarse el software, con una buena arquitectura software para permitir que sea mantenible y dominando las herramientas de pruebas automáticas. Pero además, este tipo de servicios tienen que ser escalables y tolerantes a fallos. Y una de las estrategias más usadas en la actualidad para conseguirlo es construir estos servicios siguiente la arquitectura de microservicios.
Los conceptos teóricos son esenciales para entender algo, pero como desarrolladores software, sabemos que el “diablo está en los detalles”, así que las prácticas son esenciales. En el curso estas prácticas se realizan con Java, uno de los lenguajes de programación más utilizados en España para la construcción de servicios en Internet. Como framework de desarrollo utilizaremos Spring. Y acompañando a estos dos grandes pilares, las herramientas y tecnologías que más demandan las empresas: IntelliJ, Visual Studio Code, Postman, OpenAPI, JUnit, Selenium, REST Assured, Artillery y muchas más. De igual forma, las arquitecturas basadas en microservicios se estudiarán en profundidad, tanto desde el punto de vista teórico como práctico, estudiando diversos patrones y arquitecturas: comunicaciones con REST, gRPC y sistemas de mensajería, Sagas, API externa, DDD, CQRS, Event sourcing. Además, se presentarán estrategias para convertir monolitos en aplicaciones basadas en microservicios.
Para matricularte en el curso tienes que estar en uno de estos dos perfiles:
Recién titulado o estudiante de último curso de grados relacionados con la informática o telecomunicaciones.
Desarrollador software con experiencia profesional
Es necesario que tengas unas nociones básicas de: manejo de línea de comandos linux, HTML, lenguajes de programación Java y sistemas de control de versiones git. Si no tienes conocimientos de alguno de estos elementos, todavía tienes tiempo hasta que comience el curso para buscar información por Internet, algún tutorial, curso, libro gratuito, etc. Si tienes cualquier duda o problema, no dudes en preguntarnos.
Que los alumnos puedan desarrollar aplicaciones web y APIs REST, con bases de datos relacionales y control de usuarios. Todo ello usando algunas de las tecnologías más usadas a nivel profesional: el lenguaje de programación Java y el framework Spring.
Que los alumnos implementen los servicios siguiendo las arquitecturas y patrones adecuados que garanticen la mantenibilidad del mismo.
Que los alumnos controlen la calidad de las aplicaciones web y las APIs REST con pruebas de diferentes niveles: unitarias, de integración y de sistema, tanto a nivel funcional como de carga.
Que los alumnos puedan desarrollar software siguiendo una arquitectura de microservicios: siguiendo sus patrones, con diferentes tecnologías de comunicación (gRPC y sistemas de mensajería), con transacciones basadas en sagas que garanticen la integridad y aplicando el patrón de API externa.
Que los alumnos elijan las técnicas de diseño y arquitecturas más adecuada para sus aplicaciones: Domain Driven Development (DDD), Command Query Resource Segregation (CQRS) y Event sourcing.
Que los alumnos puedan aplicar las estrategias más adecuadas para convertir una aplicación monolítica en una aplicación basada en microservicios.
Servicios web y APIs REST (3 ETCS): Aplicaciones web. Bases de datos. APIs REST. Seguridad. Arquitecturas de servicios web.
Pruebas de servicios web (2 ECTS): Pruebas unitarias y de integración. Pruebas de sistema: Web y REST. Pruebas de carga
Microservicios (3 ETCS): Patrones de microservicios. Comunicación. Transacciones con sagas. API Externa. DDD. CQRS. Event sourcing. De monolito a microservicios