DesenvolvimentoComo lidar com seu código legado

Como lidar com seu código legado

-

Como lidar com seu código legadoQualquer desenvolvedor que se preze volta e meia é obrigado a retornar àquele sistema antigo, arcaico tecnologicamente, que está escanteado e há muito tempo não recebe um tratamento mais cuidadoso. Somos reticentes, fazemos cara feia, olhamos desconfiados, mas muitas vezes não tem jeito: é uma parte importante do nosso ofício manter o espólio tecnológico da empresa que trabalhamos funcionando continuamente.

Pode parecer estranho, mas é perfeitamente natural agirmos com certa reserva, uma vez que queremos sempre estar em contato com as últimas versões das ferramentas e tecnologias que utilizamos diariamente. Mas, mais do que isso, precisamos desse sentimento de inovação como um gatilho motivacional e desafiador, sem contar que é essencial manter-se reciclado nesse mercado tão dinâmico da tecnologia da informação, onde mudanças ocorrem num piscar de olhos.

Mas então, como podemos tratar nossos códigos legados para que qualquer manutenção, seja fazer uma correção ou adicionar uma nova funcionalidade, corra o mais tranquila possível e, principalmente, nos direcione sempre para aquela sensação estimulante de desafio diário?

  1. Isolar o ponto de alteração

    Depois de garantir que estamos trabalhando sobre a mesma versão da aplicação que está rodando em produção (espero que todos tenham uma gerência de configuração confiável para lhe dizer isso), a primeira coisa é identificar o ponto exato onde será realizada a alteração, seja um serviço, classe, método ou mesmo um comando com problema. Antes mesmo de colocar efetivamente a mão na massa, o importante é isolar o trecho de código onde serão feitas as modificações. Caso seja um bug, qualquer artifício que ajude a descobrir as causas do problema será de grande valia: arquivos de logs, exceptions, debug, testes de performance. Se for necessário, atualize o banco de dados de desenvolvimento com uma cópia do de produção, para ter certeza que estamos trabalhando em um ambiente o mais fiel possível ao que o cliente está utilizando.

  2. Garantir o funcionamento do que existe

    Agora temos que certificar que as modificações que serão inseridas não impactarão o que existe no sistema. Inúmeras vezes já acompanhei desenvolvedores que, no intuito de corrigir alguma anormalidade, não têm o cuidado devido e acabam inserindo muitos outros problemas. Então, antes de qualquer alteração, temos que testar todas as possibilidades conhecidas, pensar em cenários e listar entradas e saídas possíveis, a fim de garantir que o trecho identificado na etapa anterior esteja funcionando conforme o esperado. Só quando tivermos certeza que tudo está devidamente protegido por testes e funcionando podemos seguir adiante nas alterações.

    Normalmente essa é uma das partes mais custosas de um projeto, uma vez que o trabalho entregue não será visível para o cliente final. Mas ao mesmo tempo garantirá que futuros reparos sejam mais rápidos e transparentes. Se for necessário estipular prazos, leve sempre em consideração o tempo que será gasto desenvolvendo os testes.

  3. Refatorar

    Nesse momento que colocaremos em prática todo nosso conhecimento para realizar a tarefa. Mas não devemos nos limitar a somente uma alteração pontual para corrigir um bug, mas analisar principalmente o que posso melhorar nessa parte do sistema para que ele seja um pouco menos antiquado que antes. Torná-lo mais estruturado e organizado, aplicar algum padrão de projeto, utilizar alguma biblioteca existente para fazer um serviço específico, criar componentes que possam ser reutilizados em outros lugares, documentar e simplificar trechos muito complexos, atualizar versões de frameworks e bibliotecas. Note que, assim que é finalizado, um sistema já nasce com algum legado e, se formos negligentes e não o atualizarmos com alguma frequência, em pouco tempo ele estará morto tecnologicamente.

    Nunca se esqueça de rodar seguidamente os testes criados anteriormente, para atestarmos que as mudanças não impactaram o que estava funcionando. Provavelmente será necessário adaptá-los para contemplar as novas funcionalidades, mas, no fim, código e testes estarão atualizados e, ao menos, esse trecho estará seguro.

