{"id":1009,"date":"2021-04-01T19:11:54","date_gmt":"2021-04-01T22:11:54","guid":{"rendered":"https:\/\/elemarjr.com\/arquiteturadesoftware\/?p=1009"},"modified":"2024-01-11T17:49:32","modified_gmt":"2024-01-11T20:49:32","slug":"capitulo-00","status":"publish","type":"volume-1","link":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/","title":{"rendered":"Introdu\u00e7\u00e3o &#8211; v1"},"content":{"rendered":"<p>Desenvolvimento de software \u00e9 atividade cada vez mais relevante. <strong>\u00c9 dif\u00edcil imaginar qualquer atividade, em qualquer empresa, em qualquer segmento, que n\u00e3o seja suportada, direta ou indiretamente, por algum tipo de sistema digital.<\/strong> Software bem-feito \u00e9, cada vez mais, premissa para a competitividade.<\/p>\nTodo software tem sua arquitetura. Algumas \u201cemergiram\u201d de forma n\u00e3o supervisionada e, por isso, t\u00eam qualidade question\u00e1vel. Software bem-feito tem boa arquitetura e \u00e9 dif\u00edcil que isso aconte\u00e7a sem a atua\u00e7\u00e3o de algu\u00e9m competente como arquiteto.\n<h2>O que \u00e9 arquitetura de software<\/h2>\nEmbora n\u00e3o exista consenso absoluto sobre o conceito, alguns aspectos s\u00e3o amplamente aceitos. <strong>Qualquer discuss\u00e3o madura sobre a arquitetura de um software aborda, de maneira mais ou menos qualificada, seus componentes, a responsabilidade destes e a forma como eles se relacionam.<\/strong> Ali\u00e1s, isto est\u00e1 alinhado com a defini\u00e7\u00e3o proposta pelo IEEE, que \u00e9 uma das mais mencionadas.\n<hr \/>\n<p style=\"padding-left: 40px;\"><em>Arquitetura de software pode ser definida como a organiza\u00e7\u00e3o fundamental de um sistema, seus componentes, a rela\u00e7\u00f5es entre eles e o ambiente que guia seu design e evolu\u00e7\u00e3o. (IEEE Standard 1471)<\/em><\/p>\n<p><strong>A arquitetura de um software n\u00e3o \u00e9 um conjunto de diagramas, produzidos por algu\u00e9m, frequentemente desatualizados.<\/strong> Os diagramas, ali\u00e1s, s\u00e3o apenas um modelo, uma representa\u00e7\u00e3o, da arquitetura real que est\u00e1 ou estar\u00e1 implementada no software.<br \/>\nAs melhores arquiteturas, geralmente, tem componentes com baixo acoplamento. Ou seja, que funcionam e evoluem de maneira independente, com pouco impacto nos demais, tanto na manuten\u00e7\u00e3o quanto na opera\u00e7\u00e3o. Por outro lado, arquiteturas ruins geralmente tem componentes fracamente delimitados, com forte sobreposi\u00e7\u00e3o, dif\u00edceis de manter e, sobretudo, caros para evoluir.<\/p>\n<h2>A rela\u00e7\u00e3o de arquitetura com <em>design<\/em> de software<\/h2>\n<p><strong>Quando falamos sobre arquitetura, invariavelmente falamos sobre design de software. Entretanto, o oposto n\u00e3o \u00e9 verdadeiro.<\/strong><\/p>\nAs decis\u00f5es sobre design que s\u00e3o parte da arquitetura de um software s\u00e3o aquelas que tem rela\u00e7\u00e3o direta com o atendimento dos objetivos do neg\u00f3cio, respeito a restri\u00e7\u00f5es e atendimento dos atributos de qualidade.\n<hr \/>\n<p>A decis\u00e3o de isolar acesso ao banco de dados em uma \u201cclasse reposit\u00f3rio\u201d, por exemplo, \u00e9 uma decis\u00e3o de design, mas, dificilmente ser\u00e1 uma decis\u00e3o de arquitetura. Afinal, dificilmente ser\u00e1 fundamento para atendimento dos objetivos de neg\u00f3cio, respeito a restri\u00e7\u00f5es e atributos de qualidade. Por outro lado, a ado\u00e7\u00e3o de um cache \u00e9, quase sempre, uma decis\u00e3o de arquitetura pois, este componente pode ser a resposta para atender atributos de qualidade como disponibilidade e performance.<\/p>\n<p>Construir um software <em>cloud-ready<\/em> tamb\u00e9m \u00e9 uma decis\u00e3o de arquitetura, bem como adotar um ou outro fornecedor de nuvem. Ali\u00e1s, as escolhas do banco de dados, das linguagens de programa\u00e7\u00e3o, dos <em>frameworks<\/em> tanto para <em>frontend<\/em> quando <em>backend<\/em> tamb\u00e9m s\u00e3o exemplos de resolu\u00e7\u00f5es arquiteturais pois, certamente, ter\u00e3o implica\u00e7\u00f5es relevantes para a continuidade do software, logo, condi\u00e7\u00f5es para atender o neg\u00f3cio e implica\u00e7\u00f5es sobre o or\u00e7amento (uma das restri\u00e7\u00f5es mais comuns).<\/p>\nA maioria das decis\u00f5es de <em>design<\/em> s\u00e3o individuais, em conformidade com os acordos estabelecidos pelo time de desenvolvimento e acontecem o tempo todo. Algumas decis\u00f5es de <em>design<\/em> relacionadas com a arquitetura, por outro lado, t\u00eam impacto maior e s\u00e3o menos frequentes. Decis\u00f5es arquiteturais raramente s\u00e3o produtos do trabalho individual.\n<h2>As pr\u00e1ticas da arquitetura de software<\/h2>\n<p><strong>As decis\u00f5es de <em>design<\/em> que tem rela\u00e7\u00e3o com a arquitetura s\u00e3o t\u00e3o importantes que, idealmente, devem ser tomadas obedecendo algumas boas pr\u00e1ticas.<\/strong> Ou seja, replicando os comportamentos comuns adotados por times eficientes que produzem software de boa qualidade, que atendem os objetivos do neg\u00f3cio, respeitando restri\u00e7\u00f5es a atingindo atributos de qualidade.<\/p>\nAs pr\u00e1ticas de arquitetura de software maximizam a produtividade. Ou seja, a rela\u00e7\u00e3o entre o valor obtido (desempenho) e o esfor\u00e7o dispensado (empenho). De maneira an\u00e1loga, boa arquitetura maximiza o resultado, otimizando o investimento. Em termos simples, boa arquitetura de software colabora para melhorar o ROI de iniciativas de desenvolvimento.\n<hr \/>\nAs melhores pr\u00e1ticas de arquitetura de software invariavelmente acionam as partes interessadas (<em>stakeholders<\/em>) para explicitar e atualizar os objetivos do neg\u00f3cio que precisam ser atingidos, focando nos resultados e n\u00e3o na forma. Elas tamb\u00e9m devem diagnosticar, at\u00e9 o \u00faltimo momento respons\u00e1vel, as restri\u00e7\u00f5es que devem ser observadas e assegurar que elas sejam respeitadas. Finalmente, tamb\u00e9m devem inferir os atributos de qualidade que garantem a efici\u00eancia no atendimento do neg\u00f3cio e das restri\u00e7\u00f5es.\n<hr \/>\n<p><strong>As melhores pr\u00e1ticas de arquitetura resolvem de maneira leve os principais <em>trade-offs<\/em> &#8211; dire\u00e7\u00f5es conflitantes que precisam ser observadas &#8211; que emergem no levantamento dos objetivos e das restri\u00e7\u00f5es.<\/strong> Por exemplo, disponibilidade &#8211; um atributo de qualidade &#8211; conflita com seguran\u00e7a &#8211; uma restri\u00e7\u00e3o, afinal, disponibilidade implica em adi\u00e7\u00e3o de componentes que ampliam a \u201csuperf\u00edcie de ataque\u201d.<\/p>\n<h2>A abrang\u00eancia da arquitetura de software<\/h2>\nAs decis\u00f5es arquiteturais impactam, obviamente, nas atividades de desenvolvimento, mas tamb\u00e9m tem rela\u00e7\u00e3o com a manuten\u00e7\u00e3o, atualiza\u00e7\u00e3o, entrega (<em>deploy<\/em>) e opera\u00e7\u00e3o do software. Por isso, arquitetura de software \u00e9 parte do esfor\u00e7o de engenharia, que \u00e9 mais amplo.\n<hr \/>\n<p><strong>A boa engenharia de software, conforme a Google, contempla todas as atividades que habilitam um sistema a suportar as mudan\u00e7as de escala, ao longo do tempo, sem sacrificar a efici\u00eancia.<\/strong> Seguramente, as decis\u00f5es arquiteturais s\u00e3o parte crucial para o sucesso da engenharia.<\/p>\nA decis\u00e3o de adotar microsservi\u00e7os, por exemplo, transfere parte da complexidade de desenvolver um software para sua opera\u00e7\u00e3o. H\u00e1 mais o que operar e monitorar e obrigam a ado\u00e7\u00e3o de abordagens mais modernas e automatizadas.\n<h2>A \u201cestrat\u00e9gia\u201d na arquitetura de software<\/h2>\n<p><strong>Estrat\u00e9gia \u00e9 um padr\u00e3o coerente para tomada de decis\u00f5es.<\/strong> Ou seja, quando todas as pessoas de um grupo tomam decis\u00f5es seguindo um mesmo padr\u00e3o coerente, obedecendo um conjunto est\u00e1vel de crit\u00e9rios, diz-se que est\u00e3o alinhados a uma mesma estrat\u00e9gia &#8211; mesmo quando, eventualmente, as decis\u00f5es em si sejam diferentes.<\/p>\n<p>Quando um time de desenvolvimento adota boas pr\u00e1ticas de arquitetura, seus membros seguem uma estrat\u00e9gia comum para suas escolhas e isso \u00e9 extremamente importante. Afinal, para cada problema tecnol\u00f3gico h\u00e1 uma continuidade crescente de respostas vi\u00e1veis &#8211; com pr\u00f3s e contras &#8211; que dificultam o consenso. A alternativa selecionada deve ser aquela que for mais aderente aos objetivos de neg\u00f3cio, restri\u00e7\u00f5es e atributos de qualidade.<\/p>\nNa pr\u00e1tica, isso significa, por exemplo, que qual framework utilizar no <em>frontend<\/em>, por exemplo, \u00e9 menos relevante, sob a perspectiva da arquitetura, que os crit\u00e9rios que foram utilizados para adotar tal tecnologia.\n<h2>O arquiteto de software<\/h2>\n<p>Todo software tem uma arquitetura. Nem sempre, entretanto, ela \u00e9 suportada por boas pr\u00e1ticas arquiteturais.<\/p>\nH\u00e1 quem defenda que as boas pr\u00e1ticas arquiteturais devem ser refor\u00e7adas por todo o time de desenvolvimento e eu concordo com isso. Entretanto, tamb\u00e9m entendo que <strong>algo que \u00e9 responsabilidade de todos, acaba recebendo cuidados de ningu\u00e9m.<\/strong> O arquiteto de software, em um time de desenvolvedor de software, \u00e9 o respons\u00e1vel por garantir que boas pr\u00e1ticas de arquitetura sejam adotadas.\n<hr \/>\n<p><strong>Em um mundo onde especialistas sabem cada vez mais sobre cada vez menos, n\u00e3o se pode esperar que uma \u00fanica pessoa seja capaz de tomar todas as decis\u00f5es importantes relacionadas com a arquitetura.<\/strong> Entretanto, parece coerente ter algu\u00e9m preocupado e respons\u00e1vel por garantir que essas decis\u00f5es sejam tomadas &#8211; este \u00e9 o papel do arquiteto.<\/p>\nO arquiteto de software \u00e9, idealmente, um orquestrador. Ele garante que todas as partes interessadas sejam ouvidas e suas pondera\u00e7\u00f5es sejam levadas em conta na formula\u00e7\u00e3o da arquitetura. Para isso, elabora e mant\u00e9m artefatos abrangentes que facilitam o engajamento.\n<hr \/>\n<p>O arquiteto de software deve, de tempos em tempos, revisar a estrutura de componentes e suas rela\u00e7\u00f5es de um software para garantir que os objetivos do neg\u00f3cio ser\u00e3o atingidos, as restri\u00e7\u00f5es obedecidas e os atributos de qualidade atendidos. <strong>Al\u00e9m de tudo isso, o arquiteto deve adotar postura \u201cprovocativa\u201d para verificar se a entrega est\u00e1 maximizada frente ao melhor custo.<\/strong><\/p>\n<h2>O arquiteto n\u00e3o \u00e9, necessariamente, um \u201cdev s\u00eanior-s\u00eanior\u201d<\/h2>\nEm minha experi\u00eancia, n\u00e3o conheci nenhum arquiteto de software que n\u00e3o tenha sido, tamb\u00e9m, excelente desenvolvedor. Entretanto, embora exista correla\u00e7\u00e3o, n\u00e3o consigo identificar causalidade.\n<hr \/>\n<p><strong>O arquiteto de software precisa de <em>soft skills<\/em> suficientes para poder interagir com os diferentes <em>stakeholders<\/em> de maneira qualificada<\/strong>. Al\u00e9m disso, deve ter capacidade de abstra\u00e7\u00e3o suficiente para representar componentes complexos de maneira compreens\u00edvel. Finalmente, precisa ter \u201csensibilidade t\u00e9cnica\u201d para identificar falhas arquiteturais e acionar as pessoas certas para que as decis\u00f5es sejam as mais assertivas.<\/p>\nA aloca\u00e7\u00e3o de uma pessoa em atividades de arquitetura pode variar significativamente conforme a complexidade ou os riscos do software que est\u00e1 sendo desenvolvido. Em muitos cen\u00e1rios, o arquiteto tem tempo para escrever c\u00f3digo. Outras vezes, as atividades de orquestra\u00e7\u00e3o podem ser demandantes ao ponto de que n\u00e3o sobre tempo para escrever c\u00f3digo em quantidade relevante.\n<h2>Este \u00e9 o in\u00edcio de uma longa jornada&#8230;<\/h2>\n<p><strong>Gosto muito da ideia de dar passos consistentes na dire\u00e7\u00e3o certa, o tempo todo.<\/strong> Nesta introdu\u00e7\u00e3o, tentei consolidar impress\u00f5es sobre arquitetura de software, suas pr\u00e1ticas e as atribui\u00e7\u00f5es de um arquiteto. Nos pr\u00f3ximos cap\u00edtulos, vou apresentar algumas \u201cboas pr\u00e1ticas\u201d de arquitetura que tenho vivenciado como arquiteto e consultor.<\/p>\n<h2>\/\/ TODO<\/h2>\n<p>Antes de avan\u00e7ar para o primeiro cap\u00edtulo, recomendo as seguintes atividades:<\/p>\n<ul>\n<li>Reflita sobre as pr\u00e1ticas de arquitetura de <em>software<\/em> que voc\u00ea tem presenciado. O que tem funcionado? O que n\u00e3o tem gerado os resultados esperados?<\/li>\n<li>Voc\u00ea consegue relacionar os principais componentes do software que est\u00e1 desenvolvendo, suas responsabilidades e a forma como estes se relacionam?<\/li>\n<li>Voc\u00ea consegue relacionar os objetivos de neg\u00f3cio que precisam ser atingidos usando o software que est\u00e1 ajudando a desenvolver? Conhece as principais restri\u00e7\u00f5es? Saberia explicitar os atributos de qualidade?<\/li>\n<\/ul>\n","protected":false},"featured_media":0,"parent":0,"comment_status":"open","ping_status":"open","template":"","url":[],"sessoes":[57],"apendices":[],"capitulos":[15],"class_list":["post-1009","volume-1","type-volume-1","status-publish","hentry","sessoes-secao-1","capitulos-capitulo-1-1"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introdu\u00e7\u00e3o - v1 - 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\/capitulo-00\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introdu\u00e7\u00e3o - v1 - Manual do Arquiteto de Software\" \/>\n<meta property=\"og:description\" content=\"Desenvolvimento de software \u00e9 atividade cada vez mais relevante. \u00c9 dif\u00edcil imaginar qualquer atividade, em qualquer empresa, em qualquer segmento, que n\u00e3o seja suportada, direta ou indiretamente, por algum tipo de sistema digital. Software bem-feito \u00e9, cada vez mais, premissa para a competitividade. O que \u00e9 arquitetura de software Arquitetura de software pode ser definida [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/\" \/>\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-11T20:49:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/09\/arte-arquiteto-de-software.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\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=\"10 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\/capitulo-00\/\",\"url\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/\",\"name\":\"Introdu\u00e7\u00e3o - v1 - Manual do Arquiteto de Software\",\"isPartOf\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#website\"},\"datePublished\":\"2021-04-01T22:11:54+00:00\",\"dateModified\":\"2024-01-11T20:49:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/#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\":\"Introdu\u00e7\u00e3o &#8211; v1\"}]},{\"@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":"Introdu\u00e7\u00e3o - v1 - 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\/capitulo-00\/","og_locale":"pt_BR","og_type":"article","og_title":"Introdu\u00e7\u00e3o - v1 - Manual do Arquiteto de Software","og_description":"Desenvolvimento de software \u00e9 atividade cada vez mais relevante. \u00c9 dif\u00edcil imaginar qualquer atividade, em qualquer empresa, em qualquer segmento, que n\u00e3o seja suportada, direta ou indiretamente, por algum tipo de sistema digital. Software bem-feito \u00e9, cada vez mais, premissa para a competitividade. O que \u00e9 arquitetura de software Arquitetura de software pode ser definida [&hellip;]","og_url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/","og_site_name":"Manual do Arquiteto de Software","article_publisher":"https:\/\/facebook.com\/eximiaco","article_modified_time":"2024-01-11T20:49:32+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-content\/uploads\/2021\/09\/arte-arquiteto-de-software.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@eximiaco","twitter_misc":{"Est. tempo de leitura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/","url":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/","name":"Introdu\u00e7\u00e3o - v1 - Manual do Arquiteto de Software","isPartOf":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/#website"},"datePublished":"2021-04-01T22:11:54+00:00","dateModified":"2024-01-11T20:49:32+00:00","breadcrumb":{"@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/volume-1\/capitulo-00\/#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":"Introdu\u00e7\u00e3o &#8211; v1"}]},{"@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\/1009","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=1009"}],"wp:attachment":[{"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/media?parent=1009"}],"wp:term":[{"taxonomy":"url","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/url?post=1009"},{"taxonomy":"sessoes","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/sessoes?post=1009"},{"taxonomy":"apendices","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/apendices?post=1009"},{"taxonomy":"capitulos","embeddable":true,"href":"https:\/\/elemarjr.com\/livros\/arquiteturadesoftware\/wp-json\/wp\/v2\/capitulos?post=1009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}