{"id":23412,"date":"2017-02-09T17:28:47","date_gmt":"2017-02-09T19:28:47","guid":{"rendered":"https:\/\/blog.locaweb.com.br\/?p=23412"},"modified":"2024-03-25T10:20:54","modified_gmt":"2024-03-25T13:20:54","slug":"voce-consegue-prever-os-bugs-de-sua-aplicacao","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/voce-consegue-prever-os-bugs-de-sua-aplicacao\/","title":{"rendered":"Voc\u00ea consegue prever os bugs de sua aplica\u00e7\u00e3o?"},"content":{"rendered":"<p>Se um problema tem solu\u00e7\u00e3o n\u00e3o tem porque se preocupar com ele, se ele n\u00e3o tem solu\u00e7\u00e3o ent\u00e3o toda preocupa\u00e7\u00e3o ser\u00e1 em v\u00e3o.<\/p>\n<p>J\u00e1 pensou se voc\u00ea tivesse o poder de prever o futuro e impedir que grandes trag\u00e9dias acontecessem? Tudo bem, prever o futuro \u00e9 complicado, para n\u00e3o dizer imposs\u00edvel.<\/p>\n<p>Sendo mais realista, imagine se pudesse identificar pequenas fra\u00e7\u00f5es de um problema antes que ele tome grandes propor\u00e7\u00f5es. Imaginou? E se voc\u00ea soubesse que isso j\u00e1 \u00e9 uma realidade &#8211; desde 2008, com o <a href=\"http:\/\/sentry.io\/\"><b><i>Sentry<\/i><\/b><\/a>?<\/p>\n<p>O <b><i>Sentry<\/i><\/b> \u00e9 uma aplica\u00e7\u00e3o open source escrita em<i> Python<\/i> para logar erros de aplica\u00e7\u00f5es e agregar informa\u00e7\u00f5es a eles. Apesar de ser escrito em <i>Python<\/i> o<i> Sentry <\/i>pode ser usado em <i>PHP<\/i>,<i> Ruby<\/i>, <i>Python<\/i>, <i>Go<\/i>,<i> Javascript<\/i>, <i>Elixir<\/i>, etc.<\/p>\n<p><b>\/\/ Como funciona?<\/b><\/p>\n<p>O <i>Sentry<\/i> funciona como um middleware, ou seja, sempre que o usu\u00e1rio acessa sua aplica\u00e7\u00e3o, ele passa pelo <i>Sentry<\/i>. Caso a aplica\u00e7\u00e3o d\u00ea um erro n\u00e3o tratado, o<i> Sentry<\/i> captura o backtrace e envia para seu servidor, registrando o erro. Se o mesmo erro permanecer, o <i>Sentry <\/i>grava a amostra, identifica quantas vezes ele aconteceu e com quantos usu\u00e1rios diferentes &#8211; ele faz isso por meio da compara\u00e7\u00e3o do backtrace.<\/p>\n<p>O relat\u00f3rio enviado por ele \u00e9 bem detalhado, cont\u00e9m informa\u00e7\u00f5es sobre o ambiente e o servidor em que aconteceu o erro. Al\u00e9m dos dados que o pr\u00f3prio <i>Sentry <\/i>coleta, voc\u00ea tamb\u00e9m pode adicionar mais informa\u00e7\u00f5es ao log para enriquecer e facilitar a reprodu\u00e7\u00e3o e a corre\u00e7\u00e3o do bug. Ao receber um novo relat\u00f3rio, uma notifica\u00e7\u00e3o \u00e9 enviada para seu e-mail, para que voc\u00ea se mantenha informado quanto ao que est\u00e1 acontecendo em sua aplica\u00e7\u00e3o.<\/p>\n<p><b>\/\/ Como usar?<\/b><\/p>\n<p>H\u00e1 duas maneiras de utilizar o <i>Sentry<\/i>. Uma delas \u00e9 instal\u00e1-lo no servidor que voc\u00ea tem &#8211; essa tarefa seria um pouco mais complexa se n\u00e3o houvesse uma imagem oficial do <i>Sentry<\/i> no <a href=\"https:\/\/hub.docker.com\/_\/sentry\/\">Docker Hub<\/a>. O segundo modo \u00e9 utilizar a integra\u00e7\u00e3o com o pr\u00f3prio site do <i>Sentry<\/i>, criando apenas uma conta e fazendo a integra\u00e7\u00e3o com sua aplica\u00e7\u00e3o. Assim que os erros aparecerem nela, o <i>Sentry<\/i> passar\u00e1 a log\u00e1-los.<\/p>\n<p><img decoding=\"async\" class=\"size-medium wp-image-48018 aligncenter\" src=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2017\/02\/sentry-io-up-e1486647302861-1-500x116.webp\" alt=\"Como usar o Sentry\" width=\"500\" height=\"116\" srcset=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2017\/02\/sentry-io-up-e1486647302861-1-500x116.webp 500w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2017\/02\/sentry-io-up-e1486647302861-1-768x177.webp 768w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2017\/02\/sentry-io-up-e1486647302861-1-150x35.webp 150w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2017\/02\/sentry-io-up-e1486647302861-1.webp 1216w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<p><b>\/\/ Por que usar?<\/b><\/p>\n<p>Por menor que seja o seu sistema, por mais que voc\u00ea use <i>TDD<\/i>, <i>BDD<\/i> e todas as outras boas pr\u00e1ticas que conhece, ele est\u00e1 sujeito a falhas. Mesmo no caso do exemplo, em que o banco de dados cai &#8211; uma falha que n\u00e3o \u00e9 necessariamente da aplica\u00e7\u00e3o, mas sim, do servidor -, isso \u00e9 importante justamente para que possa identificar bugs que n\u00e3o v\u00ea e que poderiam estar em sua aplica\u00e7\u00e3o ou em seu ambiente, afetando seu usu\u00e1rio sem que voc\u00ea saiba.<\/p>\n<p>Se quiser monitorar sua aplica\u00e7\u00e3o e saber como anda a sa\u00fade dela, uma \u00f3tima maneira para monitorar a curto, m\u00e9dio e longo prazo, \u00e9 utilizando o <i>Sentry<\/i>. Caso tenha alguma d\u00favida na interpreta\u00e7\u00e3o dele, deixe um coment\u00e1rio neste artigo que o ajudaremos! \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se um problema tem solu\u00e7\u00e3o n\u00e3o tem porque se preocupar com ele, se ele n\u00e3o tem solu\u00e7\u00e3o ent\u00e3o toda preocupa\u00e7\u00e3o ser\u00e1 em v\u00e3o. J\u00e1 pensou se voc\u00ea tivesse o poder de prever o futuro e impedir que grandes trag\u00e9dias acontecessem? Tudo bem, prever o futuro \u00e9 complicado, para n\u00e3o dizer imposs\u00edvel. Sendo mais realista, imagine [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":23418,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-23412","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/23412","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=23412"}],"version-history":[{"count":2,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/23412\/revisions"}],"predecessor-version":[{"id":48019,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/23412\/revisions\/48019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/23418"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=23412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=23412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=23412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}