{"id":2073,"date":"2014-12-02T20:30:59","date_gmt":"2014-12-02T23:30:59","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=2073"},"modified":"2014-12-02T20:33:30","modified_gmt":"2014-12-02T23:33:30","slug":"codigo-legado-um-exercicio-de-arqueologia-e-compaixao","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=2073","title":{"rendered":"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o"},"content":{"rendered":"<p>Na esmagadora maioria das\u00a0vezes que escuto algu\u00e9m reclamando do fato de estar lidando com c\u00f3digo legado me v\u00eam um dos dois pensamentos a seguir : &#8220;chor\u00e3o detected&#8221; ou &#8220;t\u00e1 reclamando da coisa errada&#8221;. Tamb\u00e9m n\u00e3o \u00e9 raro\u00a0ver\u00a0software ser jogado fora para ser reescrito do zero e sentir aquela certeza de que ir\u00e1 dar errado <strong>e d\u00e1<\/strong>. A\u00a0postura diante do legado \u00e9 errada.\u00a0Amo legado e vou te contar as raz\u00f5es.<\/p>\n<h3>Minha evolu\u00e7\u00e3o com o legado<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2075\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/evolution-300x139.jpg\" alt=\"evolution\" width=\"300\" height=\"139\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/evolution-300x139.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/evolution.jpg 650w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Quando comecei a programar sequer pensava na possibilidade de lidar com c\u00f3digo alheio. Ali\u00e1s, eu s\u00f3 via\u00a0c\u00f3digo que fosse um exemplo ou outro que usava para aprender por simples c\u00f3pia. At\u00e9 que\u00a0o legado caiu sobre mim e, junto com ele, hoje percebo, uma forte dose de arrog\u00e2ncia.<\/p>\n<blockquote><p>&#8220;Arrog\u00e2ncia \u00e9\u00a0a confian\u00e7a excessiva nas pr\u00f3prias habilidades.&#8221; &#8211; Norberto Bobbio<\/p><\/blockquote>\n<p>Olhava \u00a0para o c\u00f3digo escrito por outros colegas, a maior parte pessoas que n\u00e3o\u00a0atuavam mais na empresa (e jamais conheci) e os tinha\u00a0como algo tosco. Me perguntava como a pessoa n\u00e3o sentia vergonha de deixar aquele &#8220;legado&#8221;. Pegava aquele &#8220;trem&#8221; e reescrevia do zero. Sentia o triunfo e me orgulhava do feito: expunha aos demais como um trof\u00e9u que erguia alto para que todos vissem.<\/p>\n<p>(e\u00a0hoje vejo diversas daquelas mesmas pessoas como her\u00f3is)<\/p>\n<p>&#8220;Curiosamente&#8221; tempos depois eu precisava alterar novamente aquele c\u00f3digo que havia reescrito por que &#8220;um ponto ou outro n\u00e3o haviam sido levados em considera\u00e7\u00e3o&#8221;. O tempo passou e hoje fica claro que era um\u00a0<strong>sintoma<\/strong>.<\/p>\n<p>O tempo voa e\u00a0trabalhei em projetos iniciados e finalizados por mim, apenas iniciados por mim e tantos outros\u00a0que n\u00e3o foram iniciados por mim.\u00a0E nesta hist\u00f3ria bem mais de 50% da minha carreira foi gasto manipulando c\u00f3digo que n\u00e3o fui o pai, mas no m\u00e1ximo um padrinho ou tio generoso.<\/p>\n<p>Aos poucos\u00a0passei a gostar do legado que foi se tornando meu maior professor. Aprendo, cres\u00e7o e enrique\u00e7o hoje gra\u00e7as a ele. Enquanto foi meu\u00a0advers\u00e1rio eu era s\u00edmio: hoje que o tenho como parceiro sou &#8220;sapiens&#8221; (ou penso ser (arrog\u00e2ncia?)).<\/p>\n<h3>Como o legado se tornou meu parceiro<\/h3>\n<p>Percebi o valor do legado quando\u00a0minha arrog\u00e2ncia me socou a cara. Lembra no in\u00edcio deste post quando falei de um &#8220;certo sintoma&#8221; que ocorria quando eu reescrevia algo do zero? Yeap: eu estava\u00a0<strong><em>jogando fora<\/em><\/strong> conhecimento importante sem me dar conta. N\u00e3o estava melhorando a criatura, mas piorando-a. E sabem o que \u00e9 legal? S\u00f3 caiu a ficha quando o <a href=\"http:\/\/www.joelonsoftware.com\/articles\/fog0000000069.html\">Joel Spolsky &#8220;me contou&#8221;<\/a>. Bendito tapa!<\/p>\n<p>Foi quando percebi que eu <em>s\u00f3 olhava para o c\u00f3digo e n\u00e3o o lia.<\/em>\u00a0Por coincid\u00eancia na \u00e9poca fazia uma mat\u00e9ria no curso de Filosofia sobre <a href=\"http:\/\/pt.wikipedia.org\/wiki\/Hermen%C3%AAutica\">hermen\u00eautica <\/a>e este\u00a0acabou me indicando o caminho: n\u00e3o era apenas ler, mas sim <strong><em>interpretar e absorver<\/em><\/strong>.\u00a0Eu devia &#8220;absorver como Kico&#8221; e &#8220;interpretar como quem o escreveu&#8221;.<\/p>\n<p>(Quando voc\u00ea acorda para o fato de\u00a0que mais de 85% da vida do software ocorre <strong>depois que \u00e9 entregue<\/strong> fica n\u00edtido que a sua vis\u00e3o de mercado &#8220;talvez&#8221; fosse bem limitada. :) )<\/p>\n<h3>Legado como arqueologia e compaix\u00e3o<\/h3>\n<p>Minha\u00a0dificuldade ao\u00a0interpretar o legado estava em\u00a0meu ego. <em>Por que com tantos SGBDs dispon\u00edveis o sujeito tinha de usar JUSTO O MALDITO MICROSOFT ACCESS para aquela aplica\u00e7\u00e3o Delphi\/VB? Por que tantas classes an\u00f4nimas naquela aplica\u00e7\u00e3o desktop Java? Por que aqueles padr\u00f5es de projeto t\u00e3o fora da nossa realidade naquele projeto Java EE?<\/em>\u00a0 Te respondo: por que quem escreveu o sistema muito provavelmente (quase 100%\u00a0de certeza) aprendeu a fazer <strong>daquele jeito<\/strong>. \u00a0Duvida? Leia algum livro antigo sobre Delphi, Java ou Java EE. Como sei isto? Nas fotos abaixo est\u00e1 uma m\u00ednima\u00a0parcela\u00a0das &#8220;evid\u00eancias&#8221; que acumulo no escrit\u00f3rio (e que se um dia Nanna jogar fora teremos uma briga s\u00e9ria).<\/p>\n<figure id=\"attachment_2076\" aria-describedby=\"caption-attachment-2076\" style=\"width: 250px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2076 size-full\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/java_magazines.jpg\" alt=\"java_magazines\" width=\"250\" height=\"141\" \/><figcaption id=\"caption-attachment-2076\" class=\"wp-caption-text\">Revistas antigas valem OURO<\/figcaption><\/figure>\n<figure id=\"attachment_2077\" aria-describedby=\"caption-attachment-2077\" style=\"width: 214px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2077 size-medium\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/pilha_de_ouro-214x300.jpg\" alt=\"pilha_de_ouro\" width=\"214\" height=\"300\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/pilha_de_ouro-214x300.jpg 214w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/pilha_de_ouro.jpg 300w\" sizes=\"(max-width: 214px) 100vw, 214px\" \/><figcaption id=\"caption-attachment-2077\" class=\"wp-caption-text\">Livros antigos tamb\u00e9m (e alguns tem diamantes no meio!)<\/figcaption><\/figure>\n<p>Quando um cliente me procura com um sistema antigo uma das primeiras coisas que me diz \u00e9: &#8220;acho ele velho, gostaria que fosse reescrito do zero&#8221;. Meu primeiro passo \u00e9 discordar e iniciar o trabalho arqueol\u00f3gico: compro livros publicados na mesma \u00e9poca das tecnologias usadas naquele software, corro atr\u00e1s de revistas relacionadas, navego por antigos f\u00f3runs, artigos, blogs, enfim: inicio um processo de pesquisa profundo, como se fosse um livro.<\/p>\n<p>O objetivo \u00e9\u00a0ter\u00a0<strong>compaix\u00e3o<\/strong>. O que \u00e9 compaix\u00e3o? \u00c9 o posicionar-se no lugar do outro e com isto entender seu modo de agir. Se\u00a0conseguir acesso direto ao programador, melhor ainda! Posso saber mais a respeito do seu ambiente de trabalho na \u00e9poca, talvez suas\u00a0frustra\u00e7\u00f5es e como isto influenciou o seu c\u00f3digo. Isto me permite inclusive, quando meu ego est\u00e1 fora de alcance, saber se aquela pessoa de fato sabia o que estava fazendo (tem no\u00e7\u00e3o da quantidade de pessoas (me incluo) que aprendeu a programar usando arquivos de ajuda?).<\/p>\n<p>Muitas vezes tento construir um ambiente de desenvolvimento pr\u00f3ximo ao da \u00e9poca. Consigo isto tendo em casa alguns computadores mais antigos, de prefer\u00eancia com o software daquele tempo. Isto me permite eliminar o risco de estar lidando com incompatibilidades com vers\u00f5es atuais das bibliotecas, sistema operacional (m\u00e1quinas virtuais valem ouro), etc.<\/p>\n<p>(acredite, quando voc\u00ea se depara com uma m\u00e1quina cujo HD tem 80 Mb e seu PC 16 Mb de RAM voc\u00ea passa a entender imediatamente o porqu\u00ea da forma daquele c\u00f3digo)<\/p>\n<p>Agora que tenho o modo de pensar e o ferramental da \u00e9poca posso trabalhar com seguran\u00e7a e ver como o software funcionava\u00a0<strong>naquela \u00e9poca<\/strong>.<\/p>\n<h3>Como evoluo\u00a0legado<\/h3>\n<p>Com base nestas informa\u00e7\u00f5es, a\u00ed sim altero o\u00a0c\u00f3digo fonte. Se fica n\u00edtido que o programador n\u00e3o conhecia a tecnologia, o trabalho fica f\u00e1cil: consigo melhorar a qualidade apenas aplicando as\u00a0boas pr\u00e1ticas\u00a0<strong>da \u00e9poca<\/strong>. Repare: n\u00e3o vou fazer uma transposi\u00e7\u00e3o direta para o presente ainda. Chamo esta fase de &#8220;<strong>restauro<\/strong>&#8221; pois n\u00e3o estou evoluindo arquiteturalmente a criatura, mas sim &#8220;colando alguns cacos soltos com testes e muita paci\u00eancia&#8221;.<\/p>\n<figure id=\"attachment_2080\" aria-describedby=\"caption-attachment-2080\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-2080\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/mestresdarestaura\u00e7\u00e3o-300x180.jpg\" alt=\"Sim, eu adoro &quot;Mestres da Restaura\u00e7\u00e3o&quot; que passa no History Channel!\" width=\"300\" height=\"180\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/mestresdarestaura\u00e7\u00e3o-300x180.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/mestresdarestaura\u00e7\u00e3o.jpg 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-2080\" class=\"wp-caption-text\">Sim, eu adoro &#8220;Mestres da Restaura\u00e7\u00e3o&#8221; que passa no History Channel!<\/figcaption><\/figure>\n<p>Feitas estas melhorias implemento uma ou outra nova funcionalidade que o cliente queira. Normalmente a produtividade est\u00e1 alta neste ponto pois j\u00e1 conhe\u00e7o a criatura. O processo de upgrade \u00e9 gradual e nunca direto. Por exemplo: se o sistema \u00e9 feito em Delphi 3, n\u00e3o vou migr\u00e1-lo direto\u00a0para o Delphi XE. Primeiro passo pelo Delphi 4, depois 5 e por a\u00ed vai. (fa\u00e7o muito isto com vers\u00f5es antigas do Grails). \u00a0Muitas vezes h\u00e1 recursos da \u00e9poca que n\u00e3o foram usados na aplica\u00e7\u00e3o: em alguns casos \u00e9 quase um upgrade.<\/p>\n<p>(e este processo de upgrade de plataforma muitas vezes \u00e9 desnecess\u00e1rio. Ser\u00e1 que seu sistema em Grails 1.3 precisa <em>realmente<\/em> do Grails 2.4?)<\/p>\n<p>Se a plataforma tecnol\u00f3gica n\u00e3o \u00e9 mais suportada (FoxPro, Visual Basic, Clipper, algum framework que &#8220;n\u00e3o existe mais&#8221;), sei exatamente em qual ponto parar. Da\u00ed pra frente precisamos decidir se h\u00e1 de fato algo que possa ser reaproveitado naquele sistema, se \u00e9 poss\u00edvel encapsul\u00e1-lo de alguma forma\u00a0ou mesmo se a partir daquele momento podemos iniciar um trabalho de reescrita (sempre o \u00faltimo caso) tendo como base a gera\u00e7\u00e3o de alguma forma de documenta\u00e7\u00e3o.<\/p>\n<p>Se algo funciona tor\u00e7o para que meu ego n\u00e3o a quebre.<\/p>\n<h3>Minha vis\u00e3o de TI gra\u00e7as ao legado<\/h3>\n<p>O principal ganho que o legado me trouxe foi uma vis\u00e3o muito mais rica sobre as tecnologias que vejo serem lan\u00e7adas. \u00c9 incr\u00edvel como diversas das coisas que as pessoas hoje bradam como novidade s\u00e3o apenas a reencarna\u00e7\u00e3o de algo que funcionou muito bem (ou n\u00e3o) no passado. Virtualiza\u00e7\u00e3o como algo moderno? Na d\u00e9cada de 60 o OS\/360 j\u00e1 tinha. Execu\u00e7\u00e3o din\u00e2mica de c\u00f3digo? CODASYL previa na d\u00e9cada de 50. <a href=\"http:\/\/www.reactivemanifesto.org\/\">Manifesto reativo<\/a>? Olha para os mainframes. E por a\u00ed vai&#8230;<\/p>\n<p>Voc\u00ea adquire mais pontos para fazer conex\u00f5es entre as coisas: fica mais f\u00e1cil assimilar a &#8220;novidade&#8221; que, na maior parte das vezes\u00a0\u00e9\u00a0uma nova roupagem ou ponto de vista sobre algo que j\u00e1 foi\u00a0resolvido no passado e agora est\u00e3o redescobrindo ou aperfei\u00e7oando.<\/p>\n<p>N\u00e3o \u00e9 raro que eu leia sobre tecnologias do passado que provavelmente nunca vou\u00a0tocar\u00a0(mainframes, COBOL, Clipper). N\u00e3o tanto por que eu &#8220;adquira mais pontos&#8221;, mas sim por que passo a ter um respeito muito maior por aqueles profissionais do passado que com t\u00e3o &#8220;pouco&#8221; criaram as bases deste mundo incr\u00edvel\u00a0que temos hoje.<\/p>\n<p>(tenho uma imensa lista de her\u00f3is entre estes profissionais)<\/p>\n<h3>Concluindo?<\/h3>\n<p>Espero neste post ter exposto o aspecto positivo do legado que, a meu ver, supera em muito o &#8220;negativo&#8221;. As reclama\u00e7\u00f5es que fazemos ou ouvimos costumam gerar esta imagem terr\u00edvel\u00a0de algo que, convenhamos, al\u00e9m de ser um mercado imenso e muito maior que o &#8220;green field&#8221; tamb\u00e9m nos fornece uma vis\u00e3o de TI muito mais profunda.<\/p>\n<p>Acredito que \u00a0este &#8220;mal estar&#8221; diante do legado se deva em grande parte \u00e0 nossa forma\u00e7\u00e3o. Nas faculdades e cursos t\u00e9cnicos \u00e9 muito raro termos exerc\u00edcios que exijam dos alunos interpretar e entender c\u00f3digo: na maior parte das vezes voc\u00ea apenas\u00a0escreve. Talvez se houvesse uma mat\u00e9ria de &#8220;arqueologia&#8221; ou mesmo hermen\u00eautica a coisa fosse muito diferente.<\/p>\n<p>Tamb\u00e9m acredito que seja importante saber do que estamos reclamando. Ser\u00e1 que \u00e9 do c\u00f3digo legado ou da empresa que n\u00e3o nos permite lidar direito com ele devido a uma m\u00e1 gest\u00e3o? Ser\u00e1 que a reescrita \u00e9 realmente o melhor caminho sempre? Ser\u00e1 que os problemas que temos n\u00e3o \u00e9 a simples falta de compaix\u00e3o e nossa pressa exagerada para resolver logo o problema e com isto nos impede de pensar (e aprender)?<\/p>\n<p>Esta \u00e9 minha vis\u00e3o sobre o legado. Tor\u00e7o para que tenha mudado a opini\u00e3o de algu\u00e9m aqui.<\/p>\n<p>PS:<\/p>\n<p>e s\u00f3 pra lembrar: o legado tamb\u00e9m serve para separar as crian\u00e7as dos adultos. :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na esmagadora maioria das\u00a0vezes que escuto algu\u00e9m reclamando do fato de estar lidando com c\u00f3digo legado me v\u00eam um dos dois pensamentos a seguir : &#8220;chor\u00e3o detected&#8221; ou &#8220;t\u00e1 reclamando da coisa errada&#8221;. Tamb\u00e9m n\u00e3o \u00e9 raro\u00a0ver\u00a0software ser jogado fora para ser reescrito do zero e sentir aquela certeza de que ir\u00e1 dar errado e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2081,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[34],"tags":[],"class_list":["post-2073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-paideia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o - \/dev\/Kico<\/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:\/\/devkico.itexto.com.br\/?p=2073\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"Na esmagadora maioria das\u00a0vezes que escuto algu\u00e9m reclamando do fato de estar lidando com c\u00f3digo legado me v\u00eam um dos dois pensamentos a seguir : &#8220;chor\u00e3o detected&#8221; ou &#8220;t\u00e1 reclamando da coisa errada&#8221;. Tamb\u00e9m n\u00e3o \u00e9 raro\u00a0ver\u00a0software ser jogado fora para ser reescrito do zero e sentir aquela certeza de que ir\u00e1 dar errado e [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=2073\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-02T23:30:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-12-02T23:33:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"320\" \/>\n\t<meta property=\"og:image:height\" content=\"195\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2073\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=2073\",\"name\":\"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2073#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2073#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg\",\"datePublished\":\"2014-12-02T23:30:59+00:00\",\"dateModified\":\"2014-12-02T23:33:30+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2073#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=2073\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2073#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg\",\"width\":320,\"height\":195},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2073#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o - \/dev\/Kico","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:\/\/devkico.itexto.com.br\/?p=2073","og_locale":"pt_BR","og_type":"article","og_title":"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o - \/dev\/Kico","og_description":"Na esmagadora maioria das\u00a0vezes que escuto algu\u00e9m reclamando do fato de estar lidando com c\u00f3digo legado me v\u00eam um dos dois pensamentos a seguir : &#8220;chor\u00e3o detected&#8221; ou &#8220;t\u00e1 reclamando da coisa errada&#8221;. Tamb\u00e9m n\u00e3o \u00e9 raro\u00a0ver\u00a0software ser jogado fora para ser reescrito do zero e sentir aquela certeza de que ir\u00e1 dar errado e [&hellip;]","og_url":"https:\/\/devkico.itexto.com.br\/?p=2073","og_site_name":"\/dev\/Kico","article_published_time":"2014-12-02T23:30:59+00:00","article_modified_time":"2014-12-02T23:33:30+00:00","og_image":[{"width":320,"height":195,"url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg","type":"image\/jpeg"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=2073","url":"https:\/\/devkico.itexto.com.br\/?p=2073","name":"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2073#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2073#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg","datePublished":"2014-12-02T23:30:59+00:00","dateModified":"2014-12-02T23:33:30+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2073#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=2073"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=2073#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg","width":320,"height":195},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=2073#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"C\u00f3digo legado: um exerc\u00edcio de arqueologia e compaix\u00e3o"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2014\/11\/ridiculously-old-computer.jpg","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2073"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2073"}],"version-history":[{"count":4,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2073\/revisions"}],"predecessor-version":[{"id":2082,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2073\/revisions\/2082"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/media\/2081"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}