Vitor Pamplona

Innovation on Vision: Imaging , Enhancement and Simulation

Visualizando as Convenções CoC

 Como Rails utiliza fortemente o paradigma Convention over Configuration (CoC) há muita coisa escondida, principalmente para os iniciantes. Coisas escondidas obviamente não são legais para a segurança de uma aplicação. Imagine se alguém deixa um buraco, deixa escapar um xml com informações confidenciais? Desta forma seria interessante ter um aplicativo que permita visualizar, com gráficos, as entradas e saídas de uma aplicação Rails, os fluxos, as validações, as páginas interligadas, as páginas que existem e não estão sendo referenciadas, etc.

Vasculhei a internet na busca de algo similar. O máximo que encontrei foi o railroad, um gerador de diagramas de classe para aplicações Rails. Mais uma vez, me impressiono com a simplicidade. A saída do plugin é um arquivo no formato dot, usado por aplicações como o GraphViz. Desta forma, o railroad não se preocupa em visualizar, se preocupa apenas em gerar o melhor diagrama possível, com as informações mais pertinentes ao usuário. É uma boa ferramenta para quem deseja fazer uma engenharia reversa, do código para o diagrama de classes.

Instalar ambos é bem simples:

sudo gem install railroad
sudo apt-get install graphviz

Usar é ainda mais:

railroad -o model.dot -M 
railroad -o controller.dot -C
dot -Tpng model.dot > models.png
dot -Tpng controller.dot > controller.png

Pronto! Você agora tem duas imagens com os diagramas de classe dos seus modelos e de seus controladores.

No entanto, é uma pena que ele só gere diagramas de classe. Porém, já é um início para um projeto bem mais audacioso que resolveria o problema que descrevi acima. Sugestões de projetos, por favor comentem este post.

Posted in Aug 10, 2008 by Vitor Pamplona - Edit - History

Showing Comments

Também estou a caça do mesmo tipo de ferramenta. Se houver algum Railer que possa ajudar, seria gratificante.

- - Edson Gonçalves

- - Posted in Feb 9, 2008 by 201.13.81.50

Add New Comment

Your Name:


Write the code showed above on the text below.