Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Removendo código em desuso no LibreOffice

Enviado por Eliane Domingos de Sousa (contatoΘlibreofficebr·org):

“Uma das coisas infelizes que o LibreOffice herdou, após várias décadas valendo uma dívida técnica em aberto, é o código sem uso que ficou largado por ai indefinidamente. Isso realmente não ajuda quando misturada ao peso e profundidade do código válido que temos. Caolán McNamara da Red Hat escreveu uma bela ferramenta callcatcher que identifica esses métodos sem uso, e recentemente ficamos com um arquivo unusedcode.easy na raiz de nosso código com uma lista de métodos a remover. É muito fácil achar e remover um método ou dois, basta um git grep, e criar um patch para a lista dos desenvolvedores. Para fugir de uma pilha de tarefas administrativas recentes, arranjei um script Perl para mastigar a saída do git numstat para ver como é que ficamos nessa história. O resultado foi o seguinte gráfico:

Parece que mais da metade de nosso código sem uso já ficou pra trás. Infelizmente, enquanto varremos o lixo pra fora, mais lixo aparece, bem observados nos pinotes pra cima no gráfico, ainda que a tendência é claramente ladeira abaixo. Se você quer se envolver com o desenvolvimento do LibreOffice, não pode ser mais fácil do que isso, faça o checkout do código e mande ver a sua vassoura.

Se não for no LibreOffice, por que você não roda o callcatcher do Caolán no seu projeto para ver as rebarbas e bolas quadradas que sobraram dos requerimentos? Tradução voluntária: Olivier Hallot. Fonte: Post de Michael Meeks no blog da The Document Foundation.” [referência: libreofficebrasil.blogspot.com]


• Publicado por Augusto Campos em 2012-01-11

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Rael Gugelmin Cunha (usuário não registrado) em 11/01/2012 às 7:12 pm

    Augusto, acho que faltou o gráfico na news.

    Tércio Martins (usuário não registrado) em 11/01/2012 às 7:48 pm

    E o Perl salva a pátria mais uma vez!

    Carlos Felipe (usuário não registrado) em 11/01/2012 às 11:56 pm

    Li no Muylinux.com, lá tem o gráfico.
    http://www.muylinux.com/2012/01/11/libreoffice-se-pone-a-dieta-adelgaza-la-mitad/

    Furanus Alheius (usuário não registrado) em 11/01/2012 às 11:59 pm

    Anos de OpenOffice sob a tutela da sun, pouco tempo sob a tutela da oracle e nada de melhorar ou sequer andar … agora sim melhora …

    Patola (usuário não registrado) em 12/01/2012 às 3:43 am

    Não entendi. Como é que analisar o código executado pode dar embasamento para remover um método não usado? Seria virtualmente impossível executar todos os casos de uso imagináveis para o openoffice para os quais os métodos foram feitos. E provavelmente alguns métodos só serão chamados em casos bem específicos mesmo.

    Não periga de o código ficar “manco” depois? Ou ninguém se preocupa porque depois é só ver o código velho e voltar a alteração?

    Marcos (usuário não registrado) em 12/01/2012 às 8:04 am

    @Patola, boa pergunta. Eu pensei que esse analisador fazia era identificar se existe alguma funçao que nunca foi chamada, mas isso as IDEs de hoje em dia já fazem.

    Mas tenho certeza que a ferramenta consegue identificar com precisão algum tipo de código legado, eles não cometeriam um erro básico.

    O que me frustra nos projetos OpenOffice e LibreOffice há anos é que todas as versões sempre prometem a mesma coisa: limpeza de código, correção de bugs e algumas novidades. E no final o sistema continua pesadão, feio e bem mais defasado que os concorrentes. Uso porque ainda é a única alternativa viável livre, mas não deixa de ser frustrante.

    Spif (usuário não registrado) em 12/01/2012 às 8:22 am

    Eu acho que existe um grande potencial para que tudo termine em lágrimas.

    Weber Jr. (usuário não registrado) em 12/01/2012 às 8:40 am

    Eles usam uma ferramenta que indica código que nunca foi chamado.

    Os aumentos se dão ao retirar esse código, pois ele chamava outros trechos que agora não são mais chamados.

    Miguel (usuário não registrado) em 12/01/2012 às 9:14 am

    Caros, com um simples grep em um código fonte se encontra chamadas para métodos e funções. A grosso modo, se um grep não acha o nome do método em outros arquivos a não ser o arquivo onde o método está definido, então ele não é usado. A não ser que o código esteja muito bem ofuscado.

    foobar (usuário não registrado) em 12/01/2012 às 9:37 am

    Caros, com um simples grep em um código fonte se encontra chamadas para métodos e funções. A grosso modo, se um grep não acha o nome do método em outros arquivos a não ser o arquivo onde o método está definido, então ele não é usado. A não ser que o código esteja muito bem ofuscado.

    Se fosse assim tão simples.

    Weber Jr. (usuário não registrado) em 12/01/2012 às 10:00 am

    A ferrramenta usada compila e analisa o código gerado pelas referências.

    Procurar somente nos fontes é bem arriscado. Precisa compilar, ou parcialmente compilar, nem necessita gerar o código final.

    O Eclipse por exemplo está sempre fazendo análise do código. Isso serve para fazer desde highlight e detecção de erros até esse tipo de coisa, indicar onde um método é usado ou não.

    Qualquer IDE parruda atual faz isso. Usar técnicas que não são da área de compiladores é mais trabalhoso e aí sim pedir para acontecer porcaria.

    Guilherm_ (usuário não registrado) em 12/01/2012 às 10:23 am

    Enquanto isso o Calligra parece ser promissor, ele ja abre bem os arquivos do MS Office, só falta agregar mais funções, uma coisa q me agrada muito nele é a interface diferente, não chega a ser melhor mas pelo menos é uma tentativa de mudar e não copia de copias :)

    Ricardo (usuário não registrado) em 12/01/2012 às 10:44 am

    O trabalho dos caras parece que está dando resultado mesmo. O Beta do LibreOffice 3.5 parece muito mais rápido que antes. Ainda não testei tudo, mas dá pra notar que algumas coisas já começaram a mudar. A forma de trabalhar com cabeçalho e rodapé está bem mais fácil e aquela borda na página não vem mais como padrão. Eu acho que está ficando muito bom. Mostrei para um antigo usuário do BrIffice aqui e ele gostou também.

    Carlos Felipe (usuário não registrado) em 12/01/2012 às 1:45 pm

    @Patola, boa pergunta. [2] Por que se for assim tão fácil, a Microsoft faria em seus produtos..

    Rael Gugelmin Cunha (usuário não registrado) em 12/01/2012 às 2:43 pm

    @Carlos Felipe: os comentários que já ouvi de terceiros sobre trabalhar na Microsoft, é que não se tem acesso a todo código fonte, apenas ao trecho relativo que você precisa trabalhar.

    Manoel Pinho (usuário não registrado) em 12/01/2012 às 6:14 pm

    Uma observação é que remover esses supostos métodos não usados vai diminuir o tamanho do código-fonte, o tempo total de compilação e facilitará o trabalho com o código mas isso não gera um executável menor ou mais rápido.

    Spif (usuário não registrado) em 13/01/2012 às 12:28 am

    Manoel, tem razão. Se não era usado, como afetava a velocidade?

Este post é antigo (2012-01-11) e foi arquivado. O envio de novos comentários a este post já expirou.