ddd

Recursos de programación de ddd
Todos estamos escribiendo tests y tenemos controlado el Code Coverage, pero un 100% Code Coverage solo significa que todas las líneas se han ejecutado al menos una vez por nuestros tests, pero no dice nada sobre la precisión de los tests o la integridad de los casos de uso, y es por eso que el Mutation Testing es muy importante. MutationTesting se utiliza para diseñar nuevos tests y evaluar la calidad de los tests existentes. La idea es modificar el código cubierto por tests de forma sencilla, comprobando si el conjunto de tests existente para este código detectará y rechazará las modificaciones. Cada cambio en el código se llama mutante y da como resultado una versión alterada del programa, llamada mutación. La calidad de los tests se mide en función del porcentaje de mutación eliminada. En esta sesión veremos como se puede hacer Mutation Testing en Java con Pitest, modificar su engine para reducir el tiempo de ejecución y como usarlo en proyectos multi-module. ¿Quién es el ponente? Ismail Ahmedov. Hands-on Software Architect, eterno aprendiz y formador. Promuevo las buenas prácticas en el desarrollo de software, los principios S.O.L.I.D, TTD, DDD y la cultura DevOps en los equipos. Siempre estoy dispuesto a asumir nuevos retos y salir de mi zona de confort para aprender algo nuevo.
Añadir eventos de dominio en un Sistema Legacy puede llegar a ser muy complicado. Al igual que hacer una primera importación en un nuevo microservicio. Hoy vamos a ver diferentes técnicas para añadir domain-driven design (DDD) en nuestro sistema con o sin CQRS. Curso Gestión de Datos en Bash: https://bit.ly/datos-bash ﹤🍍﹥ CodelyTV ├ 🎥 Suscríbete: https://youtube.com/c/CodelyTV?sub_confirmation=1 ├ 🐦 Twitter CodelyTV: https://twitter.com/CodelyTV ├ 🫧 Twitter Javi: https://twitter.com/JavierCane ├ 💂‍♀️ Twitter Rafa: https://twitter.com/rafaoe ├ 📸 Instagram: https://instagram.com/CodelyTV ├ ℹ️ LinkedIn: https://linkedin.com/company/codelytv ├ 🥋 Academy: https://codely.com/academy └ 📕 Catálogo cursos: https://bit.ly/cursos-codely
The Global Software Architecture Summit (GSAS) is a 3-day event that aims to attract and connect software architecture experts from all over the world as well as all those interested in building working software to improve their skills, share knowledge, and connect. The event features two days of talks by industry experts such as Mark Richards, Neal Ford, Nathaniel Schutta and one day of workshops. It is focused on software architecture topics as backend & frontend development, DDD, mobile development techniques, software architecture models & beyond. The summit is held every year, so if you are interested in attending do not hesitate to buy your ticket. It is an excellent opportunity to give your career a boost and meet professionals in the industry. EVENT ORGANIZER: APIUMHUB Apiumhub is a software development hub that solves complex problems with high-quality solutions. Our purpose is to build scalable software to help our clients strengthen their businesses with powerful technology. Every year, we host this event in Barcelona to support the software architecture community and provide a space for the exchange of new and interesting ideas. -- GSAS website: https://gsas.io/ Organizer site: https://apiumhub.com/
Agile visto desde una plataforma de gestión de Apis. El ciclo de vida de las ApIs contado bajo los 4 valores del Manifiesto Agile. Las personas y roles del API Team. Working software. El contrato YAML y el uso del API first como aproximación al cambio del usuario. La estrategia Domain Driven Design y la inversión de la Ley de Conway. Incorporando ingeniería ágil en el ciclo de vida como API first, DDD, TDD, BDD... CI/CD. Explicando la parte de estrategia y delivery utilizando Kanban por ejemplo y la mejora continua utilizando Scrum. El API Team no gestiona endpoints, acompaña el ciclo de vida de las APIs y apoya el cambio cultural desde un punto de vista pedagógico. Utilizando por ejemplo técnicas de gamificación. Aplicar Agile en el Open Banking a través del API Team, mejora la capacidad de una organización para cambiar. Se juntan la transformación Agile con la transformación digital Open, autentica punta de lanza de la revolución actual. ------------- ¡Conoce Autentia! -Twitter: https://goo.gl/MU5pUQ -Instagram: https://lk.autentia.com/instagram -LinkedIn: https://goo.gl/2On7Fj/ -Facebook: https://goo.gl/o8HrWX
Agile visto desde una plataforma de gestión de Apis. El ciclo de vida de las ApIs contado bajo los 4 valores del Manifiesto Agile. Las personas y roles del API Team. Working software. El contrato YAML y el uso del API first como aproximación al cambio del usuario. La estrategia Domain Driven Design y la inversión de la Ley de Conway. Incorporando ingeniería ágil en el ciclo de vida como API first, DDD, TDD, BDD... CI/CD. Explicando la parte de estrategia y delivery utilizando Kanban por ejemplo y la mejora continua utilizando Scrum. El API Team no gestiona endpoints, acompaña el ciclo de vida de las APIs y apoya el cambio cultural desde un punto de vista pedagógico. Utilizando por ejemplo técnicas de gamificación. Aplicar Agile en el Open Banking a través del API Team, mejora la capacidad de una organización para cambiar. Se juntan la transformación Agile con la transformación digital Open, autentica punta de lanza de la revolución actual.
La arquitectura Onion / Clean / Hexagonal suele ser vista como un gold standard a la hora de organizar el desarrollo de una aplicación. Pero... ¿Seguro que es siempre la mejor opción? ¿Hay alguna forma mejor de organizar nuestro código? En esta sesión veremos otra opción: la llamada Vertical Slice Arquitecture (VSA), una forma diferente de organizar nuestro código que nos puede aportar muchas ventajas. ¿Qué vas a aprender en esta sesión? - Desventajas de una arquitectura Onion/Clean/Hexagonal - Ventajas de la Vertical Slice Architecture. - Como encaja DDD o CQRS en este tipo de architectura. - Cómo pasar de una Onion Arquitecture a una Vertical Slice Arquitecture (Veremos un pequeño ejemplo con código) ------------- ¡Conoce Autentia! -Twitter: https://goo.gl/MU5pUQ -Instagram: https://lk.autentia.com/instagram -LinkedIn: https://goo.gl/2On7Fj/ -Facebook: https://goo.gl/o8HrWX
Al utilizar el patrón #Repository en nuestras aplicaciones #DDD podemos acabar con una gran explosión de métodos: search, searchByName, searchByDuration, searchByNameAndDuration, etc. En este video, aplicamos el patrón Criteria y vemos las diferencias que existen respecto al patrón #Specification. Si bien tienen una implementación similar, el patrón Specification intenta llevar una mayor expresividad al código, y este video vemos algunos ejemplos para conseguirlo. También hablamos sobre diferentes métodos de páginado, como el basado en Offset y el basado en Cursor, y las ventajas e inconvenientes de cada uno a nivel de rendimiento y experiencia de usuario. 🐙 Repositorio typescript-ddd-example con los ejemplos de código https://bit.ly/typescript-ddd-example 🆕🛰️ Curso de DDD en TypeScript: Comunicación entre #microservicios y aplicaciones https://bit.ly/ddd-en-typscript 🔷 Curso de DDD en TypeScript: Modelado y arquitectura http://bit.ly/curso-ddd-ts ﹤🍍﹥ CodelyTV ├ 🎥 Suscríbete: https://youtube.com/c/CodelyTV?sub_confirmation=1 ├ 🐦 Twitter CodelyTV: https://twitter.com/CodelyTV ├ 💡 Twitter Ruben: https://twitter.com/rsaladocid ├ 👨🏻‍🌾 Twitter Dani: https://twitter.com/dsantaka ├ 📸 Instagram: https://instagram.com/CodelyTV ├ ℹ️ LinkedIn: https://linkedin.com/company/codelytv ├ 🟦 Facebook: https://facebook.com/CodelyTV └ 📕 Catálogo cursos: https://bit.ly/cursos-codely
Construimos un tipo de datos complejo partiendo de 0 y viendo cómo podemos validar que hace lo que esperamos. Este tipo nos servirá para convertir instancias de entidades complejas con funciones y datos, a su tipo primitivo de forma recursiva. Además, comentaremos los tipos de TypeScript que nos paséis para dar un pasito más allá y huir de any 🎉 Os esperamos en el chat del directo para ver algunos tipos de TypeScript salvajes que encontréis por el glorioso mundo de la programación, y comentarlos en vivo 😊 Pásanos algunos tipos molones! 👉 https://twitter.com/CodelyTV/status/1589932145719783424 ﹤🔖﹥ Cursos de TypeScript ├ 🏗️ De JavaScript a TypeScript: https://pro.codely.com/library/de-javascript-a-typescript-128106/347481/about/ ├ 🚜 TypeScript Avanzado: Más allá de any: https://pro.codely.com/library/typescript-avanzado-mas-alla-de-any-182513/418230/about/ ├ 🔷 DDD en TypeScript: Modelado y arquitectura: https://pro.codely.com/library/ddd-en-typescript-modelado-y-arquitectura-172533/375662/about/ └ 🛰️ DDD en TypeScript: Comunicación entre servicios y aplicaciones: https://pro.codely.com/library/ddd-en-typescript-comunicacion-entre-servicios-y-aplicaciones-189024/449177/about/ ﹤🍍﹥ CodelyTV ├ 🎥 Suscríbete: https://youtube.com/c/CodelyTV?sub_confirmation=1 ├ 🐦 Twitter CodelyTV: https://twitter.com/CodelyTV ├ 🫧 Twitter Javi: https://twitter.com/JavierCane ├ 🚀 Twitter Isma: https://twitter.com/ismanapa ├ 📸 Instagram: https://instagram.com/CodelyTV ├ ℹ️ LinkedIn: https://linkedin.com/company/codelytv ├ 🟦 Facebook: https://facebook.com/CodelyTV └ 📕 Catálogo cursos: https://bit.ly/cursos-codely #typescript #codely #programacion
Carola Lilienthal is Senior Software Architect and Managing Director at WPS - Workplace Solutions and loves to design good structured, long-living software systems. Since 2003, she and her teams are using DDD to achieve this goal. DDD and long-livingness of software architectures are the topic of many talks she has given on various conferences, one of them is O'Reilly Software Architecture Conference. She condensed her experience in the book “Sustainable Software Architecture” and translated the book "Domain-Driven Design Distilled" by Vaughn Vernon into German.
Cuando comunicamos #microservicios a través de sistemas de mensajería como #RabbitMQ, nos encontramos con que los errores a la hora de publicar eventos de dominio puede hacer que nuestro sistema se quede en un estado inconsistente. Para solucionar este problema, en este video analizamos 2 patrones de publicación y gestión de errores: Failover y Outbox Pattern. El ejemplo en #TypeScript que mostramos, está extraido del repositorio de código ddd-typescript-example. Para explorar en más profundidad, aquí tienes los recursos 👀 👇 🐙 Repositorio typescript-ddd-example con los ejemplos de código https://bit.ly/typescript-ddd-example 🆕🛰️ Curso de DDD en TypeScript: Comunicación entre #microservicios y aplicaciones https://bit.ly/ddd-en-typscript 🔷 Curso de DDD en TypeScript: Modelado y arquitectura http://bit.ly/curso-ddd-ts ﹤🍍﹥ CodelyTV ├ 🎥 Suscríbete: https://youtube.com/c/CodelyTV?sub_confirmation=1 ├ 🐦 Twitter CodelyTV: https://twitter.com/CodelyTV ├ 💡 Twitter Fer: https://twitter.com/fer_vilas ├ 👨🏻‍🌾 Twitter Dani: https://twitter.com/dsantaka ├ 📸 Instagram: https://instagram.com/CodelyTV ├ ℹ️ LinkedIn: https://linkedin.com/company/codelytv ├ 🟦 Facebook: https://facebook.com/CodelyTV └ 📕 Catálogo cursos: https://bit.ly/cursos-codely