[{"data":1,"prerenderedAt":1790},["ShallowReactive",2],{"navigation_fr":3,"posts_fr:/fr/blog/architecture":51,"posts_fr:/fr/blog/architecture:surround":1172},[4],{"title":5,"path":6,"stem":7,"children":8,"page":50},"Fr","/fr","fr",[9],{"title":10,"path":11,"stem":12,"children":13,"page":50},"Blog","/fr/blog","fr/blog",[14,18,22,26,30,34,38,42,46],{"title":15,"path":16,"stem":17},"Serveurs MCP comme Serveurs de Ressources OAuth : Une Approche Simplifiée","/fr/blog/mcp-aouth","fr/blog/1. mcp-aouth",{"title":19,"path":20,"stem":21},"Pratiques de Sécurité pour MCP Utilisant JSON-RPC","/fr/blog/mcp-security","fr/blog/1. mcp-security",{"title":23,"path":24,"stem":25},"Serveurs MCP : Connecter l'IA aux Données en Temps Réel","/fr/blog/mcp-create","fr/blog/2. mcp-create",{"title":27,"path":28,"stem":29},"Agents MCP Tiny On-Premises : S'affranchir des Dépendances Cloud","/fr/blog/mcp-tiny-agents-on-premises","fr/blog/5. mcp-tiny-agents-on-premises",{"title":31,"path":32,"stem":33},"De l'Idée à l'API en 2 Jours : Construction de Bankly avec les Flux de Travail Agentiques","/fr/blog/overvibing","fr/blog/6. overvibing",{"title":35,"path":36,"stem":37},"Chatbot IA, Serveur MCP construit avec le Protocole de Flux de Travail Agentique pour démo sur Checkatrade.com","/fr/blog/mcp-in-chat-demo","fr/blog/8. mcp-in-chat-demo",{"title":39,"path":40,"stem":41},"DDD et les Frameworks Full-Stack","/fr/blog/architecture","fr/blog/architecture",{"title":43,"path":44,"stem":45},"Qualité : Comment protéger les Frontends alimentés par l'IA ?","/fr/blog/qa-front","fr/blog/qa-front",{"title":47,"path":48,"stem":49},"Consultation et Stratégie IT","/fr/blog/strategy","fr/blog/strategy",false,{"id":52,"title":39,"authors":53,"badge":60,"body":62,"date":1164,"description":1165,"extension":1166,"image":1167,"meta":1169,"navigation":279,"path":40,"seo":1170,"stem":41,"__hash__":1171},"posts_fr/fr/blog/architecture.md",[54],{"name":55,"description":56,"to":57,"avatar":58},"Michael Wybraniec","Développement et Architecture Full-Stack","https://www.linkedin.com/in/one-front/",{"src":59},"https://media.licdn.com/dms/image/v2/D4D03AQFpMfqwhaamwA/profile-displayphoto-shrink_800_800/B4DZbqQSLWH8Ac-/0/1747686860119?e=1753315200&v=beta&t=U9dsnD5qU8FSzW2dKEQXnkRdPl_w1visxvHob18_etc",{"label":61},"Architecture",{"type":63,"value":64,"toc":1146},"minimark",[65,70,91,102,122,127,137,165,168,381,385,390,398,549,553,562,685,689,695,880,884,888,893,988,992,1006,1010,1106,1110,1136,1142],[66,67,69],"h1",{"id":68},"introduction-à-larchitecture-moderne-ddd-et-frameworks-full-stack","Introduction à l’Architecture Moderne : DDD et Frameworks Full-Stack",[71,72,73,74,78,79,82,83,86,87,90],"p",{},"Dans le monde du développement logiciel, le ",[75,76,77],"strong",{},"Domain-Driven Design (DDD)"," s’impose comme une méthode puissante pour construire des systèmes évolutifs et maintenables. En se concentrant sur le domaine métier, le DDD permet aux développeurs de créer des solutions alignées avec les besoins business. Associé à des frameworks full-stack modernes comme ",[75,80,81],{},"Vue.js",", ",[75,84,85],{},"Nuxt.js"," et ",[75,88,89],{},"React",", cet ensemble favorise la création d’applications web robustes, efficaces et hautement interactives.",[71,92,93,94,97,98,101],{},"L’intégration de l’architecture ",[75,95,96],{},"Backend-for-Frontend (BFF)"," et des backends modernes en cloud ou ",[75,99,100],{},"Node.js"," offre un environnement fluide pour bâtir des applications flexibles et évolutives. Cet article explore comment le DDD, le BFF et les frameworks front-end modernes peuvent collaborer pour concevoir des architectures logicielles de qualité.",[103,104,110],"div",{"className":105},[106,107,108,109],"flex","space-x-4","items-center","justify-between",[103,111,112],{},[71,113,114],{},[115,116],"img",{"alt":117,"className":118,"height":120,"src":121},"Architecture BFF",[119],"rounded-lg",300,"/blog/archi/bff.png",[123,124,126],"h2",{"id":125},"les-principes-fondamentaux-du-ddd","Les Principes Fondamentaux du DDD",[71,128,129,130,132,133,136],{},"Le ",[75,131,77],{}," est une méthodologie centrée sur le ",[75,134,135],{},"domaine métier"," et sa logique. Les principes clés incluent :",[138,139,140,147,153,159],"ol",{},[141,142,143,146],"li",{},[75,144,145],{},"Langage Ubiquitaire"," – Assurer une compréhension partagée entre développeurs et experts métiers.",[141,148,149,152],{},[75,150,151],{},"Contextes Délimités"," – Diviser le système en sous-domaines, chacun avec son propre modèle.",[141,154,155,158],{},[75,156,157],{},"Agrégats et Entités"," – Encapsuler les règles et processus métiers dans des entités cohérentes.",[141,160,161,164],{},[75,162,163],{},"Objets Valeur"," – Représenter des objets petits et immuables décrivant des aspects métier.",[71,166,167],{},"Appliqués correctement, ces principes permettent aux équipes d’aligner leurs choix techniques avec les objectifs métiers pour livrer des logiciels réellement utiles.",[169,170,176],"pre",{"className":171,"code":172,"filename":173,"language":174,"meta":175,"style":175},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","// Couche Domaine - Exemple d'entité\nexport class Product {\n  constructor(\n    public readonly id: string,\n    public name: string,\n    public price: number\n  ) {}\n\n  changePrice(newPrice: number) {\n    if (newPrice \u003C= 0) throw new Error('Invalid price');\n    this.price = newPrice;\n  }\n}\n","example-ddd.ts","ts","",[177,178,179,188,207,216,238,252,265,274,281,304,352,369,375],"code",{"__ignoreMap":175},[180,181,184],"span",{"class":182,"line":183},"line",1,[180,185,187],{"class":186},"sHwdD","// Couche Domaine - Exemple d'entité\n",[180,189,191,195,199,203],{"class":182,"line":190},2,[180,192,194],{"class":193},"s7zQu","export",[180,196,198],{"class":197},"spNyl"," class",[180,200,202],{"class":201},"sBMFI"," Product",[180,204,206],{"class":205},"sMK4o"," {\n",[180,208,210,213],{"class":182,"line":209},3,[180,211,212],{"class":197},"  constructor",[180,214,215],{"class":205},"(\n",[180,217,219,222,225,229,232,235],{"class":182,"line":218},4,[180,220,221],{"class":197},"    public",[180,223,224],{"class":197}," readonly",[180,226,228],{"class":227},"sHdIc"," id",[180,230,231],{"class":205},":",[180,233,234],{"class":201}," string",[180,236,237],{"class":205},",\n",[180,239,241,243,246,248,250],{"class":182,"line":240},5,[180,242,221],{"class":197},[180,244,245],{"class":227}," name",[180,247,231],{"class":205},[180,249,234],{"class":201},[180,251,237],{"class":205},[180,253,255,257,260,262],{"class":182,"line":254},6,[180,256,221],{"class":197},[180,258,259],{"class":227}," price",[180,261,231],{"class":205},[180,263,264],{"class":201}," number\n",[180,266,268,271],{"class":182,"line":267},7,[180,269,270],{"class":205},"  )",[180,272,273],{"class":205}," {}\n",[180,275,277],{"class":182,"line":276},8,[180,278,280],{"emptyLinePlaceholder":279},true,"\n",[180,282,284,288,291,294,296,299,302],{"class":182,"line":283},9,[180,285,287],{"class":286},"swJcz","  changePrice",[180,289,290],{"class":205},"(",[180,292,293],{"class":227},"newPrice",[180,295,231],{"class":205},[180,297,298],{"class":201}," number",[180,300,301],{"class":205},")",[180,303,206],{"class":205},[180,305,307,310,313,316,319,323,326,329,332,336,338,341,345,347,349],{"class":182,"line":306},10,[180,308,309],{"class":193},"    if",[180,311,312],{"class":286}," (",[180,314,293],{"class":315},"sTEyZ",[180,317,318],{"class":205}," \u003C=",[180,320,322],{"class":321},"sbssI"," 0",[180,324,325],{"class":286},") ",[180,327,328],{"class":193},"throw",[180,330,331],{"class":205}," new",[180,333,335],{"class":334},"s2Zo4"," Error",[180,337,290],{"class":286},[180,339,340],{"class":205},"'",[180,342,344],{"class":343},"sfazB","Invalid price",[180,346,340],{"class":205},[180,348,301],{"class":286},[180,350,351],{"class":205},";\n",[180,353,355,358,361,364,367],{"class":182,"line":354},11,[180,356,357],{"class":205},"    this.",[180,359,360],{"class":315},"price",[180,362,363],{"class":205}," =",[180,365,366],{"class":315}," newPrice",[180,368,351],{"class":205},[180,370,372],{"class":182,"line":371},12,[180,373,374],{"class":205},"  }\n",[180,376,378],{"class":182,"line":377},13,[180,379,380],{"class":205},"}\n",[123,382,384],{"id":383},"intégrer-le-ddd-avec-les-frameworks-front-end-vue-nuxt-et-react","Intégrer le DDD avec les Frameworks Front-End : Vue, Nuxt et React",[386,387,389],"h3",{"id":388},"vuejs-nuxtjs-frameworks-progressifs","Vue.js & Nuxt.js : Frameworks Progressifs",[71,391,392,394,395,397],{},[75,393,81],{}," et son framework serveur ",[75,396,85],{}," offrent une expérience de développement riche pour le front-end moderne. En intégrant les principes du DDD, ils permettent de concevoir des interfaces utilisateur réactives, performantes et orientées métier.",[169,399,404],{"className":400,"code":401,"filename":402,"language":403,"meta":175,"style":175},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Ctemplate>\n  \u003Cdiv class=\"card\">\n    \u003Ch2>{{ product.name }}\u003C/h2>\n    \u003Cp>{{ product.price }} USD\u003C/p>\n  \u003C/div>\n\u003C/template>\n\n\u003Cscript setup>\nconst props = defineProps({ product: Object })\n\u003C/script>\n","ProductCard.vue","vue",[177,405,406,417,439,459,476,485,493,497,509,541],{"__ignoreMap":175},[180,407,408,411,414],{"class":182,"line":183},[180,409,410],{"class":205},"\u003C",[180,412,413],{"class":286},"template",[180,415,416],{"class":205},">\n",[180,418,419,422,424,426,429,432,435,437],{"class":182,"line":190},[180,420,421],{"class":205},"  \u003C",[180,423,103],{"class":286},[180,425,198],{"class":197},[180,427,428],{"class":205},"=",[180,430,431],{"class":205},"\"",[180,433,434],{"class":343},"card",[180,436,431],{"class":205},[180,438,416],{"class":205},[180,440,441,444,446,449,452,455,457],{"class":182,"line":209},[180,442,443],{"class":205},"    \u003C",[180,445,123],{"class":286},[180,447,448],{"class":205},">",[180,450,451],{"class":315},"{{ product.name }}",[180,453,454],{"class":205},"\u003C/",[180,456,123],{"class":286},[180,458,416],{"class":205},[180,460,461,463,465,467,470,472,474],{"class":182,"line":218},[180,462,443],{"class":205},[180,464,71],{"class":286},[180,466,448],{"class":205},[180,468,469],{"class":315},"{{ product.price }} USD",[180,471,454],{"class":205},[180,473,71],{"class":286},[180,475,416],{"class":205},[180,477,478,481,483],{"class":182,"line":240},[180,479,480],{"class":205},"  \u003C/",[180,482,103],{"class":286},[180,484,416],{"class":205},[180,486,487,489,491],{"class":182,"line":254},[180,488,454],{"class":205},[180,490,413],{"class":286},[180,492,416],{"class":205},[180,494,495],{"class":182,"line":267},[180,496,280],{"emptyLinePlaceholder":279},[180,498,499,501,504,507],{"class":182,"line":276},[180,500,410],{"class":205},[180,502,503],{"class":286},"script",[180,505,506],{"class":197}," setup",[180,508,416],{"class":205},[180,510,511,514,517,519,522,524,527,530,532,535,538],{"class":182,"line":283},[180,512,513],{"class":197},"const",[180,515,516],{"class":315}," props ",[180,518,428],{"class":205},[180,520,521],{"class":334}," defineProps",[180,523,290],{"class":315},[180,525,526],{"class":205},"{",[180,528,529],{"class":286}," product",[180,531,231],{"class":205},[180,533,534],{"class":315}," Object ",[180,536,537],{"class":205},"}",[180,539,540],{"class":315},")\n",[180,542,543,545,547],{"class":182,"line":306},[180,544,454],{"class":205},[180,546,503],{"class":286},[180,548,416],{"class":205},[386,550,552],{"id":551},"react-le-framework-basé-sur-les-composants","React : Le Framework Basé sur les Composants",[71,554,555,557,558,561],{},[75,556,89],{}," est idéal pour concevoir des interfaces modulaires. Grâce à son ",[75,559,560],{},"architecture basée sur les composants",", les équipes peuvent créer des modules réutilisables qui incarnent la logique métier, tout en conservant flexibilité et évolutivité.",[169,563,568],{"className":564,"code":565,"filename":566,"language":567,"meta":175,"style":175},"language-jsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function ProductCard({ product }) {\n  return (\n    \u003Cdiv className=\"card\">\n      \u003Ch2>{product.name}\u003C/h2>\n      \u003Cp>{product.price} USD\u003C/p>\n    \u003C/div>\n  );\n}\n","ProductCard.jsx","jsx",[177,569,570,588,596,615,641,666,675,681],{"__ignoreMap":175},[180,571,572,575,578,581,583,586],{"class":182,"line":183},[180,573,574],{"class":197},"function",[180,576,577],{"class":334}," ProductCard",[180,579,580],{"class":205},"({",[180,582,529],{"class":227},[180,584,585],{"class":205}," })",[180,587,206],{"class":205},[180,589,590,593],{"class":182,"line":190},[180,591,592],{"class":193},"  return",[180,594,595],{"class":286}," (\n",[180,597,598,600,602,605,607,609,611,613],{"class":182,"line":209},[180,599,443],{"class":205},[180,601,103],{"class":286},[180,603,604],{"class":197}," className",[180,606,428],{"class":205},[180,608,431],{"class":205},[180,610,434],{"class":343},[180,612,431],{"class":205},[180,614,416],{"class":205},[180,616,617,620,622,625,628,631,634,637,639],{"class":182,"line":218},[180,618,619],{"class":205},"      \u003C",[180,621,123],{"class":286},[180,623,624],{"class":205},">{",[180,626,627],{"class":315},"product",[180,629,630],{"class":205},".",[180,632,633],{"class":315},"name",[180,635,636],{"class":205},"}\u003C/",[180,638,123],{"class":286},[180,640,416],{"class":205},[180,642,643,645,647,649,651,653,655,657,660,662,664],{"class":182,"line":240},[180,644,619],{"class":205},[180,646,71],{"class":286},[180,648,624],{"class":205},[180,650,627],{"class":315},[180,652,630],{"class":205},[180,654,360],{"class":315},[180,656,537],{"class":205},[180,658,659],{"class":315}," USD",[180,661,454],{"class":205},[180,663,71],{"class":286},[180,665,416],{"class":205},[180,667,668,671,673],{"class":182,"line":254},[180,669,670],{"class":205},"    \u003C/",[180,672,103],{"class":286},[180,674,416],{"class":205},[180,676,677,679],{"class":182,"line":267},[180,678,270],{"class":286},[180,680,351],{"class":205},[180,682,683],{"class":182,"line":276},[180,684,380],{"class":205},[123,686,688],{"id":687},"backend-for-frontend-bff-une-approche-sur-mesure","Backend-for-Frontend (BFF) : Une Approche Sur-Mesure",[71,690,691,694],{},[75,692,693],{},"L’architecture BFF"," fait office de couche intermédiaire entre le front-end et le back-end, exposant une API adaptée aux besoins spécifiques du client front-end. Cela permet une récupération de données optimisée et ciblée.",[169,696,699],{"className":171,"code":697,"filename":698,"language":174,"meta":175,"style":175},"// Exemple BFF pour récupérer un produit\nimport express from 'express';\nconst router = express.Router();\n\nrouter.get('/products/:id', async (req, res) => {\n  const data = await fetchProduct(req.params.id);\n  res.json({ name: data.name, price: data.price });\n});\n","bff-handler.ts",[177,700,701,706,727,749,753,795,829,872],{"__ignoreMap":175},[180,702,703],{"class":182,"line":183},[180,704,705],{"class":186},"// Exemple BFF pour récupérer un produit\n",[180,707,708,711,714,717,720,723,725],{"class":182,"line":190},[180,709,710],{"class":193},"import",[180,712,713],{"class":315}," express ",[180,715,716],{"class":193},"from",[180,718,719],{"class":205}," '",[180,721,722],{"class":343},"express",[180,724,340],{"class":205},[180,726,351],{"class":205},[180,728,729,731,734,736,739,741,744,747],{"class":182,"line":209},[180,730,513],{"class":197},[180,732,733],{"class":315}," router ",[180,735,428],{"class":205},[180,737,738],{"class":315}," express",[180,740,630],{"class":205},[180,742,743],{"class":334},"Router",[180,745,746],{"class":315},"()",[180,748,351],{"class":205},[180,750,751],{"class":182,"line":218},[180,752,280],{"emptyLinePlaceholder":279},[180,754,755,758,760,763,765,767,770,772,775,778,780,783,785,788,790,793],{"class":182,"line":240},[180,756,757],{"class":315},"router",[180,759,630],{"class":205},[180,761,762],{"class":334},"get",[180,764,290],{"class":315},[180,766,340],{"class":205},[180,768,769],{"class":343},"/products/:id",[180,771,340],{"class":205},[180,773,774],{"class":205},",",[180,776,777],{"class":197}," async",[180,779,312],{"class":205},[180,781,782],{"class":227},"req",[180,784,774],{"class":205},[180,786,787],{"class":227}," res",[180,789,301],{"class":205},[180,791,792],{"class":197}," =>",[180,794,206],{"class":205},[180,796,797,800,803,805,808,811,813,815,817,820,822,825,827],{"class":182,"line":254},[180,798,799],{"class":197},"  const",[180,801,802],{"class":315}," data",[180,804,363],{"class":205},[180,806,807],{"class":193}," await",[180,809,810],{"class":334}," fetchProduct",[180,812,290],{"class":286},[180,814,782],{"class":315},[180,816,630],{"class":205},[180,818,819],{"class":315},"params",[180,821,630],{"class":205},[180,823,824],{"class":315},"id",[180,826,301],{"class":286},[180,828,351],{"class":205},[180,830,831,834,836,839,841,843,845,847,849,851,853,855,857,859,861,863,865,868,870],{"class":182,"line":267},[180,832,833],{"class":315},"  res",[180,835,630],{"class":205},[180,837,838],{"class":334},"json",[180,840,290],{"class":286},[180,842,526],{"class":205},[180,844,245],{"class":286},[180,846,231],{"class":205},[180,848,802],{"class":315},[180,850,630],{"class":205},[180,852,633],{"class":315},[180,854,774],{"class":205},[180,856,259],{"class":286},[180,858,231],{"class":205},[180,860,802],{"class":315},[180,862,630],{"class":205},[180,864,360],{"class":315},[180,866,867],{"class":205}," }",[180,869,301],{"class":286},[180,871,351],{"class":205},[180,873,874,876,878],{"class":182,"line":276},[180,875,537],{"class":205},[180,877,301],{"class":315},[180,879,351],{"class":205},[123,881,883],{"id":882},"backend-cloud-et-nodejs-des-solutions-flexibles-et-scalables","Backend Cloud et Node.js : Des Solutions Flexibles et Scalables",[386,885,887],{"id":886},"nodejs-le-backend-javascript","Node.js : Le Backend JavaScript",[71,889,890,892],{},[75,891,100],{}," fournit un environnement backend léger et performant, basé sur JavaScript. Il est parfaitement adapté aux applications temps réel et à l’implémentation de logique métier complexe définie selon le DDD.",[169,894,897],{"className":171,"code":895,"filename":896,"language":174,"meta":175,"style":175},"// Exemple de service métier Node.js\nexport function applyDiscount(product, discount) {\n  if (discount > product.price) throw new Error('Discount too high');\n  return product.price - discount;\n}\n","product-service.ts",[177,898,899,904,927,967,984],{"__ignoreMap":175},[180,900,901],{"class":182,"line":183},[180,902,903],{"class":186},"// Exemple de service métier Node.js\n",[180,905,906,908,911,914,916,918,920,923,925],{"class":182,"line":190},[180,907,194],{"class":193},[180,909,910],{"class":197}," function",[180,912,913],{"class":334}," applyDiscount",[180,915,290],{"class":205},[180,917,627],{"class":227},[180,919,774],{"class":205},[180,921,922],{"class":227}," discount",[180,924,301],{"class":205},[180,926,206],{"class":205},[180,928,929,932,934,937,940,942,944,946,948,950,952,954,956,958,961,963,965],{"class":182,"line":209},[180,930,931],{"class":193},"  if",[180,933,312],{"class":286},[180,935,936],{"class":315},"discount",[180,938,939],{"class":205}," >",[180,941,529],{"class":315},[180,943,630],{"class":205},[180,945,360],{"class":315},[180,947,325],{"class":286},[180,949,328],{"class":193},[180,951,331],{"class":205},[180,953,335],{"class":334},[180,955,290],{"class":286},[180,957,340],{"class":205},[180,959,960],{"class":343},"Discount too high",[180,962,340],{"class":205},[180,964,301],{"class":286},[180,966,351],{"class":205},[180,968,969,971,973,975,977,980,982],{"class":182,"line":218},[180,970,592],{"class":193},[180,972,529],{"class":315},[180,974,630],{"class":205},[180,976,360],{"class":315},[180,978,979],{"class":205}," -",[180,981,922],{"class":315},[180,983,351],{"class":205},[180,985,986],{"class":182,"line":240},[180,987,380],{"class":205},[386,989,991],{"id":990},"infrastructure-cloud-évolutivité-et-résilience","Infrastructure Cloud : Évolutivité et Résilience",[71,993,994,995,82,998,1001,1002,1005],{},"Utiliser des plateformes cloud comme ",[75,996,997],{},"AWS",[75,999,1000],{},"Google Cloud"," ou ",[75,1003,1004],{},"Azure"," permet une évolutivité sans précédent. Ces services fournissent l’infrastructure nécessaire aux microservices, bases de données et systèmes de stockage compatibles avec le BFF et l’application front-end.",[123,1007,1009],{"id":1008},"configuration-de-tailwind-et-nuxt-ui-pro","Configuration de Tailwind et Nuxt UI Pro",[1011,1012,1014,1021,1067,1071],"steps",{"level":1013},"4",[386,1015,1017,1018],{"id":1016},"étape-1-ajouter-le-module-nuxt-ui-pro-dans-nuxtconfigts","Étape 1 – Ajouter le module Nuxt UI Pro dans ",[177,1019,1020],{},"nuxt.config.ts",[169,1022,1024],{"className":171,"code":1023,"filename":1020,"language":174,"meta":175,"style":175},"export default defineNuxtConfig({\n  modules: ['@nuxt/ui-pro']\n})\n",[177,1025,1026,1041,1061],{"__ignoreMap":175},[180,1027,1028,1030,1033,1036,1038],{"class":182,"line":183},[180,1029,194],{"class":193},[180,1031,1032],{"class":193}," default",[180,1034,1035],{"class":334}," defineNuxtConfig",[180,1037,290],{"class":315},[180,1039,1040],{"class":205},"{\n",[180,1042,1043,1046,1048,1051,1053,1056,1058],{"class":182,"line":190},[180,1044,1045],{"class":286},"  modules",[180,1047,231],{"class":205},[180,1049,1050],{"class":315}," [",[180,1052,340],{"class":205},[180,1054,1055],{"class":343},"@nuxt/ui-pro",[180,1057,340],{"class":205},[180,1059,1060],{"class":315},"]\n",[180,1062,1063,1065],{"class":182,"line":209},[180,1064,537],{"class":205},[180,1066,540],{"class":315},[386,1068,1070],{"id":1069},"étape-2-importer-tailwind-css-et-nuxt-ui-pro-dans-ton-fichier-css","Étape 2 – Importer Tailwind CSS et Nuxt UI Pro dans ton fichier CSS",[169,1072,1077],{"className":1073,"code":1074,"filename":1075,"language":1076,"meta":175,"style":175},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@import \"tailwindcss\";\n@import \"@nuxt/ui-pro\";\n","assets/css/main.css","css",[177,1078,1079,1094],{"__ignoreMap":175},[180,1080,1081,1084,1087,1090,1092],{"class":182,"line":183},[180,1082,1083],{"class":193},"@import",[180,1085,1086],{"class":205}," \"",[180,1088,1089],{"class":343},"tailwindcss",[180,1091,431],{"class":205},[180,1093,351],{"class":205},[180,1095,1096,1098,1100,1102,1104],{"class":182,"line":190},[180,1097,1083],{"class":193},[180,1099,1086],{"class":205},[180,1101,1055],{"class":343},[180,1103,431],{"class":205},[180,1105,351],{"class":205},[123,1107,1109],{"id":1108},"conclusion-construire-des-architectures-modernes-avec-ddd","Conclusion : Construire des Architectures Modernes avec DDD",[71,1111,1112,1113,1116,1117,82,1120,86,1123,1125,1126,1129,1130,1001,1133,1135],{},"En adoptant le ",[75,1114,1115],{},"Domain-Driven Design",", en tirant parti de frameworks modernes comme ",[75,1118,1119],{},"Vue",[75,1121,1122],{},"Nuxt",[75,1124,89],{},", et en intégrant une ",[75,1127,1128],{},"architecture BFF"," avec des backends ",[75,1131,1132],{},"cloud",[75,1134,100],{},", les développeurs peuvent créer des logiciels à la fois robustes, évolutifs et parfaitement alignés sur les objectifs métier.",[71,1137,1138,1141],{},[75,1139,1140],{},"Bon code à tous !"," 👨‍💻🚀",[1143,1144,1145],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":175,"searchDepth":190,"depth":190,"links":1147},[1148,1149,1153,1154,1158,1163],{"id":125,"depth":190,"text":126},{"id":383,"depth":190,"text":384,"children":1150},[1151,1152],{"id":388,"depth":209,"text":389},{"id":551,"depth":209,"text":552},{"id":687,"depth":190,"text":688},{"id":882,"depth":190,"text":883,"children":1155},[1156,1157],{"id":886,"depth":209,"text":887},{"id":990,"depth":209,"text":991},{"id":1008,"depth":190,"text":1009,"children":1159},[1160,1162],{"id":1016,"depth":209,"text":1161},"Étape 1 – Ajouter le module Nuxt UI Pro dans nuxt.config.ts",{"id":1069,"depth":209,"text":1070},{"id":1108,"depth":190,"text":1109},"2025-04-20","Explore l’intersection entre l’architecture logicielle moderne, le Domain-Driven Design (DDD) et les frameworks front-end puissants comme Vue, Nuxt et React, soutenus par des backends basés sur le cloud ou Node.js.","md",{"src":1168},"https://www.hibit.dev/images/posts/2021/ddd_layers.png",{},{"title":39,"description":1165},"Rw4uVNJAxZzI6gY5txEHQv9mB0s6BW84_Dy9Psk2rCc",[1173],{"id":1174,"title":47,"authors":1175,"badge":1179,"body":1181,"date":1783,"description":1784,"extension":1166,"image":1785,"meta":1787,"navigation":279,"path":48,"seo":1788,"stem":49,"__hash__":1789},"posts_fr/fr/blog/strategy.md",[1176],{"name":55,"description":1177,"to":57,"avatar":1178},"Développement Full-Stack et Architecture",{"src":59},{"label":1180},"Stratégie",{"type":63,"value":1182,"toc":1769},[1183,1187,1190,1193,1205,1208,1212,1215,1219,1233,1345,1347,1351,1358,1378,1381,1392,1462,1464,1468,1475,1498,1502,1507,1525,1529,1546,1550,1564,1566,1570,1574,1577,1735,1738,1749,1751,1755,1758,1761,1766],[123,1184,1186],{"id":1185},"paysage-de-complexité","Paysage de complexité",[71,1188,1189],{},"La transformation numérique n'est plus un choix, c'est une nécessité. Dans un paysage technologique en constante évolution, aligner votre stratégie numérique sur les normes mondiales peut déterminer votre avantage concurrentiel.",[71,1191,1192],{},"Cet article explore :",[1194,1195,1196,1199,1202],"ul",{},[141,1197,1198],{},"✅ Les principes fondamentaux de la consultation IT",[141,1200,1201],{},"✅ La planification stratégique alignée sur les normes mondiales",[141,1203,1204],{},"✅ ONE-FRONT comme cadre de collaboration entre les affaires, les développeurs et les utilisateurs",[1206,1207],"hr",{},[123,1209,1211],{"id":1210},"quest-ce-que-la-consultation-it","Qu'est-ce que la consultation IT ?",[71,1213,1214],{},"La consultation IT consiste à conseiller les organisations sur la meilleure façon d'utiliser la technologie de l'information pour atteindre leurs objectifs commerciaux. Il ne s'agit pas seulement de donner des conseils, mais de créer de la valeur stratégique et des résultats mesurables.",[386,1216,1218],{"id":1217},"activités-principales","Activités principales :",[1194,1220,1221,1224,1227,1230],{},[141,1222,1223],{},"Évaluer l'infrastructure actuelle et la maturité numérique",[141,1225,1226],{},"Identifier les lacunes et les opportunités d'optimisation",[141,1228,1229],{},"Définir une feuille de route pour la transformation numérique",[141,1231,1232],{},"Mettre en œuvre des changements technologiques",[169,1234,1237],{"className":171,"code":1235,"filename":1236,"language":174,"meta":175,"style":175},"export const DigitalStrategy = {\n  phases: ['Évaluation', 'Stratégie', 'Mise en œuvre', 'Évaluation'],\n  tools: ['Liste de vérification d'audit', 'Tableaux de bord KPI', 'Plans de migration vers le cloud']\n};\n","roadmap.ts",[177,1238,1239,1253,1299,1340],{"__ignoreMap":175},[180,1240,1241,1243,1246,1249,1251],{"class":182,"line":183},[180,1242,194],{"class":193},[180,1244,1245],{"class":197}," const",[180,1247,1248],{"class":315}," DigitalStrategy ",[180,1250,428],{"class":205},[180,1252,206],{"class":205},[180,1254,1255,1258,1260,1262,1264,1267,1269,1271,1273,1275,1277,1279,1281,1284,1286,1288,1290,1292,1294,1297],{"class":182,"line":190},[180,1256,1257],{"class":286},"  phases",[180,1259,231],{"class":205},[180,1261,1050],{"class":315},[180,1263,340],{"class":205},[180,1265,1266],{"class":343},"Évaluation",[180,1268,340],{"class":205},[180,1270,774],{"class":205},[180,1272,719],{"class":205},[180,1274,1180],{"class":343},[180,1276,340],{"class":205},[180,1278,774],{"class":205},[180,1280,719],{"class":205},[180,1282,1283],{"class":343},"Mise en œuvre",[180,1285,340],{"class":205},[180,1287,774],{"class":205},[180,1289,719],{"class":205},[180,1291,1266],{"class":343},[180,1293,340],{"class":205},[180,1295,1296],{"class":315},"]",[180,1298,237],{"class":205},[180,1300,1301,1304,1306,1308,1310,1313,1315,1318,1320,1322,1324,1327,1329,1331,1333,1336,1338],{"class":182,"line":209},[180,1302,1303],{"class":286},"  tools",[180,1305,231],{"class":205},[180,1307,1050],{"class":315},[180,1309,340],{"class":205},[180,1311,1312],{"class":343},"Liste de vérification d",[180,1314,340],{"class":205},[180,1316,1317],{"class":315},"audit",[180,1319,340],{"class":205},[180,1321,82],{"class":343},[180,1323,340],{"class":205},[180,1325,1326],{"class":315},"Tableaux de bord KPI",[180,1328,340],{"class":205},[180,1330,82],{"class":343},[180,1332,340],{"class":205},[180,1334,1335],{"class":315},"Plans de migration vers le cloud",[180,1337,340],{"class":205},[180,1339,1060],{"class":343},[180,1341,1342],{"class":182,"line":218},[180,1343,1344],{"class":315},"};\n",[1206,1346],{},[123,1348,1350],{"id":1349},"alignement-avec-les-normes-mondiales","Alignement avec les normes mondiales",[71,1352,1353,1354,1357],{},"La consultation professionnelle aligne votre organisation sur des ",[75,1355,1356],{},"normes et des cadres internationaux",", tels que :",[1194,1359,1360,1366,1372],{},[141,1361,1362,1365],{},[75,1363,1364],{},"ISO/IEC 27001"," pour la sécurité de l'information",[141,1367,1368,1371],{},[75,1369,1370],{},"ITIL"," pour la gestion des services IT",[141,1373,1374,1377],{},[75,1375,1376],{},"COBIT"," pour la gouvernance",[71,1379,1380],{},"Ces normes garantissent que vos systèmes sont :",[1194,1382,1383,1386,1389],{},[141,1384,1385],{},"🔐 Sécurisés",[141,1387,1388],{},"📊 Mesurables",[141,1390,1391],{},"📈 Scalable",[169,1393,1397],{"className":1394,"code":1395,"filename":1396,"language":838,"meta":175,"style":175},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"serviceValueSystem\": true,\n  \"components\": [\"Gouvernance\", \"Gestion des services\", \"Amélioration continue\"]\n}\n","itil-basics.json",[177,1398,1399,1403,1418,1458],{"__ignoreMap":175},[180,1400,1401],{"class":182,"line":183},[180,1402,1040],{"class":205},[180,1404,1405,1408,1411,1413,1415],{"class":182,"line":190},[180,1406,1407],{"class":205},"  \"",[180,1409,1410],{"class":197},"serviceValueSystem",[180,1412,431],{"class":205},[180,1414,231],{"class":205},[180,1416,1417],{"class":205}," true,\n",[180,1419,1420,1422,1425,1427,1429,1431,1433,1436,1438,1440,1442,1445,1447,1449,1451,1454,1456],{"class":182,"line":209},[180,1421,1407],{"class":205},[180,1423,1424],{"class":197},"components",[180,1426,431],{"class":205},[180,1428,231],{"class":205},[180,1430,1050],{"class":205},[180,1432,431],{"class":205},[180,1434,1435],{"class":343},"Gouvernance",[180,1437,431],{"class":205},[180,1439,774],{"class":205},[180,1441,1086],{"class":205},[180,1443,1444],{"class":343},"Gestion des services",[180,1446,431],{"class":205},[180,1448,774],{"class":205},[180,1450,1086],{"class":205},[180,1452,1453],{"class":343},"Amélioration continue",[180,1455,431],{"class":205},[180,1457,1060],{"class":205},[180,1459,1460],{"class":182,"line":218},[180,1461,380],{"class":205},[1206,1463],{},[123,1465,1467],{"id":1466},"one-front-un-cadre-holistique","ONE-FRONT : Un cadre holistique",[71,1469,1470,1471,1474],{},"ONE-FRONT n'est pas seulement un outil, c'est une ",[75,1472,1473],{},"stratégie collaborative"," où la technologie est alignée autour de trois axes vitaux :",[1194,1476,1477,1484,1491],{},[141,1478,1479,1480,1483],{},"🏢 ",[75,1481,1482],{},"Objectifs commerciaux"," : Nous veillons à ce que la technologie soit conçue pour générer de la valeur réelle",[141,1485,1486,1487,1490],{},"👩‍💻 ",[75,1488,1489],{},"Développeurs"," : Nous donnons aux équipes des architectures modulaires et scalables",[141,1492,1493,1494,1497],{},"🙋 ",[75,1495,1496],{},"Utilisateurs"," : Nous centrons le développement autour des retours et des besoins continus",[386,1499,1501],{"id":1500},"alignement-basé-sur-les-rôles","Alignement basé sur les rôles",[71,1503,1504],{},[75,1505,1506],{},"Affaires",[434,1508,1511],{"className":1509},[1510],"border-none",[1194,1512,1513,1519,1522],{},[141,1514,1515,1516],{},"✅ Comprendre l'",[75,1517,1518],{},"espace du problème",[141,1520,1521],{},"✅ Traduire les besoins en objectifs mesurables",[141,1523,1524],{},"✅ Collaborer pour façonner la feuille de route numérique",[71,1526,1527],{},[75,1528,1489],{},[434,1530,1532],{"className":1531},[1510],[1194,1533,1534,1540,1543],{},[141,1535,1536,1537],{},"✅ Travailler dans des ",[75,1538,1539],{},"contextes délimités",[141,1541,1542],{},"✅ Fournir un logiciel modulaire et testable",[141,1544,1545],{},"✅ Adopter des architectures propres comme DDD et BFF",[71,1547,1548],{},[75,1549,1496],{},[434,1551,1553],{"className":1552},[1510],[1194,1554,1555,1558,1561],{},[141,1556,1557],{},"✅ Fournir des retours continus",[141,1559,1560],{},"✅ Valider les itérations",[141,1562,1563],{},"✅ Créer une culture de co-création",[1206,1565],{},[123,1567,1569],{"id":1568},"la-stratégie-en-pratique","La stratégie en pratique",[386,1571,1573],{"id":1572},"exemple-conception-dirigée-par-le-domaine-ddd","Exemple : Conception dirigée par le domaine (DDD)",[71,1575,1576],{},"En alignant l'architecture du logiciel sur la logique métier, DDD améliore la scalabilité et la clarté.",[169,1578,1581],{"className":171,"code":1579,"filename":1580,"language":174,"meta":175,"style":175},"export class Product {\n  constructor(public id: string, public name: string, private price: number) {}\n\n  applyDiscount(rate: number) {\n    if (rate \u003C 0 || rate > 1) throw new Error('Taux invalide');\n    return this.price * (1 - rate);\n  }\n}\n","Product.ts",[177,1582,1583,1593,1634,1638,1656,1701,1727,1731],{"__ignoreMap":175},[180,1584,1585,1587,1589,1591],{"class":182,"line":183},[180,1586,194],{"class":193},[180,1588,198],{"class":197},[180,1590,202],{"class":201},[180,1592,206],{"class":205},[180,1594,1595,1597,1599,1602,1604,1606,1608,1610,1613,1615,1617,1619,1621,1624,1626,1628,1630,1632],{"class":182,"line":190},[180,1596,212],{"class":197},[180,1598,290],{"class":205},[180,1600,1601],{"class":197},"public",[180,1603,228],{"class":227},[180,1605,231],{"class":205},[180,1607,234],{"class":201},[180,1609,774],{"class":205},[180,1611,1612],{"class":197}," public",[180,1614,245],{"class":227},[180,1616,231],{"class":205},[180,1618,234],{"class":201},[180,1620,774],{"class":205},[180,1622,1623],{"class":197}," private",[180,1625,259],{"class":227},[180,1627,231],{"class":205},[180,1629,298],{"class":201},[180,1631,301],{"class":205},[180,1633,273],{"class":205},[180,1635,1636],{"class":182,"line":209},[180,1637,280],{"emptyLinePlaceholder":279},[180,1639,1640,1643,1645,1648,1650,1652,1654],{"class":182,"line":218},[180,1641,1642],{"class":286},"  applyDiscount",[180,1644,290],{"class":205},[180,1646,1647],{"class":227},"rate",[180,1649,231],{"class":205},[180,1651,298],{"class":201},[180,1653,301],{"class":205},[180,1655,206],{"class":205},[180,1657,1658,1660,1662,1664,1667,1669,1672,1675,1677,1680,1682,1684,1686,1688,1690,1692,1695,1697,1699],{"class":182,"line":240},[180,1659,309],{"class":193},[180,1661,312],{"class":286},[180,1663,1647],{"class":315},[180,1665,1666],{"class":205}," \u003C",[180,1668,322],{"class":321},[180,1670,1671],{"class":205}," ||",[180,1673,1674],{"class":315}," rate",[180,1676,939],{"class":205},[180,1678,1679],{"class":321}," 1",[180,1681,325],{"class":286},[180,1683,328],{"class":193},[180,1685,331],{"class":205},[180,1687,335],{"class":334},[180,1689,290],{"class":286},[180,1691,340],{"class":205},[180,1693,1694],{"class":343},"Taux invalide",[180,1696,340],{"class":205},[180,1698,301],{"class":286},[180,1700,351],{"class":205},[180,1702,1703,1706,1709,1711,1714,1716,1719,1721,1723,1725],{"class":182,"line":254},[180,1704,1705],{"class":193},"    return",[180,1707,1708],{"class":205}," this.",[180,1710,360],{"class":315},[180,1712,1713],{"class":205}," *",[180,1715,312],{"class":286},[180,1717,1718],{"class":321},"1",[180,1720,979],{"class":205},[180,1722,1674],{"class":315},[180,1724,301],{"class":286},[180,1726,351],{"class":205},[180,1728,1729],{"class":182,"line":267},[180,1730,374],{"class":205},[180,1732,1733],{"class":182,"line":276},[180,1734,380],{"class":205},[71,1736,1737],{},"DDD, lorsqu'il est utilisé dans un cadre full-stack (Nuxt, Node.js, etc.), crée :",[1194,1739,1740,1743,1746],{},[141,1741,1742],{},"🔄 Une communication claire entre les développeurs et les entreprises",[141,1744,1745],{},"🧩 Une meilleure maintenabilité",[141,1747,1748],{},"⚙️ Des décisions techniques alignées",[1206,1750],{},[123,1752,1754],{"id":1753},"votre-prochaine-étape","Votre prochaine étape",[71,1756,1757],{},"Que vous soyez une startup ou une entreprise, la consultation stratégique IT peut remodeler votre manière de croître. Avec ONE-FRONT, vous ne construisez pas seulement des logiciels — vous créez de l'alignement.",[71,1759,1760],{},"👉 Laissez la technologie travailler pour les entreprises, les développeurs et les utilisateurs.",[71,1762,1763],{},[75,1764,1765],{},"Prêt à transformer ?",[1143,1767,1768],{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":175,"searchDepth":190,"depth":190,"links":1770},[1771,1772,1775,1776,1779,1782],{"id":1185,"depth":190,"text":1186},{"id":1210,"depth":190,"text":1211,"children":1773},[1774],{"id":1217,"depth":209,"text":1218},{"id":1349,"depth":190,"text":1350},{"id":1466,"depth":190,"text":1467,"children":1777},[1778],{"id":1500,"depth":209,"text":1501},{"id":1568,"depth":190,"text":1569,"children":1780},[1781],{"id":1572,"depth":209,"text":1573},{"id":1753,"depth":190,"text":1754},"2025-04-25","Orientation et planification stratégique pour la transformation numérique de votre entreprise, alignée sur les normes mondiales et propulsée par le cadre ONE-FRONT.",{"src":1786},"/blog/strategy/planing.png",{},{"title":47,"description":1784},"CWOFJ23zZ0g1l8FQU1yHHwPq7EYWUZECU137oD8x7Kk",1779118044822]