Dentro desse processo ainda podem ser incluídos diversos outros passos que nos ajudem em futuras manutenções no sistema, como, por exemplo, adicionar o sistema à integração contínua para verificações automáticas da qualidade e cobertura do código, que nos dê feedback constante sobre o que está sendo feito, mas acredito que com essas etapas já é possível mantermos inicialmente nosso legado.

Antes de passar adiante um código, pense em como gostaria de recebê-lo. Além de ser uma boa prática, você estará facilitando a vida do seu sucessor. Apenas resta-nos fazer um serviço bem feito para que, nas vezes posteriores, esse trabalho não seja um fardo tão grande assim. O próximo profissional pode ser você.

[Crédito da Imagem: Código Legado – ShutterStock]

Ronaldo Cundahttp://br.linkedin.com/pub/ronaldo-cunda/1b/477/493
Formado em Ciência da Computação em 2003 pela PUCRS, trabalha com tecnologia de informação há mais de 10 anos, especialmente utilizando tecnologias Microsoft. Líder técnico, desenvolvedor e analista de sistemas. Entusiasta de metodologias ágeis, Scrum e XP, e praticante de boas práticas de programação.

Latest news

Estratégia de comunicação para TI: 5 erros para NÃO cometer

Existem 5 erros comuns que você não pode cometer mais na comunicação da sua empresa. Se você é um MSP que busca o sucesso, acesse e confira!

Inovação e Liderança: Uma Jornada de Transformação Digital

Inovação e Liderança: Uma Jornada de Transformação DigitalNo ritmo acelerado do mundo de hoje, a combinação de inovação e empreendedorismo é fundamental para profissionais que desejam gerar impacto nas organizações. Ao longo da minha carreira, passei de funções técnicas para posições de liderança, e, nesse caminho, aprendi como a tecnologia pode ser uma força transformadora nos negócios.

IDCA – A Força Motriz por Trás da Excelência em Infraestrutura Digital

Em um mundo cada vez mais digital, a Infraestrutura Digital robusta e confiável se tornou a espinha dorsal da sociedade moderna. É nesse cenário crucial que o IDCA (International Data Center Authority) se destaca como líder mundial, moldando o presente e o futuro da indústria. Mas o que torna o IDCA tão especial?

Gerenciador de senhas: saiba como fortalecer a segurança de TI da sua empresa em 2024

Um gerenciador de senhas é uma ferramenta projetada para armazenar, organizar e gerenciar senhas de forma segura. Mas podemos mostrar que ele vai muito além disso!
Publicidade

Software para MSPs: indo além do preço ao procurar pelas ferramentas certas

Confira 5 dicas essenciais para escolher as melhores plataformas para compor o monitoramento e segurança da infraestrutura de TI dos seus clientes

Rápido, seguro e nativo: Chrome chega ao Windows no Snapdragon

"Projetamos o navegador Chrome para ser rápido, seguro e fácil de usar em desktops e dispositivos móveis, e estamos sempre procurando maneiras de levar essa experiência a mais pessoas", disse Hiroshi Lockheimer, Senior Vice President, Google.

Must read

Estratégia de comunicação para TI: 5 erros para NÃO cometer

Existem 5 erros comuns que você não pode cometer mais na comunicação da sua empresa. Se você é um MSP que busca o sucesso, acesse e confira!

Inovação e Liderança: Uma Jornada de Transformação Digital

Inovação e Liderança: Uma Jornada de Transformação DigitalNo ritmo acelerado do mundo de hoje, a combinação de inovação e empreendedorismo é fundamental para profissionais que desejam gerar impacto nas organizações. Ao longo da minha carreira, passei de funções técnicas para posições de liderança, e, nesse caminho, aprendi como a tecnologia pode ser uma força transformadora nos negócios.
- Advertisement -

You might also likeRELATED
Recommended to you