{"id":36115,"date":"2019-10-31T22:09:42","date_gmt":"2019-10-31T19:09:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete\/"},"modified":"2019-10-31T22:09:42","modified_gmt":"2019-10-31T19:09:42","slug":"ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete","title":{"rendered":"N\u00e3o concorde em desenvolver o que n\u00e3o entende","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"N\u00e3o concorde em desenvolver o que n\u00e3o entende\" src=\"\/wp-content\/uploads\/2019\/07\/bfd609d9004113a76d59d8763d82c6d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesde o in\u00edcio de 2018, ocupo a posi\u00e7\u00e3o de l\u00edder\/cap\u00edtulo\/desenvolvedor principal na equipe \u2014 chame como quiser, mas a quest\u00e3o \u00e9 que estou completamente respons\u00e1vel por um dos m\u00f3dulos e por todos os desenvolvedores que trabalham nele. Essa posi\u00e7\u00e3o me proporciona uma nova perspectiva sobre o processo de desenvolvimento, pois estou envolvido em um n\u00famero maior de projetos e participo ativamente na tomada de decis\u00f5es. Recentemente, devido a essas duas circunst\u00e2ncias, percebi o quanto a profundidade da compreens\u00e3o influencia o c\u00f3digo e o aplicativo.<\/p>\n<p>A ideia que quero expressar \u00e9 que a qualidade do c\u00f3digo (e do produto final) est\u00e1 intimamente ligada ao n\u00edvel de consci\u00eancia das pessoas que projetam e escrevem o c\u00f3digo sobre o que realmente est\u00e3o fazendo.<\/p>\n<p>Voc\u00ea pode estar pensando agora: \"Obrigado, capit\u00e3o. Claro, seria bom entender o que se est\u00e1 escrevendo. Caso contr\u00e1rio, poder\u00edamos muito bem contratar um grupo de macacos para que eles batucassem aleatoriamente nas teclas, e assim ficarmos satisfeitos\". E voc\u00ea est\u00e1 absolutamente certo. Portanto, aceito como um fato: voc\u00ea entende que ter uma vis\u00e3o geral do que est\u00e1 fazendo \u00e9 essencial. Isso pode ser chamado de n\u00edvel zero de compreens\u00e3o, e n\u00e3o entraremos em detalhes sobre isso. Vamos explorar com mais detalhes o que exatamente precisa ser entendido e como isso afeta as decis\u00f5es que voc\u00ea toma todos os dias. Se eu soubesse essas coisas antecipadamente, teria poupado muito tempo desperdi\u00e7ado e c\u00f3digo duvidoso.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEmbora voc\u00ea n\u00e3o veja uma \u00fanica linha de c\u00f3digo abaixo, ainda assim considero que tudo o que foi dito aqui \u00e9 muito relevante para a escrita de c\u00f3digo de qualidade e expressivo. <\/p>\n<h4>O primeiro n\u00edvel de compreens\u00e3o: Por que n\u00e3o est\u00e1 funcionando?<\/h4>\n<p>\nOs desenvolvedores geralmente alcan\u00e7am esse n\u00edvel nos est\u00e1gios iniciais de suas carreiras, \u00e0s vezes at\u00e9 sem qualquer ajuda dos outros \u2014 pelo menos, essa \u00e9 a minha observa\u00e7\u00e3o. Imagine que voc\u00ea recebeu um relat\u00f3rio de bug: alguma fun\u00e7\u00e3o no aplicativo n\u00e3o est\u00e1 funcionando, \u00e9 necess\u00e1rio consert\u00e1-la. Como voc\u00ea agiria?<\/p>\n<p>O procedimento padr\u00e3o \u00e9 o seguinte:<\/p>\n<ol>\n<li>Encontrar o trecho de c\u00f3digo que est\u00e1 causando o problema (como isso \u00e9 feito \u00e9 um tema separado, que exploro no meu livro sobre c\u00f3digo legado)<\/li>\n<li>Fazer altera\u00e7\u00f5es nesse trecho<\/li>\n<li>Certificar-se de que o bug foi corrigido e que n\u00e3o surgiram erros regressivos<\/li>\n<\/ol>\n<p>\nAgora vamos nos concentrar no segundo ponto \u2014 fazer altera\u00e7\u00f5es no c\u00f3digo. Existem duas abordagens para esse processo. A primeira: entender o que exatamente est\u00e1 acontecendo no c\u00f3digo atual, identificar o erro e corrigi-lo. A segunda: avan\u00e7ar no escuro \u2014 adicionar, por exemplo, +1 em uma instru\u00e7\u00e3o condicional ou la\u00e7o, ver se essa fun\u00e7\u00e3o come\u00e7a a funcionar no cen\u00e1rio desejado, tentar mais alguma coisa e assim por diante indefinidamente.<\/p>\n<p>A abordagem correta \u00e9 a primeira. Como explica em seu livro Code Complete, Steve McConnell (ali\u00e1s, recomendo muito), sempre que fazemos alguma altera\u00e7\u00e3o no c\u00f3digo, devemos ser capazes de prever com seguran\u00e7a como isso afetar\u00e1 o aplicativo. Cito isso de mem\u00f3ria, mas se a corre\u00e7\u00e3o do bug n\u00e3o funcionar como voc\u00ea esperava, isso deve acender um alerta; voc\u00ea deve questionar todo o seu plano de a\u00e7\u00e3o.<\/p>\n<p>Resumindo, para realizar uma boa corre\u00e7\u00e3o de bug que n\u00e3o prejudique a qualidade do c\u00f3digo, \u00e9 necess\u00e1rio entender tanto a estrutura do c\u00f3digo quanto a fonte do problema espec\u00edfico.<\/p>\n<h4>O segundo n\u00edvel de compreens\u00e3o: Por que isso funciona?<\/h4>\n<p>\nEsse n\u00edvel \u00e9 compreendido de maneira muito menos intuitiva do que o anterior. Eu, ainda sendo um desenvolvedor iniciante, aprendi isso atrav\u00e9s do meu chefe, e depois, v\u00e1rias vezes, expliquei o conceito para iniciantes.<\/p>\n<p>Desta vez, vamos imaginar que voc\u00ea recebeu dois relat\u00f3rios de bug ao mesmo tempo: o primeiro diz respeito ao cen\u00e1rio A, o segundo ao cen\u00e1rio B. Em ambos os cen\u00e1rios, algo est\u00e1 errado. Portanto, voc\u00ea come\u00e7a pelo primeiro bug. Com base nos princ\u00edpios que estabelecemos para o primeiro n\u00edvel de compreens\u00e3o, voc\u00ea se aprofunda no c\u00f3digo relacionado ao problema, descobre por que ele faz o aplicativo se comportar dessa maneira no cen\u00e1rio A e faz ajustes razo\u00e1veis que produzem exatamente o resultado esperado. Tudo corre bem.<\/p>\n<p>Depois, voc\u00ea passa para o cen\u00e1rio B. Voc\u00ea repete o cen\u00e1rio na tentativa de provocar o erro, mas \u2014 surpresa! \u2014 agora tudo funciona como deveria. Para confirmar sua suposi\u00e7\u00e3o, voc\u00ea desfaz as altera\u00e7\u00f5es feitas durante o trabalho no erro A, e o bug B retorna. Sua corre\u00e7\u00e3o resolveu ambos os problemas. Que sorte!<\/p>\n<p>Voc\u00ea n\u00e3o esperava por isso. Voc\u00ea encontrou uma maneira de corrigir o erro no cen\u00e1rio A e n\u00e3o tem ideia de por que isso funcionou para o cen\u00e1rio B. Nesse ponto, \u00e9 muito tentador concluir que ambas as tarefas foram realizadas com sucesso. Isso faz sentido: o objetivo era corrigir os erros, certo? Mas o trabalho ainda n\u00e3o terminou: voc\u00ea ainda precisa entender por que suas a\u00e7\u00f5es corrigiram o erro no cen\u00e1rio B. Por qu\u00ea? Porque pode ser que ele esteja funcionando com princ\u00edpios incorretos, e ent\u00e3o voc\u00ea precisar\u00e1 buscar uma sa\u00edda diferente. Aqui est\u00e3o alguns exemplos dessas situa\u00e7\u00f5es:<\/p>\n<ul>\n<li>Uma vez que a solu\u00e7\u00e3o n\u00e3o foi ajustada especificamente para o erro B, levando em conta todos os fatores, voc\u00ea pode ter quebrado a fun\u00e7\u00e3o C sem saber. <\/li>\n<li>N\u00e3o est\u00e1 fora de quest\u00e3o que haja um terceiro bug escondido em algum lugar, relacionado \u00e0 mesma fun\u00e7\u00e3o, e sua corre\u00e7\u00e3o de bug pode estar amarrando o funcionamento correto do sistema no cen\u00e1rio B a ele. Agora tudo parece bem, mas um dia esse terceiro bug ser\u00e1 notado e corrigido. Ent\u00e3o, o erro voltar\u00e1 a surgir no cen\u00e1rio B, e espero que seja apenas l\u00e1.<\/li>\n<\/ul>\n<p>\nTudo isso traz caos ao c\u00f3digo e em algum momento certamente recair\u00e1 sobre voc\u00ea \u2014 provavelmente no momento mais inoportuno. Voc\u00ea ter\u00e1 que reunir for\u00e7a de vontade para se obrigar a gastar tempo entendendo por que tudo parece estar funcionando, mas vale a pena. <\/p>\n<h4>Terceiro n\u00edvel de entendimento: Por que isso funciona?<\/h4>\n<p>\nMinha recente epifania est\u00e1 relacionada exatamente a esse n\u00edvel, e provavelmente \u00e9 ele que me daria mais vantagens se eu tivesse chegado a esse pensamento mais cedo.<\/p>\n<p>Para tornar mais claro, vamos usar um exemplo: seu m\u00f3dulo precisa ser compat\u00edvel com a fun\u00e7\u00e3o X. Voc\u00ea n\u00e3o est\u00e1 particularmente familiarizado com a fun\u00e7\u00e3o X, mas lhe disseram que, para ser compat\u00edvel com ela, voc\u00ea deve usar o framework F. Outros m\u00f3dulos que se integram com X funcionam exatamente com ele.<\/p>\n<p>Seu c\u00f3digo nunca teve contato com o framework F desde o primeiro dia de sua exist\u00eancia, portanto, implement\u00e1-lo n\u00e3o ser\u00e1 t\u00e3o simples. Isso ter\u00e1 consequ\u00eancias s\u00e9rias para alguns componentes do m\u00f3dulo. No entanto, voc\u00ea se dedica inteiramente ao desenvolvimento: passa semanas escrevendo c\u00f3digo, testando, lan\u00e7ando vers\u00f5es beta, recebendo feedback, corrigindo erros regressivos, descobrindo complica\u00e7\u00f5es imprevistas, n\u00e3o cumprindo os prazos inicialmente estabelecidos, escrevendo mais c\u00f3digo, testando, recebendo feedback, corrigindo erros regressivos \u2014 tudo isso para implementar o framework F.<\/p>\n<p>E, em algum momento, voc\u00ea de repente percebe \u2014 ou talvez ou\u00e7a de algu\u00e9m \u2014 que talvez o framework F n\u00e3o lhe garanta compatibilidade com a fun\u00e7\u00e3o X. Pode ser que todo esse tempo e esfor\u00e7o tenham sido aplicados em algo completamente errado.<\/p>\n<p>Algo semelhante aconteceu uma vez durante o trabalho em um projeto pelo qual eu era respons\u00e1vel. Por que isso aconteceu? Porque eu n\u00e3o entendia bem o que era a fun\u00e7\u00e3o X e como ela se relacionava com o framework F. O que eu deveria ter feito? Pedir para a pessoa que define a tarefa de desenvolvimento explicar claramente como o plano de a\u00e7\u00e3o proposto levaria ao resultado desejado, em vez de simplesmente repetir o que foi feito para outros m\u00f3dulos ou acreditar que era necess\u00e1rio para o funcionamento da fun\u00e7\u00e3o X.<\/p>\n<p>A experi\u00eancia desse projeto me ensinou a recusar come\u00e7ar o processo de desenvolvimento at\u00e9 que tenhamos uma compreens\u00e3o clara do porqu\u00ea de sermos solicitados a realizar determinadas a\u00e7\u00f5es. Recusar diretamente. Quando voc\u00ea recebe uma tarefa, o primeiro impulso \u00e9 imediatamente se envolver com ela, para n\u00e3o perder tempo \u00e0 toa. Mas a pol\u00edtica de \"congelar o projeto at\u00e9 que compreendamos todos os detalhes\" pode economizar um tempo exorbitante perdido. <\/p>\n<p>Mesmo que tentem pression\u00e1-lo, for\u00e7ando-o a come\u00e7ar o trabalho, mesmo que voc\u00ea n\u00e3o entenda a raz\u00e3o \u2014 resista. Primeiro, entenda qual \u00e9 o objetivo da tarefa proposta e decida se este \u00e9 o caminho certo para atingi-lo. Eu tive que aprender tudo isso na pr\u00e1tica \u2014 espero que meu exemplo facilite a vida de quem est\u00e1 lendo isso.<\/p>\n<h4>Quarto n\u00edvel de compreens\u00e3o: ???<\/h4>\n<p>\nNa programa\u00e7\u00e3o, sempre h\u00e1 algo a aprender e, a meu ver, eu s\u00f3 toquei nas superf\u00edcies do entendimento. Que outros n\u00edveis de compreens\u00e3o voc\u00ea descobriu ao longo dos anos trabalhando com c\u00f3digo? Que decis\u00f5es voc\u00ea tomou que impactaram positivamente a qualidade do c\u00f3digo e do aplicativo? Quais decis\u00f5es se mostraram equivocadas e que li\u00e7\u00f5es valiosas voc\u00ea aprendeu com elas? Compartilhe suas experi\u00eancias nos coment\u00e1rios.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/digital-ecosystems\/blog\/459588\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421 \u043d\u0430\u0447\u0430\u043b\u0430 2018 \u0433\u043e\u0434\u0430 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c \u043b\u0438\u0434\u0430\/\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a\u0430\/\u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u2014 \u043d\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u0442\u0435, \u043d\u043e \u0441\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043e\u0442\u0432\u0435\u0447\u0430\u044e \u0437\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u0437\u0430 \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0434 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u042d\u0442\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043c\u043d\u0435 \u043d\u043e\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u0435\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27008,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-36115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421 \u043d\u0430\u0447\u0430\u043b\u0430 2018 \u0433\u043e\u0434\u0430 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c.\" \/>\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\/pt\/blog\/news\/ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u041d\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0439\u0442\u0435\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421 \u043d\u0430\u0447\u0430\u043b\u0430 2018 \u0433\u043e\u0434\u0430 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete\" \/>\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:09:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:09:42+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\udd47N\u00e3o concorde em desenvolver algo que voc\u00ea n\u00e3o entende | ProHoster","description":"Desde o in\u00edcio de 2018, ocupo um cargo.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u041d\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0439\u0442\u0435\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435 | ProHoster","og:description":"\u0421 \u043d\u0430\u0447\u0430\u043b\u0430 2018 \u0433\u043e\u0434\u0430 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/ne-soglashajtes-razrabatyvat-to-chego-ne-ponimaete","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:09:42+00:00","article:modified_time":"2019-10-31T19:09:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36115","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 02:04:38","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:50:24","updated":"2026-01-22 02:04:38","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/36115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=36115"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/36115\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/27008"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=36115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=36115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=36115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}