{"id":2652,"date":"2021-07-04T19:43:24","date_gmt":"2021-07-04T22:43:24","guid":{"rendered":"https:\/\/elemarjr.com\/arquiteturadesoftware\/?p=2652"},"modified":"2024-01-16T15:06:04","modified_gmt":"2024-01-16T18:06:04","slug":"as-origens-da-complexidade","status":"publish","type":"volume-1","link":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/","title":{"rendered":"AP-D As origens da complexidade"},"content":{"rendered":"<p><b>Em qualquer cen\u00e1rio, quanto maior a complexidade, maiores s\u00e3o os custos envolvidos.<\/b> Por isso, tanto na elabora\u00e7\u00e3o quanto na avalia\u00e7\u00e3o de <em>designs\u00a0<\/em>arquiteturais, onde geralmente se busca otimizar o custo &#8211; que \u00e9 um atributo de qualidade &#8211; \u00e9 natural \u00a0a busca pelo \u201cmais simples\u201d. Infelizmente, a complexidade emerge com a necessidade de entregar mais valor para o neg\u00f3cio e suportar melhor a escala, preservando a confiabilidade.<\/p>\n<p><b>A complexidade tem quatro origens gen\u00e9ricas distintas que devem ser combatidas ou, pelo menos, controladas. S\u00e3o elas: dimensionalidade, interdepend\u00eancia, influ\u00eancia do ambiente e irreversibilidade.\u00a0<\/b>\\<\/p>\n<h2>Dimensionalidade<\/h2>\n<p>Quanto maior o n\u00famero de vari\u00e1veis envolvidas, maior ser\u00e1 a dimensionalidade. Por isso, por exemplo, qualquer software com mais <i>features <\/i>se torna mais complexo. A cada novo processo na organiza\u00e7\u00e3o, menor a simplicidade. Toda exce\u00e7\u00e3o suportada aumenta o custo.<\/p>\n<p>Em uma arquitetura monol\u00edtica, mais c\u00f3digo significa mais complexidade para desenvolvedores. Em uma arquitetura baseada em microsservi\u00e7os, mais artefatos para distribuir, independentemente, significa mais complexidade para a opera\u00e7\u00e3o.<strong> \u00c9 parte das pr\u00e1ticas de arquitetura determinar onde dimensionalidade maior representa mais problemas. Entretanto, dimensionalidade \u00e9 uma fonte imposs\u00edvel de evitar em definitivo.<\/strong><\/p>\n<h2>Interdepend\u00eancia e rela\u00e7\u00f5es<\/h2>\n<p>Na medida em que as expectativas relacionadas a software aumentam, crescem tamb\u00e9m as demandas por adotar solu\u00e7\u00f5es &#8220;prontas&#8221; que possibilitem atender as demandas do neg\u00f3cio.<\/p>\n<p>Quanto mais componentes externos em um sistema, maiores os desafios para controlar a evolu\u00e7\u00e3o das vers\u00f5es e balancear a atualiza\u00e7\u00e3o tecnol\u00f3gica com a necessidade de implementar\u00a0<em>features.<\/em><\/p>\n<h2>Influ\u00eancia do ambiente<\/h2>\n<p><b>Opera\u00e7\u00f5es interdependentes demandam mais esfor\u00e7o de\u00a0comunica\u00e7\u00e3o e sincroniza\u00e7\u00e3o.<\/b> N\u00e3o raro, a indisponibilidade de um recurso impossibilita o uso de outro, aparentemente n\u00e3o relacionado. \u00c9 bastante comum que uma performance mais pobre de uma parte de um sistema deixe ele todo \u201clento\u201d.<\/p>\n<p>A influ\u00eancia do ambiente \u00e9 &#8220;afrouxada&#8221; pela utiliza\u00e7\u00e3o de t\u00e9cnicas resilientes e ado\u00e7\u00e3o de abstra\u00e7\u00f5es. <strong>Entretanto, &#8220;nenhum sistema \u00e9 uma ilha&#8221; e, em geral, a influ\u00eancia do ambiente pode ser minimizada, mas n\u00e3o evitada.<\/strong><\/p>\n<h2>Irreversibilidade<\/h2>\n<p>Decis\u00f5es irrevers\u00edveis implicam em mais planejamento, cuidado na implementa\u00e7\u00e3o, testes e, consequentemente, complexidade.<\/p>\n<p>A ado\u00e7\u00e3o de metodologias \u00e1geis substitu\u00edram longos ciclos de desenvolvimento por abordagens iterativas, mais f\u00e1ceis de verificar e validar. Da mesma forma, servidores imut\u00e1veis tornaram mais f\u00e1ceis executar o <em>deploy <\/em>e, principalmente,\u00a0<em>rollbacks<\/em>.<\/p>\n<p>Toda decis\u00e3o arquitetural que n\u00e3o pode ser desfeita implica em complexidade.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"featured_media":2629,"parent":0,"comment_status":"open","ping_status":"closed","template":"","url":[72],"sessoes":[73],"apendices":[45],"capitulos":[],"class_list":["post-2652","volume-1","type-volume-1","status-publish","has-post-thumbnail","hentry","url-permanente","sessoes-x-apendice","apendices-apendice-d"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AP-D As origens da complexidade - Manual do Arquiteto de Software<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AP-D As origens da complexidade - Manual do Arquiteto de Software\" \/>\n<meta property=\"og:description\" content=\"Em qualquer cen\u00e1rio, quanto maior a complexidade, maiores s\u00e3o os custos envolvidos. Por isso, tanto na elabora\u00e7\u00e3o quanto na avalia\u00e7\u00e3o de designs\u00a0arquiteturais, onde geralmente se busca otimizar o custo &#8211; que \u00e9 um atributo de qualidade &#8211; \u00e9 natural \u00a0a busca pelo \u201cmais simples\u201d. Infelizmente, a complexidade emerge com a necessidade de entregar mais valor [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/\" \/>\n<meta property=\"og:site_name\" content=\"Manual do Arquiteto de Software\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/eximiaco\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-16T18:06:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@eximiaco\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/\",\"url\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/\",\"name\":\"AP-D As origens da complexidade - Manual do Arquiteto de Software\",\"isPartOf\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg\",\"datePublished\":\"2021-07-04T22:43:24+00:00\",\"dateModified\":\"2024-01-16T18:06:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#primaryimage\",\"url\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg\",\"contentUrl\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg\",\"width\":1024,\"height\":683},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Volume 1\",\"item\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AP-D As origens da complexidade\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#website\",\"url\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/\",\"name\":\"Manual do Arquiteto de Software\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#organization\",\"name\":\"EximiaCo\",\"url\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2022\/04\/simbolo-eximiaco.jpg\",\"contentUrl\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2022\/04\/simbolo-eximiaco.jpg\",\"width\":150,\"height\":150,\"caption\":\"EximiaCo\"},\"image\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/eximiaco\",\"https:\/\/x.com\/eximiaco\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AP-D As origens da complexidade - Manual do Arquiteto de Software","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/","og_locale":"pt_BR","og_type":"article","og_title":"AP-D As origens da complexidade - Manual do Arquiteto de Software","og_description":"Em qualquer cen\u00e1rio, quanto maior a complexidade, maiores s\u00e3o os custos envolvidos. Por isso, tanto na elabora\u00e7\u00e3o quanto na avalia\u00e7\u00e3o de designs\u00a0arquiteturais, onde geralmente se busca otimizar o custo &#8211; que \u00e9 um atributo de qualidade &#8211; \u00e9 natural \u00a0a busca pelo \u201cmais simples\u201d. Infelizmente, a complexidade emerge com a necessidade de entregar mais valor [&hellip;]","og_url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/","og_site_name":"Manual do Arquiteto de Software","article_publisher":"https:\/\/facebook.com\/eximiaco","article_modified_time":"2024-01-16T18:06:04+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@eximiaco","twitter_misc":{"Est. tempo de leitura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/","url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/","name":"AP-D As origens da complexidade - Manual do Arquiteto de Software","isPartOf":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#website"},"primaryImageOfPage":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#primaryimage"},"image":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#primaryimage"},"thumbnailUrl":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg","datePublished":"2021-07-04T22:43:24+00:00","dateModified":"2024-01-16T18:06:04+00:00","breadcrumb":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#primaryimage","url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg","contentUrl":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/07\/john-barkiple-l090uFWoPaI-unsplash.jpg","width":1024,"height":683},{"@type":"BreadcrumbList","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/as-origens-da-complexidade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/"},{"@type":"ListItem","position":2,"name":"Volume 1","item":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/"},{"@type":"ListItem","position":3,"name":"AP-D As origens da complexidade"}]},{"@type":"WebSite","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#website","url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/","name":"Manual do Arquiteto de Software","description":"","publisher":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#organization","name":"EximiaCo","url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#\/schema\/logo\/image\/","url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2022\/04\/simbolo-eximiaco.jpg","contentUrl":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2022\/04\/simbolo-eximiaco.jpg","width":150,"height":150,"caption":"EximiaCo"},"image":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/eximiaco","https:\/\/x.com\/eximiaco"]}]}},"_links":{"self":[{"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/volume-1\/2652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/volume-1"}],"about":[{"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/types\/volume-1"}],"replies":[{"embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/comments?post=2652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/media\/2629"}],"wp:attachment":[{"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/media?parent=2652"}],"wp:term":[{"taxonomy":"url","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/url?post=2652"},{"taxonomy":"sessoes","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/sessoes?post=2652"},{"taxonomy":"apendices","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/apendices?post=2652"},{"taxonomy":"capitulos","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/capitulos?post=2652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}