{"id":3014,"date":"2014-11-25T09:05:00","date_gmt":"2014-11-25T12:05:00","guid":{"rendered":"http:\/\/blog.dialhost.com.br\/?p=3014"},"modified":"2014-11-25T09:05:00","modified_gmt":"2014-11-25T12:05:00","slug":"refatoracao-aperfeicoamento-e-projeto","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/","title":{"rendered":"Refatora\u00e7\u00e3o \u2013 aperfei\u00e7oamento e projeto"},"content":{"rendered":"<figure id=\"attachment_2725\" aria-describedby=\"caption-attachment-2725\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2014\/09\/conselhos1.jpg\"><img loading=\"lazy\" class=\"size-full wp-image-2725\" src=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2014\/09\/conselhos1.jpg\" alt=\"Imagem ilustrativa\" width=\"700\" height=\"260\" \/><\/a><figcaption id=\"caption-attachment-2725\" class=\"wp-caption-text\">Imagem ilustrativa<\/figcaption><\/figure>\n<p>O que h\u00e1 de errado em um c\u00f3digo simples feito de forma r\u00e1pida e imperfeita? Aparentemente nada, desde que ele funcione! Seria um julgamento meramente est\u00e9tico? O usu\u00e1rio final e o compilador n\u00e3o se importam se o c\u00f3digo \u00e9 ou n\u00e3o elegante. Mas, quando alteramos uma solu\u00e7\u00e3o, h\u00e1 um humano envolvido e humanos se importam. Uma solu\u00e7\u00e3o mal projetada \u00e9 dif\u00edcil de ser alterada. Se for dif\u00edcil descobrir onde e como alterar, h\u00e1 uma grande chance desse humano cometer um erro e introduzir falhas, principalmente se caso o peda\u00e7o de c\u00f3digo esteja inserido dentro de uma solu\u00e7\u00e3o complexa.<\/p>\n<p>Refatora\u00e7\u00e3o \u00e9 o processo de altera\u00e7\u00e3o de uma solu\u00e7\u00e3o de modo que o comportamento externo do c\u00f3digo n\u00e3o mude, mas que sua estrutura interna seja melhorada. \u00c9 uma maneira disciplinada e sistem\u00e1tica de aperfei\u00e7oar o c\u00f3digo que minimiza a chance de introdu\u00e7\u00e3o de falhas.<\/p>\n<p>Sem refatora\u00e7\u00e3o, o projeto termina por se deteriorar. \u00c0 medida que as pessoas alteram o c\u00f3digo, altera\u00e7\u00f5es para executar objetivos de curto prazo, altera\u00e7\u00f5es sem uma compreens\u00e3o total do projeto da solu\u00e7\u00e3o e principalmente altera\u00e7\u00f5es por pessoas sem experi\u00eancia reais de design OO levam o projeto para o caminho da inflexibilidade e rigidez. Isso tem um efeito cumulativo. Quanto mais dif\u00edcil \u00e9 entender a solu\u00e7\u00e3o a partir do c\u00f3digo, mais dif\u00edcil ser\u00e1 de preserv\u00e1-lo e rapidamente ele se desestruturar\u00e1.<\/p>\n<p>A seguir, vou resumir cada dica desse livro com o objetivo de ser utilizado com material de refer\u00eancia e estudos:<\/p>\n<p><strong>Maus cheiros #1<\/strong><\/p>\n<p>Ser\u00e1 que voc\u00ea j\u00e1 passou pela experi\u00eancia de pegar uma crian\u00e7a rec\u00e9m-nascida que acabou de fazer coc\u00f4 nas fraldas? No mesmo momento que voc\u00ea se aproxima, j\u00e1 percebe instantaneamente aquele cheiro desagrad\u00e1vel. Da mesma forma isso acontece em desenvolvimento de software, quando voc\u00ea pega o c\u00f3digo fonte de uma solu\u00e7\u00e3o para dar manuten\u00e7\u00e3o j\u00e1 logo de cara sente que alguma coisa n\u00e3o esta cheirando muito bem. Seguindo essa vis\u00e3o, estarei postando os \u201cmaus cheiros\u201d mais b\u00e1sicos referindo-se na verdade em um cat\u00e1logo de anti-padr\u00f5es que precisam ser, a todo custo, evitado e refatorado.<\/p>\n<p><strong>C\u00f3digo duplicado<\/strong><\/p>\n<p>Ocorre quando encontramos peda\u00e7os de c\u00f3digo duplicado em v\u00e1rios lugares diferentes na solu\u00e7\u00e3o. Voc\u00ea tem que decidir onde faz mais sentido centralizar esse m\u00e9todo e garantir que ele fique exclusivamente em apenas um lugar.<\/p>\n<p><strong>M\u00e9todo longo<\/strong><\/p>\n<p>Ocorre quando encontramos um m\u00e9todo com muitas linhas de c\u00f3digo, normalmente fazendo muitas responsabilidades ao mesmo tempo. Quanto maior o m\u00e9todo, mais dif\u00edcil \u00e9 de entender. Por isso, sempre seja agressivo na decomposi\u00e7\u00e3o de m\u00e9todos menores.<\/p>\n<p><strong>Maus cheiros #2<\/strong><\/p>\n<p><strong>Classes grandes<\/strong><\/p>\n<p>Ocorre quando uma classe tenta fazer muitas coisas, pois ela frequentemente se torna um solo f\u00e9rtil para c\u00f3digo duplicado, excesso de vari\u00e1veis e confus\u00e3o. Elimine as redund\u00e2ncias internas e divida uma classe em classes menores, separando logicamente em peda\u00e7os que fa\u00e7am sentido dentro do contexto. Use a pol\u00edtica de coes\u00e3o na separa\u00e7\u00e3o de classes.<\/p>\n<p><strong>Lista de par\u00e2metros longa<\/strong><\/p>\n<p>Ocorre quando encontramos um m\u00e9todo com listas de par\u00e2metros longas, normalmente acima de quatro par\u00e2metros. S\u00e3o dif\u00edceis de entender e de usar e por isso, sempre seja agressivo na redu\u00e7\u00e3o.<\/p>\n<p><strong>Altera\u00e7\u00e3o divergente<\/strong><\/p>\n<p>Ocorre quando qualquer altera\u00e7\u00e3o para lidar com uma variante gera mudan\u00e7as em v\u00e1rios m\u00e9todos diferentes dentro uma mesma classe. Quando as altera\u00e7\u00f5es est\u00e3o espalhadas em v\u00e1rios m\u00e9todos diferentes, ela se torna dif\u00edcil de encontrar, dif\u00edcil de fazer e f\u00e1cil de ser esquecido. Voc\u00ea deve identificar tudo que pode mudar e centralizar isso em um \u00fanico m\u00e9todo de altera\u00e7\u00e3o.<\/p>\n<p><strong>Maus cheios #3<\/strong><\/p>\n<p><strong>Altera\u00e7\u00e3o divergente<\/strong><\/p>\n<p>Ocorre quando qualquer altera\u00e7\u00e3o para lidar com uma variante gera mudan\u00e7as em v\u00e1rios m\u00e9todos diferentes dentro uma mesma classe. Quando as altera\u00e7\u00f5es est\u00e3o espalhadas em v\u00e1rios m\u00e9todos diferentes, ela se torna dif\u00edcil de encontrar, dif\u00edcil de fazer e f\u00e1cil de ser esquecido. Voc\u00ea deve identificar tudo que pode mudar e centralizar isso em um \u00fanico m\u00e9todo de altera\u00e7\u00e3o.<\/p>\n<p><strong>Cirurgia com rifle<\/strong><\/p>\n<p>Ocorre quando qualquer altera\u00e7\u00e3o para lidar com uma variante gera mudan\u00e7as em v\u00e1rios pontos em classes diferentes. Quando as altera\u00e7\u00f5es est\u00e3o espalhadas em varias classes diferentes, elas se tornam dif\u00edceis de encontrar, dif\u00edceis de fazer e f\u00e1cil de ser esquecido. Voc\u00ea deve identificar tudo que pode mudar e centralizar isso em uma \u00fanica classe de altera\u00e7\u00e3o ou na cria\u00e7\u00e3o uma nova classe.<\/p>\n<p><strong>Inveja dos dados<\/strong><\/p>\n<p>Ocorre quando um objeto usa dados de outros objetos para fazer opera\u00e7\u00f5es ou l\u00f3gicas, fazendo com que o objeto fique mais interessado no estado de outro do que o seu pr\u00f3prio estado. A ess\u00eancia dos objetos \u00e9 encapsular tanto os dados e as opera\u00e7\u00f5es que manipulam esses dados. Diante disso, voc\u00ea deve atribuir as responsabilidades a um objeto que seja o mais coerente com suas informa\u00e7\u00f5es e nuca para um objeto externo. Inveja dos dados \u00e9 um antipadr\u00e3o conhecido com Anemic Domain Model.<\/p>\n<p><strong>Maus cheiros #4<\/strong><\/p>\n<p><strong>Classes de dados<\/strong><\/p>\n<p>Ocorre quando voc\u00ea encontra classes que cont\u00eam apenas dados sem m\u00e9todos de manipula\u00e7\u00e3o. Na maioria das vezes, o estado dessas classes de dados est\u00e1 sendo usados por outras classes. Por isso, evite fazer isso, uma vez que classes devem conter dados e m\u00e9todos. Classe de dados \u00e9 um antipadr\u00e3o conhecido com Anemic Domain Model.<\/p>\n<p><strong>Grupo de dados<\/strong><\/p>\n<p>Ocorre quando encontramos grupos de campos sendo utilizado de forma duplicada dentro de classes e ou de par\u00e2metros. Estes agrupamentos de dados que perambulam juntos, na verdade deveriam ser agrupados como objeto.<\/p>\n<p><strong>Obsess\u00e3o primitiva<\/strong><\/p>\n<p>Ocorre quando encontramos c\u00f3digos relutantes em usar objetos para pequenas tarefas tais como dinheiro, CPF, CEP, telefone etc., preferindo o uso de tipos primitivos como int, long etc e a classe String. Sempre prefira criar pequenos objetos que fa\u00e7am o devido encapsulamento de primitivos que representem o valor de algum tipo. Futuramente voc\u00ea poder\u00e1 acrescentar outras opera\u00e7\u00f5es relacionadas ao tratamento do determinado tipo.<\/p>\n<p><strong>Maus cheios #5<\/strong><\/p>\n<p><strong>Classe ociosa<\/strong><\/p>\n<p>Cada classe que voc\u00ea cria custa dinheiro para manter e compreender. Uma classe que n\u00e3o esteja fazendo o suficiente para se pagar deve ser eliminada, principalmente aquelas que foram acrescentadas para suportar altera\u00e7\u00f5es futuras de forma antecipada, mas que nunca aconteceu.<\/p>\n<p><strong>Generalidade especulativa<\/strong><\/p>\n<p>Ocorre quando \u00e9 implementado estruturas gen\u00e9ricas e flex\u00edveis ao ponto de compor situa\u00e7\u00f5es futuras que ainda n\u00e3o aconteceram no projeto, sem uma real previs\u00e3o de acontecer. O resultado muita vezes \u00e9 a dificuldade de se entender e manter, mais atrapalhando que ajudando. Diante disso, se livre de todas elas. Ou seja, fa\u00e7a somente o que for realmente necess\u00e1rio, deixando o futuro para uma futura refatora\u00e7\u00e3o.<\/p>\n<p><strong>Campo tempor\u00e1rio<\/strong><\/p>\n<p>Ocorre quando voc\u00ea encontra um objeto no qual uma vari\u00e1vel de inst\u00e2ncia recebe um valor apenas em determinadas circunstancias de execu\u00e7\u00f5es e ou algoritmos, deixando dif\u00edcil de ler e entender, uma vez que o normal \u00e9 esperar que um objeto precise de todas as suas vari\u00e1veis. Diante disso, separe estes campos \u00f3rf\u00e3os em algum lugar diferente, de acordo com o contexto da situa\u00e7\u00e3o, podendo ser uma nova classe especifica chamada de \u201cobjeto m\u00e9todo\u201d.<\/p>\n<p><strong>Maus cheiros #6<\/strong><\/p>\n<p><strong>Cadeias de mensagens<\/strong><\/p>\n<p>Ocorre quando voc\u00ea encontra longas cadeias de mensagem quando um objeto pede para outro objeto, que por sua vez pede outro objeto e assim por diante\u2026 Gerando um acoplamento na cadeia de navega\u00e7\u00e3o. Diante disso, sempre tente ocultar ao m\u00e1ximo a delega\u00e7\u00e3o.<\/p>\n<p><strong>Intermedi\u00e1rio<\/strong><\/p>\n<p>Ocorre quando voc\u00ea encontra um objeto que extrapola no uso da delega\u00e7\u00e3o para outros objetos, sem c\u00f3digos adicionais, transformando o objeto em apenas um intermedi\u00e1rio vazio e sem sentido. Nesse contexto, remova o intermedi\u00e1rio fazendo com que o objeto cliente fale diretamente com o objeto que realmente sabe o que est\u00e1 acontecendo.<\/p>\n<p><strong>Intimidade inadequada<\/strong><\/p>\n<p>Ocorre quando voc\u00ea encontra classes manipulando partes privadas de outras, principalmente no uso de heran\u00e7a que permite que subclasses acessem partes protegidas. Seja radical com premissa b\u00e1sica do encapsulamento: sempre oculte o m\u00e1ximo que puder, evitando expor detalhes internos de um objeto.<\/p>\n<p><strong>Maus cheios #7<\/strong><\/p>\n<p><strong>Classes alternativas com interfaces diferentes<\/strong><\/p>\n<p>Ocorre quando voc\u00ea encontra classes diferentes, com assinatura de m\u00e9todos diferentes, mas que oferecem o mesmo servi\u00e7o duplicadamente. Refatore e centralize em apenas um \u00fanico lugar.<\/p>\n<p><strong>Bibliotecas de classes incompletas<\/strong><\/p>\n<p>Ocorre quando precisamos de um m\u00e9todo que est\u00e1 faltando em uma biblioteca, mas n\u00e3o temos como alterar a biblioteca para incluir o m\u00e9todo. O m\u00e9todo acaba sendo anexados em outra classe. Se voc\u00ea n\u00e3o pode modificar a biblioteca, considere isolar o m\u00e9todo.<\/p>\n<p>&#8212;&#8211;<\/p>\n<p>Artigo de Fernando Franzini, publicado no <a href=\"http:\/\/imasters.com.br\/desenvolvimento\/refatoracao-aperfeicoamento-e-projeto\/\" target=\"_blank\" rel=\"noopener noreferrer\">iMasters<\/a>.\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\t\t\t\tRefatora\u00e7\u00e3o \u00e9 o processo de altera\u00e7\u00e3o de uma solu\u00e7\u00e3o de modo que o comportamento externo do c\u00f3digo n\u00e3o mude, mas que sua estrutura interna seja melhorada. \u00c9 uma maneira disciplinada e sistem\u00e1tica de aperfei\u00e7oar o c\u00f3digo que minimiza a chance de introdu\u00e7\u00e3o de falhas.\t\t\t\t<\/p>\n","protected":false},"author":1,"featured_media":2813,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[76,99,158],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Refatora\u00e7\u00e3o \u2013 aperfei\u00e7oamento e projeto - Blog DialHost<\/title>\n<meta name=\"description\" content=\"Refatora\u00e7\u00e3o \u00e9 o processo de altera\u00e7\u00e3o de uma solu\u00e7\u00e3o de modo que o comportamento externo do c\u00f3digo n\u00e3o mude, mas que sua estrutura interna seja melhorada.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Refatora\u00e7\u00e3o \u2013 aperfei\u00e7oamento e projeto - Blog DialHost\" \/>\n<meta property=\"og:description\" content=\"Refatora\u00e7\u00e3o \u00e9 o processo de altera\u00e7\u00e3o de uma solu\u00e7\u00e3o de modo que o comportamento externo do c\u00f3digo n\u00e3o mude, mas que sua estrutura interna seja melhorada.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/refatoracao-aperfeicoamento-e-projeto\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2014-11-25T12:05:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/04\/og-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/\",\"name\":\"Refatora\\u00e7\\u00e3o \\u2013 aperfei\\u00e7oamento e projeto - Blog DialHost\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#primaryimage\"},\"datePublished\":\"2014-11-25T12:05:00+00:00\",\"dateModified\":\"2014-11-25T12:05:00+00:00\",\"description\":\"Refatora\\u00e7\\u00e3o \\u00e9 o processo de altera\\u00e7\\u00e3o de uma solu\\u00e7\\u00e3o de modo que o comportamento externo do c\\u00f3digo n\\u00e3o mude, mas que sua estrutura interna seja melhorada.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/refatoracao-aperfeicoamento-e-projeto\/\",\"url\":\"\/blog\/refatoracao-aperfeicoamento-e-projeto\/\",\"name\":\"Refatora\\u00e7\\u00e3o \\u2013 aperfei\\u00e7oamento e projeto\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"Refatora\\u00e7\\u00e3o \\u2013 aperfei\\u00e7oamento e projeto\",\"datePublished\":\"2014-11-25T12:05:00+00:00\",\"dateModified\":\"2014-11-25T12:05:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/refatoracao-aperfeicoamento-e-projeto\/#primaryimage\"},\"keywords\":\"desenvolvimento,feed de parceiros,noticias\",\"articleSection\":\"Dicas e Not\\u00edcias\",\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3014"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3014"}],"version-history":[{"count":0,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3014\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/2813"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}