Arquitectura Software Moderna: DDD, Eventos, Microservicios

所在平台: Udemy

课程主页: https://www.udemy.com/course/arquitectura-software-moderna-ddd-eventos-microservicios-cqrs/

课程评论:没有评论

第一个写评论        关注课程

课程简介

**课程名称:** 现代软件架构:领域驱动设计、事件驱动和微服务 **课程概述:** 选择适合系统需求的软件架构是系统成功的关键。本课程旨在帮助学习者了解各种现代软件架构方案,理解它们的理论基础、实践应用以及各自的优缺点,从而能够根据具体需求选择最合适的架构。 **课程内容:** 1. **传统架构:** 从常见的如三层架构等传统架构入手,为学习更高级的架构提供基础。 2. **领域驱动设计 (DDD):** 学习如何以解决问题的领域为中心进行系统设计,而不是像传统架构那样以数据为中心。 3. **命令查询职责分离 (CQRS):** 掌握将查询 (Queries) 和命令 (Commands) 分开处理的技术,以优化各自的性能。这可能涉及使用不同的包、模型甚至数据库来处理这两种操作。 4. **事件溯源 (Event Sourcing):** 学习如何将系统当前状态存储为一系列事件,记录系统中发生的所有变更,而非仅仅存储最新的状态。 5. **事件驱动编程 (Event-Driven Programming):** 了解实体间如何通过发送事件进行通信,而非直接的方法调用。将其扩展到子系统间的通信,即可形成事件驱动架构。 6. **微服务架构:** 学习如何将系统拆分为多个边界清晰的子域,每个子域都构成一个微服务。该架构易于扩展和提高可用性。 7. **整洁架构/六边形架构:** 作为DDD的演进,旨在进一步隔离系统的内部核心层(如应用层和领域层)与外部依赖技术。 8. **微内核架构:** 也称为插件式架构,其核心概念是使用插件来扩展功能。 9. **可测试架构:** 学习如何正确地设计可测试的系统,并了解各种测试类型及其适用场景。 **课程目标:** 本课程并非旨在让学习者成为所有技术的专家,而是通过理论讲解、实践示例以及优缺点分析,使学习者能够清晰地理解每种技术的细节,并在何种情况下使用它们。课程旨在提升学习者的软件架构设计能力。

课程评论(0条)

课程详情

Elegir bien la arquitectura de tu sistema dependiendo de los requisitos necesarios es algo crítico y fundamental en el éxito de cualquier sistema software. Muchas veces, el no elegir la arquitectura correcta viene dado por el propio desconocimiento de las opciones que tenemos en nuestras manos.Es por eso que te presento este curso de Arquitecturas de Software Modernas, donde veremos múltiples alternativas para organizar tu código de una forma adaptada a tus necesidades. Todas ellas con parte teórica, ejemplos prácticos y pros y contras, para que sepas cuándo utilizar cada una de ellas.Arquitecturas convencionales: Empezaremos el curso viendo las arquitecturas más típicas, como puede ser la de tres capas, con el objetivo de tener un punto de partida y ver lo que nos pueden ofrecer las demás opciones.Domain Driven Design (DDD): Continuaremos con el Domain Driven Design, módulo en el que veremos cómo diseñar nuestro sistema guiándonos por el dominio del problema que vamos a resolver, en lugar de guiarnos por los datos que queremos tratar, algo muy común en las arquitecturas convencionales.Command Query Responsibility Segregation (CQRS): En el tercer módulo del curso veremos el CQRS, técnica que nos permitirá tratar las consultas (queries) y las escrituras (commands) de forma distinta, para optimizar ambas de la mejor forma y de manera independiente. Como veremos, tendremos paquetes, modelo e incluso Bases de Datos distintas para las dos operaciones.Event Sourcing: Empezando con los eventos, veremos la técnica del Event Sourcing, que se basa en almacenar el estado actual como eventos, guardando todo lo que suceda en nuestro sistema, en lugar de guardar únicamente el estado actual.Event Driven Programming: Técnica en la que la comunicación entre distintas entidades se realiza mediante el envío de eventos, en lugar de realizarse por llamadas directas a métodos. Como veremos, si extendemos esta técnica a más alto nivel, comunicando distintos subsistemas de nuestro sistema, tendremos la Event Driven Architecture.Arquitectura Orientada a Microservicios: Arquitectura que se basa en dividir el dominio de nuestro problema en múltiples subdominios bien acotados, cada uno de ellos formando un microservicio. Es una de las arquitecturas más usadas hoy en día, ya que nos permite escalar nuestro sistema de una muy buena forma, haciendo que la disponibilidad del mismo sea mayor.Arquitectura Hexagonal: Evolución del Domain Driven Design, con el objetivo de aislar aún más las capas internas de nuestro sistema, como son la capa de aplicación y la capa de dominio, de las tecnologías externas que utilicemos.Arquitectura de Microkernel: También llamada arquitectura de plug-ins, ya que utiliza ese concepto como base de su arquitectura.Arquitecturas Testables: Veremos cómo plantear correctamente los tests de tu sistema. Además, conoceremos todos los tipos de tests que deberías tener en mente a la hora de probar tu software, con consejos de cuándo utilizar cada uno de ellos.Recalco que el objetivo de este curso no es el de ser expertos en todos estos temas, ya que para eso son necesarios años de experiencia. El objetivo aquí es conocer bien cada uno de ellos, con parte teórica, ejemplos prácticos y pros y contras, para que sepas a la perfección los detalles de cada técnica y cuándo utilizarlas.El primer paso ya lo has dado, te has interesado por la Arquitectura de Software. ¡Te animo a unirte a este curso para mejorar como programador!

课程标签

0人关注该课程

主题相关的课程