Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...Cyrille Martraire
Vous avez entendu parler de Domain-Driven Design (DDD) et vous voulez en savoir plus ?
Nous vous offrons un tour d'horizon de concepts importants de DDD et leur application en pratique, avec des retours d'un projet récent.
Vidéo de la présentation disponible : http://www.dailymotion.com/video/xq62pf_aroll-fterwork-du-11-avril-domain-driven-design_tech
Domain-Driven Design (DDD) and Functional Programming (FP) have a lot of good things in common: DDD has borrowed many ideas from the FP community, and both share a common inspiration on established formalisms like maths.
Even in non functional languages like Java or C#, this combined set of practices from DDD, OO and FP helps craft simple and powerful code that reads well, that is very easy to test, that composes well and that can somehow describe itself.
We will have a closer look at some of these ideas, in the context of domain models inspired from real-world projects. From value objects and DSL to abstract algebra creatures like monoids and friends, we will show how all that translates into beautiful code that may influence your coding style!
Watch the video online: http://vimeo.com/79181633
Even in an agile world, specifications often go too far and describe solutions with too much details; all these premature decisions constraint the implementation and remove opportunities. There is a remedy: refactoring the specs, even before refactoring the code.
In the TDD cycle, refactoring is the art of restructuring the code to make it simpler, without changing its behavior at runtime. A key part of refactoring is to recognize and extract duplications.
Refactoring is very useful at the code level, and it is even more powerful when applied during business analysis or functional architecture. We will show how the practice of refactoring directly "at the business domain level" can simplify the problem, and therefore the resulting implementation code, by orders of magnitude. This means much less code to write, to test and to maintain, and much less defects as a result.
We will introduce 5 patterns on how to refactor at the business-domain level, such as "Make It Systematic" and "Degenerate Case". We will also explain some limits and the required mindset.
This approach of refactoring has been used on several real-world projects and is derived in particular from DDD and from Specification by Example.
You probably can't imagine that Monoids (not monads) are so simple maths creatures that you can understand them in just a few minutes.
You probably can't imagine that Monoids (not monads) are so simple maths creatures that you can understand them in just a few minutes.
But you probably don't imagine either that they can help you craft elegant and powerful domain models that scale very well.
Through various examples, we will have a closer look at monoids used for domain modeling in a style that mixes the best of DDD and FP. Even in languages like Java or C#, this talk will influence your coding style forever!
'More entertaining and educational explanation of Monoids I've heard' - Martin Thompson, DDD exchange London 2014.
See more at http://skillsmatter.com/conferences/1880-ddd-exchange-nyc-2014#program
You have to deliver ambitious new features but your codebase is a huge mess of legacy technologies, with no test?
It is very tempting to throw it all away and rewrite everything from scratch, but is it wise when you consider the associated cost, risk and delayed time-to-market?
Through an experience report, we'll show a "Strangler Application" strategy where only carefully selected areas of legacy code are rewritten. Agile development techniques like BDD or TDD remain necessary, with some adjustments.
We'll also describe step by step the overall thinking process you can use to deal with large legacy code bases efficiently.
First presented at Agile France 2013, and in countless Brown Bag Lunches since, a best-seller!
Video (In French) here: http://www.infoq.com/fr/presentations/code-legacy
I T.A.K.E. talk: "When DDD meets FP, good things happen"Cyrille Martraire
Domain-Driven Design (DDD) and Functional Programming (FP) have a lot of good things in common: DDD has borrowed many ideas from the FP community, and both share a common inspiration on established formalisms like maths.
For the software developer, the result is a style of code that mixes the best of DDD, OO and FP. Even in non functional languages like Java or C#, this combined set of practices helps craft simple and powerful code that reads well and that is very easy to test.
In this talk we will have a closer look at some of these ideas, in the context of domain models inspired from real-world projects. From basic FP hygiene like immutability and closure of operations to more mathematical inspirations from abstract algebra like monoids, we will show how all that translates into beautiful code.
WARNING: This may influence your coding style…
This talk was presented on the first day of I T.A.K.E. 2013 at Bucharest http://itakeunconf.com/
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...Cyrille Martraire
Vous avez entendu parler de Domain-Driven Design (DDD) et vous voulez en savoir plus ?
Nous vous offrons un tour d'horizon de concepts importants de DDD et leur application en pratique, avec des retours d'un projet récent.
Vidéo de la présentation disponible : http://www.dailymotion.com/video/xq62pf_aroll-fterwork-du-11-avril-domain-driven-design_tech
Domain-Driven Design (DDD) and Functional Programming (FP) have a lot of good things in common: DDD has borrowed many ideas from the FP community, and both share a common inspiration on established formalisms like maths.
Even in non functional languages like Java or C#, this combined set of practices from DDD, OO and FP helps craft simple and powerful code that reads well, that is very easy to test, that composes well and that can somehow describe itself.
We will have a closer look at some of these ideas, in the context of domain models inspired from real-world projects. From value objects and DSL to abstract algebra creatures like monoids and friends, we will show how all that translates into beautiful code that may influence your coding style!
Watch the video online: http://vimeo.com/79181633
Even in an agile world, specifications often go too far and describe solutions with too much details; all these premature decisions constraint the implementation and remove opportunities. There is a remedy: refactoring the specs, even before refactoring the code.
In the TDD cycle, refactoring is the art of restructuring the code to make it simpler, without changing its behavior at runtime. A key part of refactoring is to recognize and extract duplications.
Refactoring is very useful at the code level, and it is even more powerful when applied during business analysis or functional architecture. We will show how the practice of refactoring directly "at the business domain level" can simplify the problem, and therefore the resulting implementation code, by orders of magnitude. This means much less code to write, to test and to maintain, and much less defects as a result.
We will introduce 5 patterns on how to refactor at the business-domain level, such as "Make It Systematic" and "Degenerate Case". We will also explain some limits and the required mindset.
This approach of refactoring has been used on several real-world projects and is derived in particular from DDD and from Specification by Example.
You probably can't imagine that Monoids (not monads) are so simple maths creatures that you can understand them in just a few minutes.
You probably can't imagine that Monoids (not monads) are so simple maths creatures that you can understand them in just a few minutes.
But you probably don't imagine either that they can help you craft elegant and powerful domain models that scale very well.
Through various examples, we will have a closer look at monoids used for domain modeling in a style that mixes the best of DDD and FP. Even in languages like Java or C#, this talk will influence your coding style forever!
'More entertaining and educational explanation of Monoids I've heard' - Martin Thompson, DDD exchange London 2014.
See more at http://skillsmatter.com/conferences/1880-ddd-exchange-nyc-2014#program
You have to deliver ambitious new features but your codebase is a huge mess of legacy technologies, with no test?
It is very tempting to throw it all away and rewrite everything from scratch, but is it wise when you consider the associated cost, risk and delayed time-to-market?
Through an experience report, we'll show a "Strangler Application" strategy where only carefully selected areas of legacy code are rewritten. Agile development techniques like BDD or TDD remain necessary, with some adjustments.
We'll also describe step by step the overall thinking process you can use to deal with large legacy code bases efficiently.
First presented at Agile France 2013, and in countless Brown Bag Lunches since, a best-seller!
Video (In French) here: http://www.infoq.com/fr/presentations/code-legacy
I T.A.K.E. talk: "When DDD meets FP, good things happen"Cyrille Martraire
Domain-Driven Design (DDD) and Functional Programming (FP) have a lot of good things in common: DDD has borrowed many ideas from the FP community, and both share a common inspiration on established formalisms like maths.
For the software developer, the result is a style of code that mixes the best of DDD, OO and FP. Even in non functional languages like Java or C#, this combined set of practices helps craft simple and powerful code that reads well and that is very easy to test.
In this talk we will have a closer look at some of these ideas, in the context of domain models inspired from real-world projects. From basic FP hygiene like immutability and closure of operations to more mathematical inspirations from abstract algebra like monoids, we will show how all that translates into beautiful code.
WARNING: This may influence your coding style…
This talk was presented on the first day of I T.A.K.E. 2013 at Bucharest http://itakeunconf.com/
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Cyrille Martraire
What if documentation was as fun as coding? Always up-to-date? And what if it could even improve your design? Reconsider how you invest in knowledge to accelerate delivery, with a touch of Domain-Driven Design.
For more, get the book on Leanpub: https://leanpub.com/livingdocumentation
A software editor in finance was facing the challenge to extend substantially the capabilities of its main application, despite 20 years of legacy in multiple technologies. In this talk, Cyrille Martraire will report on how DDD has been applied to capture deep models of the domain, within bounded contexts that emerged in the course of the project, and how DDD also helped to build a strategy for dealing with the legacy code.
The video is available on Skillsmatter website: http://skillsmatter.com/podcast/design-architecture/applying-ddd-legacy-app
La predisposición genética no garantiza que una persona desarrollará una enfermedad específica, sino que aumenta el riesgo en comparación con individuos que no tienen esa predisposición genética.
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Cyrille Martraire
What if documentation was as fun as coding? Always up-to-date? And what if it could even improve your design? Reconsider how you invest in knowledge to accelerate delivery, with a touch of Domain-Driven Design.
For more, get the book on Leanpub: https://leanpub.com/livingdocumentation
A software editor in finance was facing the challenge to extend substantially the capabilities of its main application, despite 20 years of legacy in multiple technologies. In this talk, Cyrille Martraire will report on how DDD has been applied to capture deep models of the domain, within bounded contexts that emerged in the course of the project, and how DDD also helped to build a strategy for dealing with the legacy code.
The video is available on Skillsmatter website: http://skillsmatter.com/podcast/design-architecture/applying-ddd-legacy-app
La predisposición genética no garantiza que una persona desarrollará una enfermedad específica, sino que aumenta el riesgo en comparación con individuos que no tienen esa predisposición genética.
DIFERENCIAS ENTRE POSESIÓN DEMONÍACA Y ENFERMEDAD PSIQUIÁTRICA.pdfsantoevangeliodehoyp
Libro del Padre César Augusto Calderón Caicedo sacerdote Exorcista colombiano. Donde explica y comparte sus experiencias como especialista en posesiones y demologia.
Presentación utilizada en la conferencia impartida en el X Congreso Nacional de Médicos y Médicas Jubiladas, bajo el título: "Edadismo: afectos y efectos. Por un pacto intergeneracional".
La empatía facilita la comunicación efectiva, reduce los conflictos y fortale...MaxSifuentes3
La empatía es la capacidad de comprender y compartir los sentimientos de los demás. Es una habilidad emocional que permite a una persona ponerse en el lugar de otra y experimentar sus emociones y perspectivas. Hay diferentes formas de empatía, que incluyen:
Empatía cognitiva: Es la capacidad de comprender el punto de vista o el estado mental de otra persona. Es decir, saber lo que otra persona está pensando o sintiendo.
Empatía emocional: Es la capacidad de compartir los sentimientos de otra persona. Esto significa que, cuando otra persona está triste, tú también sientes tristeza.
Empatía compasiva: Va más allá de simplemente comprender y compartir sentimientos; implica la voluntad de ayudar a la otra persona a lidiar con su situación.
La empatía es importante en las relaciones interpersonales, ya que facilita la comunicación efectiva, reduce los conflictos y fortalece los vínculos. También es fundamental en profesiones que requieren interacción constante con otras personas, como la atención médica, la educación y el trabajo social.
Para desarrollar la empatía, se pueden practicar varias técnicas, como la escucha activa, la observación de las señales no verbales, la reflexión sobre las propias emociones y la exposición a diversas perspectivas y experiencias.
La empatía es esencial en todas las relaciones interpersonales, ya que permite comprender y compartir los sentimientos de los demás. Es una habilidad emocional que nos ayuda a ponernos en el lugar de otra persona y experimentar sus emociones y puntos de vista. Existen diferentes tipos de empatía, como la cognitiva, que implica comprender el estado mental de otra persona, la emocional, que consiste en compartir sus sentimientos, y la compasiva, que va más allá al involucrar la voluntad de ayudar a la otra persona.
La empatía facilita la comunicación efectiva, reduce los conflictos y fortalece los lazos entre las personas. También es fundamental en profesiones que requieren contacto constante con otras personas, como la atención médica, la educación y el trabajo social.
Para desarrollar la empatía, es importante practicar diferentes técnicas como la escucha activa, la observación de las señales no verbales, la reflexión sobre las propias emociones y la exposición a diferentes perspectivas y experiencias.
En el marco de la Sexta Cumbre Ministerial Mundial sobre Seguridad del Paciente celebrada en Santiago de Chile en el mes de abril de 2024 se ha dado a conocer la primera Carta de Derechos de Seguridad de Paciente, a nivel mundial, a iniciativa de la Organización Mundial de la Salud (OMS).
Los objetivos del nuevo documento pasan por los siguientes aspectos clave: afirmar la seguridad del paciente como un derecho fundamental del paciente, para todos, en todas partes; identificar los derechos clave de seguridad del paciente que los trabajadores de salud y los líderes sanitarios deben defender para planificar, diseñar y prestar servicios de salud seguros; promover una cultura de seguridad, equidad, transparencia y rendición de cuentas dentro de los sistemas de salud; empoderar a los pacientes para que participen activamente en su propia atención como socios y para hacer valer su derecho a una atención segura; apoyar el desarrollo e implementación de políticas, procedimientos y mejores prácticas que fortalezcan la seguridad del paciente; y reconocer la seguridad del paciente como un componente integral del derecho a la salud; proporcionar orientación sobre la interacción entre el paciente y el sistema de salud en todo el espectro de servicios de salud, incluidos los cuidados de promoción, protección, prevención, curación, rehabilitación y paliativos; reconocer la importancia de involucrar y empoderar a las familias y los cuidadores en los procesos de atención médica y los sistemas de salud a nivel nacional, subnacional y comunitario.
Y ello porque la seguridad del paciente responde al primer principio fundamental de la atención sanitaria: “No hacer daño” (Primum non nocere). Y esto enlaza con la importancia de la prevención cuaternaria, pues cabe no olvidar que uno de los principales agentes de daño somos los propios profesionales sanitarios, por lo que hay que prevenirse del exceso de diagnóstico, tratamiento y prevención sanitaria.
Compartimos el documento abajo, estos son los 10 derechos fundamentales de seguridad del paciente descritos en la Carta:
1. Atención oportuna, eficaz y adecuada
2. Procesos y prácticas seguras de atención de salud
3. Trabajadores de salud calificados y competentes
4. Productos médicos seguros y su uso seguro y racional
5. Instalaciones de atención médica seguras y protegidas
6. Dignidad, respeto, no discriminación, privacidad y confidencialidad
7. Información, educación y toma de decisiones apoyada
8. Acceder a registros médicos
9. Ser escuchado y resolución justa
10. Compromiso del paciente y la familia
Que así sea. Y el compromiso pase del escrito a la realidad.