Reuso de Codigo: Quando Reaproveitar e Quando
Reuso de codigo e considerado boa pratica. Ate voce reutilizar o modulo errado no contexto errado e explodir um foguete. Esse artigo te da um framework pra decidir
Carregando
Reuso de codigo e considerado boa pratica. Ate voce reutilizar o modulo errado no contexto errado e explodir um foguete. Esse artigo te da um framework pra decidir
Reuso de codigo e considerado boa pratica. Ate voce reutilizar o modulo errado no contexto errado e explodir um foguete. Esse artigo te da um framework pra decidir quando reaproveitar e quando reescrever.
Checklist pratico de code review baseado em desastres reais
Como software critico e desenvolvido e o que devs SaaS podem aprender
O sistema de referencia inercial (SRI) do Ariane 5 era um modulo reutilizado diretamente do Ariane 4. Naquele foguete, funcionou por anos sem problema nenhum. O codigo era estavel, testado e confiavel. Por que nao reaproveitar?
O problema: o Ariane 5 tinha uma trajetoria de lancamento completamente diferente do Ariane 4. A velocidade horizontal do Ariane 5 era muito maior no inicio do voo. O modulo SRI convertia a velocidade horizontal de float 64 bits pra inteiro de 16 bits. No Ariane 4, o valor nunca passava de 32.767 (limite de int16). No Ariane 5, passava. Overflow. Boom.
O relatorio oficial do acidente foi claro: o erro nao era do codigo. O codigo fazia exatamente o que foi programado pra fazer. O erro era da decisao de reutilizar sem revalidar. A equipe assumiu que 'se funcionou antes, funciona agora' sem verificar se as condicoes mudaram.
E essa e a armadilha do reuso: codigo que funciona perfeitamente num contexto pode ser letal em outro. A qualidade do codigo e irrelevante se as premissas do ambiente mudaram. E premissas mudam o tempo todo — novos volumes de dados, novas regras de negocio, novas integrações, novos padroes de uso.
Nem todo reuso e ruim. E nem toda reescrita e justificada. O problema e que devs tendem a ir pra extremos: ou copiam tudo sem pensar, ou querem reescrever do zero 'porque o codigo antigo e feio'. Os dois extremos sao caros. Voce precisa de criterios objetivos.