A partir de um projeto grande, devo dividi-lo em partes mais concisas?

5

Antecedentes: Atualmente é estagiário em uma empresa e está trabalhando na reaproveitamento de programas antigos (ainda em uso, mas para departamentos diferentes) para uso em testes de novos hardwares. O novo hardware é diferente em termos de layout de registro e interface de firmware das antigas iterações de hardware. Recebi o reinado gratuito sobre como configurar este projeto, pois ele deve ser usado exclusivamente para o novo hardware.

Atualmente, existe um único arquivo .c e 5 arquivos de cabeçalho diferentes que compõem o programa. O arquivo .c tem atualmente mais de 10.000 linhas e inclui TODAS as funções únicas em uso de main ().

A minha pergunta é, devo dividir o código em partes mais reconhecíveis de arquivos .c? Atualmente, é apenas um leve aborrecimento passar e encontrar os métodos de que preciso, mas é demorado e tenho prazos. Quais são os benefícios e vantagens de fazê-lo agora, em vez de mais tarde?

Eu pretendo finalizar a redefinição do programa até a semana que vem (isso é um grande otimismo, provavelmente levará duas semanas), então é mais eficiente começar a selecionar e mover código agora, ou eu vou me beneficiar mais disso? apenas tentando forçar meu caminho como é?

    
por ardent 13.07.2012 / 20:11
fonte

3 respostas

5

Se for possível tornar o código existente mais gerenciável, é melhor refatorá-lo. Caso contrário, vai causar problemas toda vez que você se referir a ele. Imagine que você precise trabalhar com esse código novamente em um ano ou dois. Eu não acho que será uma experiência agradável.

Mesmo que você não tenha muito tempo, vale a pena refatorar. Acho que um dia será mais que suficiente para dividir o código em várias partes lógicas e criar um arquivo separado para cada um. Isso ajudará você a obter uma visão geral do código como um todo e, da próxima vez que precisar encontrar algo, saberá exatamente onde procurar.

Existem algumas perguntas semelhantes (mas não duplicadas). Dê uma olhada neles:

por 13.07.2012 / 20:20
fonte
0

Presume-se que você esteja testando o código nas caixas para migrar para ele. Portanto, eu presumo que é melhor manter o software o mais próximo possível do original, se isso for usado para comparações lado a lado etc. Caso contrário, qual é o objetivo?

    
por 13.07.2012 / 20:24
fonte
0

Aqui está o que eu fiz no meu trabalho anterior. Eu também enfrentei esse problema, onde algum idiota pensou que seria uma boa idéia colocar o código em arquivo e, como ele seria o único que trabalha nele nos próximos anos, ele sabia aproximadamente os números das linhas de cada função / método.

Eu sabia que ia quebrar as coisas Se eu tentasse modularizar todo o código, então comecei a escolher partes de métodos / funções que eu estava mudando. Por exemplo, eu tive que corrigir um problema de exibição de carrinho de compras e para isso eu tive que fazer alterações no método / função clearShoppingCart (), então eu peguei este código colocado em um arquivo separado ShoppingCartUtility.java

Durante um período de 3 meses, mudei 75% do código de uma estrutura gerenciável e fácil de entender.

Felicidades! Dinesh

    
por 13.07.2012 / 21:49
fonte