{"id":4761,"date":"2024-04-05T23:20:37","date_gmt":"2024-04-05T21:20:37","guid":{"rendered":"https:\/\/datapy.fr\/?p=4761"},"modified":"2024-07-23T09:58:58","modified_gmt":"2024-07-23T07:58:58","slug":"concevoir-en-ddd","status":"publish","type":"post","link":"https:\/\/datapy.fr\/index.php\/2024\/04\/05\/concevoir-en-ddd\/","title":{"rendered":"Concevoir en DDD &#8211; ou comment piloter le d\u00e9veloppement business de son application"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4761\" class=\"elementor elementor-4761\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-32557948 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"32557948\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1ffb00a4\" data-id=\"1ffb00a4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4ced7be8 elementor-widget elementor-widget-image\" data-id=\"4ced7be8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 25-04-2024 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15-1024x576.png\" class=\"attachment-large size-large wp-image-4764\" alt=\"Concevoir en DDD\" srcset=\"https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15-1024x576.png 1024w, https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15-300x169.png 300w, https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15-768x432.png 768w, https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15-1536x864.png 1536w, https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15-800x450.png 800w, https:\/\/datapy.fr\/wp-content\/uploads\/2024\/04\/LE-PROMPT-Engineering-15.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-30272159 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"30272159\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-19395b28\" data-id=\"19395b28\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-796cd616 elementor-widget elementor-widget-heading\" data-id=\"796cd616\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 25-04-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h1 class=\"elementor-heading-title elementor-size-default\">Concevoir en DDD - ou comment piloter le d\u00e9veloppement business de son application<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-23d67d05 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"23d67d05\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-10f367f5\" data-id=\"10f367f5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3fb60d2 elementor-widget elementor-widget-text-editor\" data-id=\"3fb60d2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 25-04-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p>L&rsquo;av\u00e8nement des solutions de d\u00e9ploiements d&rsquo;application (Docker, Kubernetes, etc.) associ\u00e9es aux solutions d&rsquo;h\u00e9bergements en Cloud, incite \u00e0 la transformation digitale des syst\u00e8mes informatiques encore bas\u00e9s sur une architecture monolithe vers une architecture en microservices.<br \/>Dans de nombreux cas, cette transformation peut s&rsquo;op\u00e9rer en suivant une approche DDD (Domain-Driven Design) ou conception orient\u00e9e domaine.<\/p>\n<p><!-- \/wp:paragraph --><!-- wp:heading --><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-134951b2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"134951b2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-69f56b94\" data-id=\"69f56b94\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2aa7f137 elementor-widget elementor-widget-heading\" data-id=\"2aa7f137\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">L'architecture en couches<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b043ebc elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"5b043ebc\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 25-04-2024 *\/\n.elementor-widget-divider{--divider-border-style:none;--divider-border-width:1px;--divider-color:#0c0d0e;--divider-icon-size:20px;--divider-element-spacing:10px;--divider-pattern-height:24px;--divider-pattern-size:20px;--divider-pattern-url:none;--divider-pattern-repeat:repeat-x}.elementor-widget-divider .elementor-divider{display:flex}.elementor-widget-divider .elementor-divider__text{font-size:15px;line-height:1;max-width:95%}.elementor-widget-divider .elementor-divider__element{margin:0 var(--divider-element-spacing);flex-shrink:0}.elementor-widget-divider .elementor-icon{font-size:var(--divider-icon-size)}.elementor-widget-divider .elementor-divider-separator{display:flex;margin:0;direction:ltr}.elementor-widget-divider--view-line_icon .elementor-divider-separator,.elementor-widget-divider--view-line_text .elementor-divider-separator{align-items:center}.elementor-widget-divider--view-line_icon .elementor-divider-separator:after,.elementor-widget-divider--view-line_icon .elementor-divider-separator:before,.elementor-widget-divider--view-line_text .elementor-divider-separator:after,.elementor-widget-divider--view-line_text .elementor-divider-separator:before{display:block;content:\"\";border-block-end:0;flex-grow:1;border-block-start:var(--divider-border-width) var(--divider-border-style) var(--divider-color)}.elementor-widget-divider--element-align-left .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-left .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-left .elementor-divider__element{margin-left:0}.elementor-widget-divider--element-align-right .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-right .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-right .elementor-divider__element{margin-right:0}.elementor-widget-divider--element-align-start .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-start .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-start .elementor-divider__element{margin-inline-start:0}.elementor-widget-divider--element-align-end .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-end .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-end .elementor-divider__element{margin-inline-end:0}.elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider-separator{border-block-start:var(--divider-border-width) var(--divider-border-style) var(--divider-color)}.elementor-widget-divider--separator-type-pattern{--divider-border-style:none}.elementor-widget-divider--separator-type-pattern.elementor-widget-divider--view-line .elementor-divider-separator,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:after,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:before,.elementor-widget-divider--separator-type-pattern:not([class*=elementor-widget-divider--view]) .elementor-divider-separator{width:100%;min-height:var(--divider-pattern-height);-webkit-mask-size:var(--divider-pattern-size) 100%;mask-size:var(--divider-pattern-size) 100%;-webkit-mask-repeat:var(--divider-pattern-repeat);mask-repeat:var(--divider-pattern-repeat);background-color:var(--divider-color);-webkit-mask-image:var(--divider-pattern-url);mask-image:var(--divider-pattern-url)}.elementor-widget-divider--no-spacing{--divider-pattern-size:auto}.elementor-widget-divider--bg-round{--divider-pattern-repeat:round}.rtl .elementor-widget-divider .elementor-divider__text{direction:rtl}.e-con-inner>.elementor-widget-divider,.e-con>.elementor-widget-divider{width:var(--container-widget-width,100%);--flex-grow:var(--container-widget-flex-grow)}<\/style>\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3bf594 elementor-widget elementor-widget-text-editor\" data-id=\"d3bf594\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Pour concevoir une application logicielle moderne, il faut souvent la structurer en quatre composants, aussi appel\u00e9s couches conceptuelles :\u00a0<br \/>&#8211; Interface utilisateur<br \/>&#8211; Application<br \/>&#8211; Domaine (<strong>DDD<\/strong>)<br \/>&#8211; Infrastructure<br \/>Eric Evans (expert en Technologies, MIT) introduit le concept DDD au d\u00e9but des ann\u00e9es 2000\u00a0<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e18444e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e18444e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-39abbe7\" data-id=\"39abbe7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f5bfaff elementor-widget elementor-widget-heading\" data-id=\"f5bfaff\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Enrichir la compr\u00e9hension du besoin m\u00e9tier dans le code\u00a0<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c1d83e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"7c1d83e\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58e9381 elementor-widget elementor-widget-text-editor\" data-id=\"58e9381\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Cette approche est essentiellement motiv\u00e9e par les besoins m\u00e9tiers du produit \u00e0 d\u00e9velopper. Les principes qui en d\u00e9coulent :\u00a0<\/p>\n<p><!-- \/wp:paragraph --><!-- wp:list --><\/p>\n<ul><!-- wp:list-item -->\n<li>une terminologie commune entre le m\u00e9tier, les utilisateurs finaux, les concepteurs et les d\u00e9veloppeurs, autrement appel\u00e9 \u00ab\u00a0ubiquitous language\u00a0\u00bb<\/li>\n<!-- \/wp:list-item --><\/ul>\n<p><!-- \/wp:list --><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><!-- wp:paragraph -->\n<p>&gt; B\u00e9n\u00e9fices :\u00a0<\/p>\n<!-- \/wp:paragraph --><\/blockquote>\n<p><!-- \/wp:quote --><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>interpr\u00e9tation optimale des exigences m\u00e9tier,\u00a0<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>des API claires,\u00a0<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>le front-end et back-end en ad\u00e9quation<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list --><\/blockquote>\n<p><!-- \/wp:quote --><!-- wp:list --><\/p>\n<ul><!-- wp:list-item -->\n<li>une repr\u00e9sentation logique bas\u00e9e sur un mod\u00e8le de domaine dans le but de fournir une vue riche et visuelle du domaine en utilisant le langage m\u00e9tier<\/li>\n<!-- \/wp:list-item --><\/ul>\n<p><!-- \/wp:list --><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><!-- wp:paragraph -->\n<p>&gt; B\u00e9n\u00e9fices :\u00a0<\/p>\n<!-- \/wp:paragraph --><\/blockquote>\n<p><!-- \/wp:quote --><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>les entit\u00e9s m\u00e9tier et leurs relations sont clairement identifi\u00e9es,\u00a0<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>permettant ainsi de mod\u00e9liser fid\u00e8lement le comportement de l&rsquo;application<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list --><\/blockquote>\n<p><!-- \/wp:quote --><!-- wp:list --><\/p>\n<ul><!-- wp:list-item -->\n<li>l&rsquo;impl\u00e9mentation fonctionnelle des art\u00e9facts m\u00e9tier en objets informatiques correspondant<\/li>\n<!-- \/wp:list-item --><\/ul>\n<p><!-- \/wp:list --><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><!-- wp:paragraph -->\n<p>&gt; B\u00e9n\u00e9fices :\u00a0<\/p>\n<!-- \/wp:paragraph --><\/blockquote>\n<p><!-- \/wp:quote --><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>communication m\u00e9tier-utilisateurs-d\u00e9veloppeurs efficace,\u00a0<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>d\u00e9couplage fonctionnel am\u00e9liorant la maintenabilit\u00e9,\u00a0<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>repr\u00e9sentation sous forme de diagrammes de type UML comprise \u00e0 tout niveau<\/li>\n<\/ul>\n<\/blockquote>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-28975da elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"28975da\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4cc5cce\" data-id=\"4cc5cce\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0ad2fb7 elementor-widget elementor-widget-heading\" data-id=\"0ad2fb7\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Contre-indications, mises en garde et limitations\n<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-641f21f elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"641f21f\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7aa9d04 elementor-widget elementor-widget-text-editor\" data-id=\"7aa9d04\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>La d\u00e9marche DDD a un co\u00fbt, qui exige une r\u00e9flexion au pr\u00e9alable avant de la mettre en place, cela n\u00e9cessite :\u00a0<br \/>\u00a0&#8211; Maitrise suffisante des concepts d&rsquo;Architecture logicielle<br \/>\u00a0&#8211; Temps\/budget en d\u00e9but de projet<br \/>\u00a0&#8211; Structure projet solide (organisation d&rsquo;entreprise, staffing &#8230;)<br \/>\u00a0&#8211; Application suffisamment complexe et sensible pour \u00eatre profitable<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-80144bf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"80144bf\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b083a79\" data-id=\"b083a79\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2b81ac6 elementor-widget elementor-widget-heading\" data-id=\"2b81ac6\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Quelques conseils pour profiter des atouts de la DDD :<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b48b474 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b48b474\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2573e6 elementor-widget elementor-widget-text-editor\" data-id=\"c2573e6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul>\n<li>\u00a0Le mod\u00e8le de domaine par et pour tous : il doit \u00eatre cr\u00e9\u00e9 et d\u00e9tenu conjointement par toutes les parties du projet (chefs de produit, concepteurs, ing\u00e9nieurs, utilisateurs, BA, etc.).\u00a0<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>\u00a0L&rsquo;agilit\u00e9 est l&rsquo;allier du DDD : mettre en place un processus it\u00e9ratif pour \u00e9tablir le mod\u00e8le de domaine est fortement recommand\u00e9<\/li>\n<!-- \/wp:list-item --><!-- wp:list-item -->\n<li>\u00a0DDD et BDD sont compl\u00e9mentaires : la conception pilot\u00e9e par le comportement (BDD) se concentre davantage sur le comportement des entit\u00e9s qui sont mod\u00e9lis\u00e9es par la DDD.<\/li>\n<\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b61b31 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b61b31\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5bfdab1\" data-id=\"5bfdab1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9190a3c elementor-widget elementor-widget-heading\" data-id=\"9190a3c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-236dcb8 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"236dcb8\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b70a63d elementor-widget elementor-widget-text-editor\" data-id=\"b70a63d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Au m\u00eame titre que pour la conception d&rsquo;une application from scratch, l&rsquo;approche DDD est id\u00e9ale pour transformer un produit monolithe en micro-services tant que ces derniers restent de taille raisonnable (ni trop petits pour \u00e9viter le \u00ab\u00a0surcodage\u00a0\u00bb, ni trop gros pour obtenir d\u00e9coupage m\u00e9tier coh\u00e9rent). Dans ce dernier cas, la logique m\u00e9tier \u00e9tant connue, reprendre la conception d&rsquo;un produit avec la DDD donne l&rsquo;occasion de corriger les d\u00e9fauts strat\u00e9giques, tactiques, comportementaux et ainsi contribue \u00e0 la rationalisation du produit en am\u00e9liorant son utilisabilit\u00e9, sa robustesse et sa maintenabilit\u00e9.<br \/>Enfin, l&rsquo;approche DDD s&rsquo;inscrit parfaitement dans un projet Agile : c&rsquo;est un processus it\u00e9ratif, elle favorise la collaboration entre les diff\u00e9rents acteurs en levant les silos.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-605bfdfc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"605bfdfc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5dacc969\" data-id=\"5dacc969\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-51e6ede4 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"51e6ede4\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ab2279a elementor-widget elementor-widget-heading\" data-id=\"6ab2279a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Vous devriez \u00e9galement aimer\u200b<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-49546cea elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"49546cea\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-69b0db24\" data-id=\"69b0db24\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6eb16156 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"6eb16156\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 25-04-2024 *\/\n.elementor-widget-image-box .elementor-image-box-content{width:100%}@media (min-width:768px){.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper,.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{display:flex}.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{text-align:end;flex-direction:row-reverse}.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper{text-align:start;flex-direction:row}.elementor-widget-image-box.elementor-position-top .elementor-image-box-img{margin:auto}.elementor-widget-image-box.elementor-vertical-align-top .elementor-image-box-wrapper{align-items:flex-start}.elementor-widget-image-box.elementor-vertical-align-middle .elementor-image-box-wrapper{align-items:center}.elementor-widget-image-box.elementor-vertical-align-bottom .elementor-image-box-wrapper{align-items:flex-end}}@media (max-width:767px){.elementor-widget-image-box .elementor-image-box-img{margin-left:auto!important;margin-right:auto!important;margin-bottom:15px}}.elementor-widget-image-box .elementor-image-box-img{display:inline-block}.elementor-widget-image-box .elementor-image-box-title a{color:inherit}.elementor-widget-image-box .elementor-image-box-wrapper{text-align:center}.elementor-widget-image-box .elementor-image-box-description{margin:0}<\/style><div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img decoding=\"async\" width=\"1050\" height=\"534\" src=\"https:\/\/datapy.fr\/wp-content\/uploads\/2023\/02\/Photo-MLOPS-e1711552729357.png\" class=\"attachment-full size-full wp-image-3192\" alt=\"Le MLops qu&apos;est ce que c&apos;est ?\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Athena, solution serverless d\u2019Amazon, mise en perspective de \u201cBuzz Query\u201d<\/h3><p class=\"elementor-image-box-description\">Nous avions explor\u00e9 dans l\u2019article pr\u00e9c\u00e9dent les forces et faiblesses de Spark et Elasticsearch. Nous allons \u00e0 pr\u00e9sent creuser en quoi la solution.<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-592cd6bb\" data-id=\"592cd6bb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5591c34f elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"5591c34f\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img decoding=\"async\" width=\"1050\" height=\"566\" src=\"https:\/\/datapy.fr\/wp-content\/uploads\/2021\/06\/20210604-DataPy_Apache_SPARK_ELASTICSEARCH-e1711553094473.jpeg\" class=\"attachment-full size-full wp-image-3184\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Forces et faiblesses de Spark et Elasticsearch<\/h3><p class=\"elementor-image-box-description\">Nous avons partag\u00e9 les enjeux li\u00e9s \u00e0 la techno du Serverless dans le pr\u00e9c\u00e9dent article. Nous allons creuser aujourd\u2019hui les solutions les plus connues dans le domaine du traitement de donn\u00e9es \u00e0 grande \u00e9chelle, Spark et Elasticsearch.\n<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-4737b9a8\" data-id=\"4737b9a8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-946ea1c elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"946ea1c\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img loading=\"lazy\" decoding=\"async\" width=\"1050\" height=\"566\" src=\"https:\/\/datapy.fr\/wp-content\/uploads\/2021\/05\/20210526-Serverless-e1711553126530.jpeg\" class=\"attachment-full size-full wp-image-3182\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Le serverless, une approche efficace \u00e0 bas prix<\/h3><p class=\"elementor-image-box-description\">Nous avions introduit dans l\u2019article pr\u00e9c\u00e9dent ce qu\u2019\u00e9tait la notion de moteur de requ\u00eate de dashboarding. Nous allons \u00e0 pr\u00e9sent nous concentrer sur une nouvelle notion, plus proche des ressources mat\u00e9rielles, le serverless.\n<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Concevoir en DDD &#8211; ou comment piloter le d\u00e9veloppement business de son application L&rsquo;av\u00e8nement des solutions de d\u00e9ploiements d&rsquo;application (Docker, Kubernetes, etc.) associ\u00e9es aux solutions d&rsquo;h\u00e9bergements en Cloud, incite \u00e0 la transformation digitale des syst\u00e8mes informatiques encore bas\u00e9s sur une architecture monolithe vers une architecture en microservices.Dans de nombreux cas, cette transformation peut s&rsquo;op\u00e9rer en [&hellip;]<\/p>\n","protected":false},"author":42,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4761","post","type-post","status-publish","format-standard","hentry","category-non-classe","entry"],"_links":{"self":[{"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/posts\/4761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/comments?post=4761"}],"version-history":[{"count":8,"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/posts\/4761\/revisions"}],"predecessor-version":[{"id":5182,"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/posts\/4761\/revisions\/5182"}],"wp:attachment":[{"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/media?parent=4761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/categories?post=4761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datapy.fr\/index.php\/wp-json\/wp\/v2\/tags?post=4761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}