Auditando seu código Delphi
Quando falamos em qualidade, sempre nos preocupamos em apresentar ao cliente um software de alto desempenho. Muitos nos dizem que não importa como o software está escrito, mas sim que funcione e atenda às suas necessidades. Na verdade, quem pensa assim está cometendo um grande erro, que pode trazer impacto lá na frente. Se você não escreve um código estruturado e depois precisa crescer a aplicação, pode acontecer de você não conseguir, pois muitos remendos foram feitos e sua aplicação não cresceu de forma estruturada. O Delphi irá contribuir, através de auditoria e métricas, para encontrar erros na sua aplicação enquanto estiver em produção e ajudarão a disciplinar os desenvolvedores a escrever códigos padronizados.
Quantas vezes você já definiu um guia de melhores práticas de codificação que evitasse que sua equipe de programadores cometesse aquelas gafes de codificação que podem tornar o código tão ineficiente quanto incompreensível?
Suponhamos que sua equipe tenha um guia de melhores práticas, a segunda pergunta fatalmente seria: Como podemos garantir que o guia está sendo seguido?
A resposta novamente seria: revisão de código (code review) e, se encaixarmos tal prática no contexto de um projeto com milhares de linhas de código, sabemos que o resultado pode ser catastrófico no que diz respeito a tempo.
Através do recurso de auditoria de código (QA Audits) do Delphi você poderá finalmente definir um conjunto de boas práticas de codificação e garantir que estas práticas estão sendo seguidas em seus projetos. Traduzindo para o dia-a-dia, você irá detectar erros que podem ocorrer na aplicação antes de ela ser executada.
A auditoria verifica se o código está em conformidade com as regras e parâmetros estabelecidos pela organização. Os resultados apresentam apenas as violações detectadas e de forma categorizada, são elas:
- Arrays e Referências
- Código duplicado
- Conteúdo supérfluo
- Desempenho
- Desvios e laços
- Estilo de codificação
- Estilo de nomenclatura
- Expressões
- Falhas de projeto (design)
- Possíveis erros
Cada item da auditoria tem uma nota explicativa representando o modo correto e o incorreto para utilização da mesma, tornando mais fácil o entendimento por parte do desenvolvedor naquele item da auditoria. Cada um desses itens pode ter seu nível de severidade alterado entre: Info, Warning e Error. Ficando a critério do desenvolvedor definir a importância do item.
Loop Body is Never Executed (LBNE)
Em muitos casos, temos rotinas de execução que envolve vários loops e é necessário depurar para ter certeza que os loops serão executados. Com a auditoria LBNE, isso pode ser detectado. O código abaixo é um exemplo simples que podemos detectar. Exemplos complexos, com diversas condições, também são detectados facilmente.
var x: Boolean; begin x := false; while s do begin .... end;
INDEX OUT OF BOUNDS (IOB)
Esta mensagem é comum quando se tenta acessar uma posição de array inexistente. Veja abaixo um exemplo de um código que irá gerar este aviso.
var nloops, i, j :integer; matriz : array of integer; somatorio : double; begin for i := 0 to nloops do begin somatorio := 0; for j := 0 to High(matriz) do somatorio := somatorio + matriz[i]; end;
A auditoria apontou o erro e informa que na linha 25 existe a tentativa de acesso a uma variável que não faz do 2º loop, vamos explicar melhor.
No for da variável J, estou tentando acesso a uma posição do array ARR, apontando para a posição I do loop anterior, sendo que no for da variável J é onde está sendo percorrido o array ARR.
São mais de 200 auditórias disponíveis no Delphi, que tal executar o processo de auditória no seu código, não se assuste com o resultado :), a idéia é lhe ajudar a melhorar a qualidade do seu produto final.
Trackbacks & Pingbacks
[…] Auditanto seu código Delphi – http://www.andreanolanusse.com/pt/auditando-seu-codigo-delphi/ […]
[…] This post was mentioned on Twitter by Andreano Lanusse, Everson Novka. Everson Novka said: RT: @andreanolanusse: Blog post: Auditando seu código Delphi http://bit.ly/4ELd6x #delphi […]
Deixe uma resposta
Want to join the discussion?Feel free to contribute!