Communicating Architectures
Arquitectura de software: diseño, comunicación, ADR, UML y modelo C4.
Apuntes, slides y materiales de apoyo docente sobre Informática y Software
23 materiales
Arquitectura de software: diseño, comunicación, ADR, UML y modelo C4.
Principios de cohesión y acoplamiento, componentes y patrones arquitectónicos de software.
Fundamentos del diseño software: casos prácticos, reutilización, frameworks y técnicas de diseño.
Patrones de diseño GoF y otros patrones para crear soluciones software reutilizables.
Principios SOLID, diseño orientado a objetos y diseño por contrato mediante casos prácticos.
Tutorial práctico de ATDD y Gherkin para escribir escenarios de aceptación y convertirlos en tests ejecutables.
Guía práctica de Apache Maven: proyectos Java, dependencias, pruebas, empaquetado y construcción automatizada.
Análisis estático y code review con SonarQube, Docker y GitHub Actions para mejorar la calidad del código.
Programación asertiva, invariantes y contratos con precondiciones y postcondiciones.
Programación orientada a aspectos, ortogonalidad y prácticas con AspectJ y Spring AOP.
Delegación, composición, herencia y mixins mediante casos prácticos en varios lenguajes.
Códigos de error, excepciones, abuso de null y tipos Option y Optional.
Programación asíncrona, callbacks, promesas, futuros, listeners y programación reactiva.
Interfaces funcionales, lambdas, clausuras y streams en Java y otros lenguajes.
Inyección de dependencias, desacoplamiento, frameworks DI, Spring y anotaciones Java.
Programación orientada a objetos: abstracción, cohesión, herencia, polimorfismo y tipado.
Ortogonalidad, dependencias, ley de Demeter y técnicas para desacoplar implementaciones.
Refactoring, principio DRY, duplicación de código y técnicas para mejorar el diseño.
Cultura DevOps, colaboración entre desarrollo y operaciones, agilidad y entrega continua.
Integración y entrega continuas: automatización, feedback rápido y calidad del software.
Patrones de branching, control de versiones y estrategias para coordinar el desarrollo.
Introducción a la seguridad de aplicaciones mediante principios, ejemplos y prácticas de desarrollo seguro.
Seguridad integrada en el ciclo de vida del software mediante principios y prácticas DevSecOps.