[{"@context":"https:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/ivonascimento.com\/2015\/02\/26\/se-um-bug-surge-e-o-programador-nao-ve-ele-surgiu-mesmo\/#BlogPosting","mainEntityOfPage":"https:\/\/ivonascimento.com\/2015\/02\/26\/se-um-bug-surge-e-o-programador-nao-ve-ele-surgiu-mesmo\/","headline":"Se um bug surge e o programador n\u00e3o v\u00ea, ele surgiu mesmo?","name":"Se um bug surge e o programador n\u00e3o v\u00ea, ele surgiu mesmo?","description":"C\u00e1lculo hipot\u00e9tico universal trigonom\u00e9trico estat\u00edstico!!! ou se um bug surge sem um programador ver, ele surgiu mesmo?! C.H.U.T.E. , essa \u00e9 a sigla que descreve um paradigma de desenvolvimento que pode ser descrito com uma lista de itera\u00e7\u00f5es bem pequena, que segue abaixo. 1 escrever uma solu\u00e7\u00e3o inteira que surgiu na cabe\u00e7a, sem testes e [&hellip;]","datePublished":"2015-02-26","dateModified":"2015-02-26","author":{"@type":"Person","@id":"https:\/\/ivonascimento.com\/author\/ivonascimento\/#Person","name":"Ivo Nascimento","url":"https:\/\/ivonascimento.com\/author\/ivonascimento\/","identifier":10240028,"image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/2305ea1f48319271d323c5e1c0aadd4cc45d10c4927dd8b3af083facb8c6f75f?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2305ea1f48319271d323c5e1c0aadd4cc45d10c4927dd8b3af083facb8c6f75f?s=96&d=identicon&r=g","height":96,"width":96}},"publisher":{"@type":"Person","name":"Ivo Nascimento"},"image":{"@type":"ImageObject","@id":"https:\/\/i0.wp.com\/ivonascimento.com\/wp-content\/uploads\/2015\/02\/insect_wallpaper11.jpg?fit=1680%2C1050&ssl=1","url":"https:\/\/i0.wp.com\/ivonascimento.com\/wp-content\/uploads\/2015\/02\/insect_wallpaper11.jpg?fit=1680%2C1050&ssl=1","height":1050,"width":1680},"url":"https:\/\/ivonascimento.com\/2015\/02\/26\/se-um-bug-surge-e-o-programador-nao-ve-ele-surgiu-mesmo\/","about":["texto de Bus\u00e3o"],"wordCount":682,"articleBody":"C\u00e1lculo hipot\u00e9tico universal trigonom\u00e9trico estat\u00edstico!!! ou se um bug surge sem um programador ver, ele surgiu mesmo?!C.H.U.T.E. , essa \u00e9 a sigla que descreve um paradigma de desenvolvimento que pode ser descrito com uma lista de itera\u00e7\u00f5es bem pequena, que segue abaixo.1 escrever uma solu\u00e7\u00e3o inteira que surgiu na cabe\u00e7a, sem testes e muita an\u00e1lise, por que &#8220;voc\u00ea j\u00e1 sabe&#8221;.2 rodar o software \u00e9 encontrar um problema3 alterar um trecho do c\u00f3digo escrito adicionando o if para um caso espec\u00edfico.Repetir 2 e 3 at\u00e9 ter uma solu\u00e7\u00e3o que roda.4- Git add, commit -m&#8221;resolvido bug x&#8221;, push master.Essa metodologia tamb\u00e9m pode ser descrita como Desenvolvimento por experimenta\u00e7\u00e3o, ou m\u00e9todo tentativa e erro, M.T.E.N\u00e3o h\u00e1 nada de errado com M.T.E, a n\u00e3o ser o fato de que ele deve ser usado para descoberta e n\u00e3o para cria\u00e7\u00e3o. Primeiro voc\u00ea descobre e depois cria.M.T.E. \u00e9 para descoberta e n\u00e3o para desenvolver.Desenvolver colocando c\u00f3digo que acredita funcionar e depois ir tratando os efeitos colaterais \u00e9 a melhor maneira de cruzar um gremilin com um panda, um ornitorrinco e um fusca quebrado. Eh grande, \u00e9 triste pq j\u00e1 foi muito bom, consome muito bambu e fica fora de controle quando voc\u00ea joga \u00e1gua, ou l\u00e1grimas.N\u00e3o cruze um gremilin com um panda, um ornitorrinco e um fusca quebrado.As vezes se faz MTE sem perceber, repetindo o ato de trocar o valor de um par\u00e2metro na esperan\u00e7a de um algoritmo funcionar #s\u00f3QueN\u00e3o, mas \u00e9 definitivamente f\u00e1cil identificar quando voc\u00ea chegou nesse ponto, basta prestar aten\u00e7\u00e3o na sensa\u00e7\u00e3o f\u00e9. Tenho f\u00e9 que o problema est\u00e1 aqui&#8230;Tenho f\u00e9 que o problema est\u00e1 aqui&#8230;A abordagem de M.T.E. pode entregar um resultado, mas existe uma diferen\u00e7a entre o que o programador acha que est\u00e1 entregando e o que o programador que depois vai lidar com o c\u00f3digo tem certeza que recebeu.Aquele que escreve acredita que resolveu um bug, e sorri com a medalha no peito, j\u00e1 aquele que recebe o c\u00f3digo depois tem certeza que recebeu um problema ou v\u00e1rios.Por exemplo, chega um ticket de bug e o programador que o recebe e decide que o bug est\u00e1 num m\u00e9todo espec\u00edfico. Quando digo que decide \u00e9 por que ele se apega a aquele m\u00e9todo e dentro dele vai escrever o que for preciso para dar #FIX no bug.Voc\u00ea n\u00e3o decide em qual m\u00e9todo esta o bug ou onde vai resolve, n\u00e3o antes de ser convencido pelas evid\u00eancias. Voce tem que analisar e coletar evid\u00eancias.Seja convencido pelas evid\u00eancias. Analise o problema.Condicionais para um input dependendo do valorObserve, se o m\u00e9todo come\u00e7a a receber muitos casos de exce\u00e7\u00e3o, ou seja, tem comportamentos diferentes para o mesmo input dependendo do valor. Talvez seja o caso de subir um pouco mais a an\u00e1lise e dar uma olhada nos m\u00e9todos que s\u00e3o clientes desse m\u00e9todo a que voc\u00ea est\u00e1 apegado.Escrever duas fun\u00e7\u00f5es e anotar a cliente, a que consome a outra \u00e9 usar como exemplo no padr\u00e3o de &#8220;subir an\u00e1lise&#8221;.\u00c9 como esquecer um ponto e v\u00edrgula na linha 13 e ver o erro ser lan\u00e7ado como linha 14.Se para lidar com o bug voc\u00ea adiciona mais par\u00e2metros ao m\u00e9todo.Par\u00e2metro passado para o m\u00e9todo para ajudar com sua estrat\u00e9gia de administra\u00e7\u00e3o do bug n\u00e3o resolve o problema, ele administra os efeitos colaterais da exist\u00eancia dele.Ele controlou o efeito colateral do bug, n\u00e3o resolveu.N\u00e3o confunda consertar o casco do barco com usar um balde maior para tirar \u00e1gua.Alias, o bug surge mesmo que n\u00e3o tenha ningu\u00e9m de olho no c\u00f3digo. Principalmente nesse caso.Compartilhe isso:\t\t\t\tImprimir(abre em nova janela)\t\t\t\tImprimir\t\t\tTweet\t\t\t\tCompartilhar no WhatsApp(abre em nova janela)\t\t\t\tWhatsApp\t\t\t"},{"@context":"https:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"2015","item":"https:\/\/ivonascimento.com\/2015\/#breadcrumbitem"},{"@type":"ListItem","position":2,"name":"02","item":"https:\/\/ivonascimento.com\/2015\/\/02\/#breadcrumbitem"},{"@type":"ListItem","position":3,"name":"26","item":"https:\/\/ivonascimento.com\/2015\/\/02\/\/26\/#breadcrumbitem"},{"@type":"ListItem","position":4,"name":"Se um bug surge e o programador n\u00e3o v\u00ea, ele surgiu mesmo?","item":"https:\/\/ivonascimento.com\/2015\/02\/26\/se-um-bug-surge-e-o-programador-nao-ve-ele-surgiu-mesmo\/#breadcrumbitem"}]}]