{"id":36518,"date":"2019-10-31T22:12:07","date_gmt":"2019-10-31T19:12:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\/"},"modified":"2019-10-31T22:12:07","modified_gmt":"2019-10-31T19:12:07","slug":"programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Architecture logicielle et conception de syst\u00e8mes : vue d'ensemble et guide des ressources","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bonjour, coll\u00e8gues.<\/p>\n<p>Aujourd'hui, nous vous proposons la traduction d'un article de Tugberk Ugurlu, qui s'est attel\u00e9 \u00e0 d\u00e9crire, de mani\u00e8re relativement succincte, les principes de conception des syst\u00e8mes logiciels modernes. Voici ce que l'auteur dit de lui dans l'intervalle :<\/p>\n<p><img decoding=\"async\" alt=\"Architecture logicielle et conception de syst\u00e8mes : vue d&#039;ensemble et guide des ressources\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00c9tant donn\u00e9 qu'il est absolument impossible de couvrir dans un compte-rendu une telle vaste th\u00e9matique que les mod\u00e8les architecturaux + mod\u00e8les de conception \u00e0 l'\u00e9tat de 2019, nous recommandons non seulement le texte de M. Ugurlu, mais aussi les nombreuses r\u00e9f\u00e9rences qu'il a gentiment fournies. Si cela vous pla\u00eet, nous publierons \u00e9galement un texte plus sp\u00e9cialis\u00e9 sur la conception de syst\u00e8mes distribu\u00e9s.<\/p>\n<p><img decoding=\"async\" alt=\"Architecture logicielle et conception de syst\u00e8mes : vue d&#039;ensemble et guide des ressources\" src=\"\/wp-content\/uploads\/2019\/07\/4ccec9506aedb91bb601ebc32b6762be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Image <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">d'Isaac Smith<\/a><\/noindex> provenant du site Unsplash<\/i><\/p>\n<p>Si vous n'avez jamais \u00e9t\u00e9 confront\u00e9 \u00e0 des d\u00e9fis tels que la conception d'un syst\u00e8me logiciel \u00e0 partir de z\u00e9ro, alors, en commen\u00e7ant ce travail, il est parfois difficile de savoir par o\u00f9 commencer. Je pense qu'il est d'abord n\u00e9cessaire de d\u00e9finir les limites afin d'avoir une id\u00e9e relativement claire de ce que vous allez concevoir, puis de retrousser vos manches et de travailler sans d\u00e9passer ces limites. Comme point de d\u00e9part, vous pouvez prendre un produit ou un service (id\u00e9alement celui que vous aimez beaucoup) et analyser sa r\u00e9alisation. Vous pourriez \u00eatre surpris de voir \u00e0 quel point ce produit semble simple, alors qu'en r\u00e9alit\u00e9, une immense complexit\u00e9 y est cach\u00e9e. N'oubliez pas : <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">le simple est g\u00e9n\u00e9ralement complexe<\/a><\/noindex>, et c'est normal.<\/p>\n<p>Je pense que le meilleur conseil que je puisse donner \u00e0 ceux qui commencent \u00e0 concevoir un syst\u00e8me est le suivant : ne faites aucune hypoth\u00e8se ! D\u00e8s le d\u00e9but, il faut pr\u00e9ciser les faits connus sur ce syst\u00e8me et les attentes qui l'entourent. Voici quelques bonnes questions dont les r\u00e9ponses vous aideront \u00e0 commencer la conception :<\/p>\n<ul>\n<li>Quel est le probl\u00e8me que nous essayons de r\u00e9soudre ? <\/li>\n<li>Quel est le nombre maximal d'utilisateurs qui interagiront avec notre syst\u00e8me ?<\/li>\n<li>Quels mod\u00e8les d'\u00e9criture et de lecture de donn\u00e9es allons-nous utiliser ? <\/li>\n<li>Quels sont les sc\u00e9narios d'\u00e9chec pr\u00e9vus, comment allons-nous y faire face ?<\/li>\n<li>Quelles sont les attentes en mati\u00e8re de coh\u00e9rence et de disponibilit\u00e9 du syst\u00e8me ? <\/li>\n<li>Faut-il tenir compte de certaines exigences li\u00e9es \u00e0 la v\u00e9rification externe et \u00e0 la r\u00e9glementation ?<\/li>\n<li>Quelles cat\u00e9gories de donn\u00e9es confidentielles allons-nous stocker ?<\/li>\n<\/ul>\n<p>\nCe ne sont l\u00e0 que quelques questions qui m'ont \u00e9t\u00e9 utiles dans mon travail, tant pour moi que pour les \u00e9quipes avec lesquelles j'ai eu l'occasion de collaborer au cours de ma carri\u00e8re professionnelle. Si vous connaissez les r\u00e9ponses \u00e0 ces questions (et \u00e0 toute autre question pertinente dans le contexte dans lequel vous travaillez), nous pouvons progressivement plonger dans les d\u00e9tails techniques de la t\u00e2che.<\/p>\n<p><b>D\u00e9finissons le niveau de r\u00e9f\u00e9rence<\/b><\/p>\n<p>Que comprends-je ici par \u00ab niveau de r\u00e9f\u00e9rence \u00bb ? En r\u00e9alit\u00e9, de nos jours, la plupart des probl\u00e8mes dans l'industrie du logiciel peuvent \u00eatre \u00ab r\u00e9solus \u00bb \u00e0 l'aide des m\u00e9thodes et technologies d\u00e9j\u00e0 disponibles. Ainsi, en vous orientant dans ce paysage, vous b\u00e9n\u00e9ficiez d'un certain avantage en face de probl\u00e8mes que d'autres ont d\u00fb r\u00e9soudre avant vous. N'oublions pas que les programmes sont \u00e9crits pour r\u00e9soudre des probl\u00e8mes d'entreprises et d'utilisateurs, c'est pourquoi nous cherchons \u00e0 aborder les probl\u00e8mes de la mani\u00e8re la plus directe et simple (du point de vue de l'utilisateur). Pourquoi est-il important de se rappeler cela ? Peut-\u00eatre aimez-vous chercher des solutions uniques \u00e0 chaque probl\u00e8me dans votre syst\u00e8me de r\u00e9f\u00e9rences, car vous pensez : \u00ab quel genre de programmeur suis-je si je suis toujours des mod\u00e8les \u00bb ? En r\u00e9alit\u00e9, <b>l'art ici consiste \u00e0 prendre des d\u00e9cisions sur o\u00f9 et quoi faire<\/b>. Bien s\u00fbr, chacun de nous est parfois confront\u00e9 \u00e0 des probl\u00e8mes uniques, chacun d'eux repr\u00e9sentant un v\u00e9ritable d\u00e9fi. Cependant, si notre niveau de r\u00e9f\u00e9rence est clairement d\u00e9fini, nous savons o\u00f9 concentrer nos efforts : soit chercher des solutions toutes faites au probl\u00e8me pos\u00e9, soit approfondir son \u00e9tude et sa compr\u00e9hension.<\/p>\n<p>Je pense avoir r\u00e9ussi \u00e0 vous convaincre que, si un sp\u00e9cialiste ma\u00eetrise bien l'architecture de certains syst\u00e8mes logiciels remarquables, ces connaissances seront indispensables pour ma\u00eetriser l'art de l'architecture et \u00e9tablir une solide base dans ce domaine.<\/p>\n<p>Bien, par quoi commencer ? <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> dispose d'un d\u00e9p\u00f4t sur GitHub intitul\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, \u00e0 partir duquel vous pourrez apprendre \u00e0 concevoir des syst\u00e8mes \u00e0 grande \u00e9chelle, ainsi qu'\u00e0 vous pr\u00e9parer \u00e0 des entretiens sur ce sujet. Le d\u00e9p\u00f4t comprend une section avec des exemples <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">d'architectures r\u00e9elles<\/a><\/noindex>, o\u00f9, en particulier, il est question de la mani\u00e8re dont ils abordent la conception de leurs syst\u00e8mes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">certaines entreprises bien connues<\/a><\/noindex>, comme Twitter, Uber, etc.<\/p>\n<p>Cependant, avant d'aborder ce sujet, examinons plus en d\u00e9tail les d\u00e9fis architecturaux les plus importants auxquels on doit faire face dans la pratique. Cela est crucial, car il faut pr\u00e9ciser de NOMBREUX aspects d'un probl\u00e8me complexe et multiforme, puis le r\u00e9soudre dans le cadre de la r\u00e9glementation en vigueur dans ce syst\u00e8me. <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">Jackson Gabbard<\/a><\/noindex>, ancien employ\u00e9 de Facebook, a enregistr\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">une vid\u00e9o de 50 minutes sur les entretiens consacr\u00e9s \u00e0 la conception de syst\u00e8mes<\/a><\/noindex>, o\u00f9 il a partag\u00e9 son exp\u00e9rience apr\u00e8s avoir examin\u00e9 des centaines de candidats. Bien que la vid\u00e9o traite sp\u00e9cifiquement de la conception de grands syst\u00e8mes et des crit\u00e8res de succ\u00e8s importants lors de la s\u00e9lection d'un candidat pour ce poste, elle constituera n\u00e9anmoins une ressource exhaustive sur les \u00e9l\u00e9ments les plus importants en mati\u00e8re de conception de syst\u00e8mes. Je vous propose \u00e9galement <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">un r\u00e9sum\u00e9<\/a><\/noindex> de cette vid\u00e9o.<\/p>\n<p><b>Acqu\u00e9rez des connaissances sur le stockage et l'extraction des donn\u00e9es<\/b> <\/p>\n<p>En g\u00e9n\u00e9ral, votre d\u00e9cision sur la mani\u00e8re dont vous allez stocker et fournir vos donn\u00e9es \u00e0 long terme a un impact critique sur les performances du syst\u00e8me. Par cons\u00e9quent, vous devez d'abord comprendre les caract\u00e9ristiques attendues de l'\u00e9criture et de la lecture des donn\u00e9es dans votre syst\u00e8me. Ensuite, vous devez \u00eatre capable d'\u00e9valuer ces indicateurs et de faire vos choix en cons\u00e9quence. Cependant, vous ne pourrez bien g\u00e9rer cette t\u00e2che que si vous ma\u00eetrisez les mod\u00e8les de stockage de donn\u00e9es existants. En principe, cela implique une connaissance approfondie du <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">choix de la base de donn\u00e9es<\/a><\/noindex>. <\/p>\n<p>Les bases de donn\u00e9es peuvent \u00eatre consid\u00e9r\u00e9es comme des structures de donn\u00e9es dot\u00e9es d'une \u00e9volutivit\u00e9 et d'une durabilit\u00e9 exceptionnelles. Ainsi, la connaissance des structures de donn\u00e9es vous sera tr\u00e8s utile \u00e9galement lors du choix d'une base de donn\u00e9es. Par exemple, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">Redis<\/a><\/noindex> \u2013 est un serveur de structures de donn\u00e9es qui prend en charge diff\u00e9rents types de valeurs. Il permet de travailler avec des structures de donn\u00e9es telles que des listes et des ensembles, de lire des donn\u00e9es \u00e0 l'aide d'algorithmes connus, par exemple, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, organisant ce travail de mani\u00e8re durable et hautement disponible. <\/p>\n<p><img decoding=\"async\" alt=\"Architecture logicielle et conception de syst\u00e8mes : vue d&#039;ensemble et guide des ressources\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Image <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zeller<\/a><\/noindex> provenant du site Unsplash<\/i><\/p>\n<p>Une fois que vous avez compris les diff\u00e9rents mod\u00e8les de stockage des donn\u00e9es, passez \u00e0 l'\u00e9tude de la coh\u00e9rence et de la disponibilit\u00e9 des donn\u00e9es. Vous devrez d'abord assimiler <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">le th\u00e9or\u00e8me CAP<\/a><\/noindex> , au moins dans ses grandes lignes, puis affiner ces connaissances en examinant plus en d\u00e9tail les mod\u00e8les \u00e9tablis de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">coh\u00e9rence<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">disponibilit\u00e9<\/a><\/noindex>. Cela vous permettra d'\u00e9largir votre perspective dans ce domaine et de comprendre que la lecture et l'\u00e9criture des donn\u00e9es sont en r\u00e9alit\u00e9 deux probl\u00e8mes tr\u00e8s diff\u00e9rents, chacun pr\u00e9sentant ses propres d\u00e9fis. Avec quelques mod\u00e8les de garantie de coh\u00e9rence et de disponibilit\u00e9, vous pourrez consid\u00e9rablement am\u00e9liorer la performance de votre syst\u00e8me tout en garantissant un approvisionnement constant de donn\u00e9es \u00e0 vos applications.<\/p>\n<p>Enfin, en terminant la discussion sur les questions de stockage des donn\u00e9es, il convient \u00e9galement de parler de la mise en cache. Celle-ci doit-elle \u00eatre effectu\u00e9e simultan\u00e9ment sur le client et sur le serveur ? Quelles donn\u00e9es allez-vous avoir en cache ? Et pourquoi ? Comment allez-vous organiser l'invalidation du cache ? Se fera-t-elle r\u00e9guli\u00e8rement, \u00e0 intervalles r\u00e9guliers ? Si oui, \u00e0 quelle fr\u00e9quence ? Je recommande de commencer \u00e0 travailler sur ces sujets \u00e0 partir de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">la section suivante<\/a><\/noindex> du livre mentionn\u00e9 sur la conception de syst\u00e8mes. <\/p>\n<p><b>Mod\u00e8les de communication<\/b><\/p>\n<p>Les syst\u00e8mes sont compos\u00e9s de diff\u00e9rents composants ; il peut s'agir de divers processus fonctionnant sur le m\u00eame n\u0153ud physique ou de diff\u00e9rentes machines op\u00e9rant dans diff\u00e9rentes parties de votre r\u00e9seau. Certains de ces ressources peuvent \u00eatre priv\u00e9es \u00e0 l'int\u00e9rieur de votre r\u00e9seau, mais d'autres doivent \u00eatre publiques et accessibles aux consommateurs y acc\u00e9dant depuis l'ext\u00e9rieur.<\/p>\n<p>Il est n\u00e9cessaire d'assurer la communication de ces ressources entre elles, ainsi que l'\u00e9change d'informations entre l'ensemble du syst\u00e8me et le monde ext\u00e9rieur. Dans le contexte de la conception de syst\u00e8mes, nous faisons face, encore une fois, \u00e0 un ensemble de nouveaux d\u00e9fis uniques. Voyons comment les <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">flux de t\u00e2ches asynchrones<\/a><\/noindex>, et quelles sont les<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">divers mod\u00e8les de communication disponibles<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Architecture logicielle et conception de syst\u00e8mes : vue d&#039;ensemble et guide des ressources\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Image <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/DgZxBnZeQo8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Tony Stoddard<\/a><\/noindex> provenant du site Unsplash<\/i><\/p>\n<p>Lors de l'\u00e9tablissement de la communication avec le monde ext\u00e9rieur, il est toujours tr\u00e8s important <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">s\u00e9curit\u00e9<\/a><\/noindex>, pour lequel il faut \u00e9galement aborder s\u00e9rieusement et activement. <\/p>\n<p><b>Distribution des connexions<\/b><\/p>\n<p>Je ne suis pas s\u00fbr que le fait de donner \u00e0 ce sujet une section s\u00e9par\u00e9e semble justifi\u00e9 \u00e0 tout le monde. N\u00e9anmoins, je vais d\u00e9velopper ici ce concept et je pense que le mat\u00e9riel de cette section est le plus pr\u00e9cis\u00e9ment d\u00e9crit par le terme \u00ab distribution des connexions \u00bb (connection distribution).<\/p>\n<p>Les syst\u00e8mes se forment par le bon raccordement d'un grand nombre de composants, et leur communication entre eux est souvent organis\u00e9e sur la base de protocoles \u00e9tablis, par exemple, TCP et UDP. Cependant, ces protocoles \u00e0 eux seuls ne suffisent souvent pas \u00e0 satisfaire tous les besoins des syst\u00e8mes modernes, qui sont souvent soumis \u00e0 de fortes charges, et qui d\u00e9pendent \u00e9galement fortement des besoins des utilisateurs. Il est souvent n\u00e9cessaire de trouver des moyens de distribuer les connexions pour faire face \u00e0 ces charges \u00e9lev\u00e9es dans le syst\u00e8me.<\/p>\n<p>\u00c0 la base de cette distribution se trouve un <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">syst\u00e8me de noms de domaine<\/a><\/noindex> (DNS). Ce syst\u00e8me permet de convertir un nom de domaine, par exemple, un algorithme de cycle pond\u00e9r\u00e9 (weighted round robin) et des m\u00e9thodes bas\u00e9es sur la latence, pour aider \u00e0 distribuer la charge. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8\">\u00c9quilibrage de charge<\/a><\/noindex> est fondamentalement important, et pratiquement tout grand syst\u00e8me sur Internet, avec lequel nous devons aujourd'hui composer, se trouve derri\u00e8re un ou plusieurs r\u00e9partiteurs de charge. Les r\u00e9partiteurs de charge aident \u00e0 distribuer les requ\u00eates des clients entre de nombreuses instances disponibles. Les r\u00e9partiteurs de charge peuvent \u00eatre mat\u00e9riels ou logiciels, mais en pratique, nous avons souvent affaire \u00e0 des logiciels, par exemple \u00e0 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/elasticloadbalancing\/\">ELB<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#reverse-proxy-web-server\">Les proxys inverses<\/a><\/noindex> sont \u00e9galement conceptuellement tr\u00e8s similaires aux r\u00e9partiteurs de charge, bien qu'il existe plusieurs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">diff\u00e9rences marqu\u00e9es<\/a><\/noindex>. Ces diff\u00e9rences doivent absolument \u00eatre prises en compte lors de la conception d'un syst\u00e8me en fonction de vos besoins.<\/p>\n<p>Il convient \u00e9galement de conna\u00eetre <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">les r\u00e9seaux de distribution de contenu<\/a><\/noindex> (CDN). Un CDN est un r\u00e9seau de proxy r\u00e9parti \u00e0 l'\u00e9chelle mondiale, fournissant des informations \u00e0 partir des n\u0153uds qui sont g\u00e9ographiquement plus proches de l'utilisateur sp\u00e9cifique. Les r\u00e9seaux CDN sont pr\u00e9f\u00e9rables lorsque vous travaillez avec des fichiers statiques \u00e9crits en JavaScript, CSS et HTML. De plus, de nos jours, des services cloud sont populaires, offrant des gestionnaires de trafic, par exemple, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/traffic-manager\/traffic-manager-overview?ranMID=24542&amp;ranEAID=je6NUbpObpQ&amp;ranSiteID=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;epi=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;irgwc=1&amp;OCID=AID2000142_aff_7593_1243925&amp;tduid=(ir__ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00)(7593)(1243925)(je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ)()&amp;irclickid=_ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00\">Azure Traffic Manager<\/a><\/noindex>, vous assurant une distribution mondiale et des latences r\u00e9duites lors de l'utilisation de contenu dynamique. Cependant, ces services sont g\u00e9n\u00e9ralement utiles dans les cas o\u00f9 l'on doit travailler avec des services web sans \u00e9tat. <\/p>\n<p><b>Parlons de la logique m\u00e9tier. Structuration de la logique m\u00e9tier, des flux de t\u00e2ches et des composants<\/b><\/p>\n<p>Ainsi, nous avons eu l'occasion de discuter des divers aspects d'infrastructure du syst\u00e8me. Il est probable que l'utilisateur ne se soucie m\u00eame pas de tous ces \u00e9l\u00e9ments dans votre syst\u00e8me et, honn\u00eatement, il ne s'en pr\u00e9occupe pas du tout. Ce qui int\u00e9resse l'utilisateur, c'est d'interagir avec votre syst\u00e8me, ce qu'il peut accomplir en proc\u00e9dant ainsi, ainsi que comment le syst\u00e8me ex\u00e9cute les commandes de l'utilisateur, ce qu'il fait et comment il traite les donn\u00e9es de l'utilisateur.<\/p>\n<p>Comme il est clair d'apr\u00e8s le titre de cet article, je comptais parler ici d'architecture logicielle et de conception de syst\u00e8mes. Par cons\u00e9quent, je n'avais pas pr\u00e9vu d'aborder les mod\u00e8les de conception logicielle, qui d\u00e9crivent comment les composants logiciels sont cr\u00e9\u00e9s. Cependant, plus j'y pense, plus il me semble que la fronti\u00e8re entre les mod\u00e8les de conception logicielle et les mod\u00e8les architecturaux est tr\u00e8s floue, et que ces deux concepts sont \u00e9troitement li\u00e9s. Prenons par exemple <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">la gestion des \u00e9v\u00e9nements<\/a><\/noindex> (event sourcing). D\u00e8s que vous adoptez ce mod\u00e8le architectural, il influence pratiquement tous les aspects de votre syst\u00e8me : le stockage \u00e0 long terme des donn\u00e9es, le niveau de coh\u00e9rence adopt\u00e9 dans votre syst\u00e8me, la configuration des composants, etc. C'est pourquoi j'ai d\u00e9cid\u00e9 de mentionner certains mod\u00e8les architecturaux qui touchent directement \u00e0 la logique m\u00e9tier. M\u00eame si cet article doit se limiter \u00e0 une simple liste, je vous recommande de vous familiariser avec elle et de r\u00e9fl\u00e9chir aux id\u00e9es li\u00e9es \u00e0 ces mod\u00e8les. Voici quelques-uns :<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">Principes SOLID<\/a><\/noindex> <\/li>\n<li>Concepts <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">Conception orient\u00e9e domaine<\/a><\/noindex>, en particulier, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">agr\u00e9gats<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">commandes et \u00e9v\u00e9nements<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Architecture hexagonale<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">S\u00e9paration des responsabilit\u00e9s en commandes et requ\u00eates (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Gestion des \u00e9v\u00e9nements<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Mod\u00e8le acteur<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">Mod\u00e8les de conception MVC, MVVM et MVP<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Approches collaboratives<\/b><\/p>\n<p>Il est extr\u00eamement improbable que vous soyez le seul responsable du processus de conception du syst\u00e8me dans un projet. Au contraire, il est fort probable que vous deviez collaborer avec des coll\u00e8gues travaillant \u00e0 la fois dans le cadre de votre t\u00e2che et en dehors. Dans ce cas, il peut \u00eatre n\u00e9cessaire d'\u00e9valuer les solutions technologiques choisies avec vos coll\u00e8gues, d'identifier les besoins commerciaux et de comprendre comment diviser au mieux les t\u00e2ches.<\/p>\n<p><img decoding=\"async\" alt=\"Architecture logicielle et conception de syst\u00e8mes : vue d&#039;ensemble et guide des ressources\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Image <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> provenant du site Unsplash<\/i><\/p>\n<p>Tout d'abord, il sera n\u00e9cessaire de d\u00e9velopper une vision pr\u00e9cise et largement accept\u00e9e de quel est l'objectif commercial que vous tentez d'atteindre et avec quels \u00e9l\u00e9ments mobiles vous devrez traiter. Les techniques de mod\u00e9lisation collaborative, notamment, <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">le brainstorming d'\u00e9v\u00e9nements<\/a><\/noindex> (event storming) aident \u00e0 acc\u00e9l\u00e9rer consid\u00e9rablement ce processus et augmentent vos chances de succ\u00e8s. Vous pouvez travailler sur cette t\u00e2che avant ou apr\u00e8s avoir d\u00e9fini <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">les fronti\u00e8res de vos services<\/a><\/noindex>, puis approfondir ce travail \u00e0 mesure que le produit m\u00fbrit. En fonction du niveau de consensus qui sera atteint ici, vous pourrez \u00e9galement formuler <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">un langage commun<\/a><\/noindex> pour le contexte limit\u00e9 dans lequel vous travaillez. Lorsque vous aurez besoin de parler de l'architecture de votre syst\u00e8me, le <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">mod\u00e8le C4<\/a><\/noindex>, propos\u00e9 par <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>, est particuli\u00e8rement utile, surtout lorsque vous devez comprendre dans quelle mesure vous devrez entrer dans les d\u00e9tails du probl\u00e8me en visualisant les \u00e9l\u00e9ments que vous souhaitez communiquer.<\/p>\n<p>Il existe probablement d'autres technologies matures dans ce domaine qui sont tout aussi utiles que la conception orient\u00e9e objet. Cependant, nous revenons toujours \u00e0 la compr\u00e9hension du domaine, donc les connaissances et l'exp\u00e9rience dans le domaine de la <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">conception orient\u00e9e objet<\/a><\/noindex> devraient vous \u00eatre utiles.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/461283\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412\u043e\u0442 \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0432 \u0441\u0443\u0445\u043e\u043c \u043e\u0441\u0442\u0430\u0442\u043a\u0435: \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432 \u0445\u0430\u0431\u0440\u043e\u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043e\u0441\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b + \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 2019 \u0433\u043e\u0434, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Architecture logicielle et conception de syst\u00e8mes : panorama g\u00e9n\u00e9ral et guide des ressources | ProHoster","description":"Bonjour, chers coll\u00e8gues. Aujourd'hui, nous vous pr\u00e9sentons la traduction d'un article de Tugberk Ugurlu, qui a pris la t\u00e2che relativement courte d'exposer les principes de la conception logicielle moderne.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster","og:description":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:12:07+00:00","article:modified_time":"2019-10-31T19:12:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36518","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 03:40:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:43:33","updated":"2026-01-22 03:40:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}