Analisador de código

Olá pessoa. Eu sou estudante de Sistemas de Informação, ultimo ano da graduação. Sou programador desde antes da faculdade, sou daqueles chatos que gostam do código bonitinho, bem formatado e legivelmente entendível. A minha proposta de TCC é na área de teoria da computação. A ideia inicial é desenvolver uma plataforma que possa receber um código e dizer se ele está de acordo ou não. Similar ao analisador sintático de muitas IDEs. Mas quero fazer isso para padrões de código. Ex:.

Estruturas lógicas devem possuir um espaço em branco entre os parenteses e os atributos, a abertura de chave deve ser feita na mesma linha da estrutura lógica.

O meu desejo é tornar a plataforma open source futuramente, e que ela possa ser flexível aos desenvolvedores, onde possam definir qual padrão o código deve seguir.

Os dois principais objetivos deste trabalho é ajudar aos desenvolvedores a seguirem todos um mesmo estilo de código fazendo assim com que a equipe seja mais homogênea.

Um outro ponto é que o code review possa ser ‘automatizado’ isso em relação a padrões e formas de escrita do código, ficando a cardo de quem está revisando o código se preocupar mais com questões de percepção humana.

Bom, o que eu gostaria de vocês aqui, é que possam me indicar um rumo por onde começar. Me dizer a viabilidade do trabalho, se algo assim seria realmente útil ou se estou apenas viajando, assim como a indicação de trabalhos semelhantes, e de material de estudo, não encontro muita coisa a respeito, por isso venho humildemente pedir ajuda a todos que possam se interessar por este trabalho.

atenciosamente,

Ronildo dos Santos.

Interessante sua proposta.

Leia esse post: http://www.yegor256.com/2014/08/13/strict-code-quality-control.html
Acho que pode estar na mesma linha da sua ideia.

Cita algumas ferramentas como Checkstyle e FindBugs.

Cheguei a ver algumas ferramentas de code review mas não lembro o nome delas nesse momento.

É só a formatação (estilo de digitação) ou a avaliação dessa ferramenta vai além disso? Porque muitas IDEs já contam com recursos parecidos (parecidos, não necessariamente idênticos), como no Eclipse (Source->Format , ou Ctrl+Shift+F) e Visual Studio (Edit->Advanced->Format Document, ou Ctrl+K).

O que não há até onde sei é uma integração entre diferentes instalações (numa mesma equipe, por exemplo). Talvez se você fcar esse ponto seu projeto fica mais interessante. Por exemplo, uma ferramenta que sincronize as configurações de estilo em todos os computadores de uma rede ou projeto. Poderia ser inclusive um plugin para IDEs já existentes (porque abrir uma ferramenta externa pode não ser tão prático).

Outra opção é que a ferramenta, como plugin, seja capaz de sugerir ajustes (ou mesmo ajustar o código) em tempo real, semelhante à detecção de variáveis não usadas ou erros de sintaxe das IDEs modernas.

Abraço.

2 curtidas

Se sua proposta é um beautifier tipo esse:

ou como o @TerraSkilll apontou bem as outras, acho que você já tem algumas implementações que podem servir de inspiração.

Obrigado pela indicação da ferramenta, irei estuda-la também.

Inicialmente a proposta é mais para formatação e estilo do código. Obrigado pelas sugestões são bem vindas.

Obrigado pelas indicações.

gofmt faz isso.

O código do Go é aberto. Se quer saber mesmo como funciona, taí um bom ponto de partida.