BT

RubyMine 2.0: Um Caminho Claro para o Desenvolvimento Dinâmico

por Robert Bazinet , traduzido por Henrique Gontijo em 14 Dez 2009 |

A JetBrains se propôs a construir a melhor IDE para Ruby do mercado. A pouco mais de 6 meses foi lançada a versão 1.0, e agora foi lançado o RubyMine 2.0.

No primeiro lançamento, nós conversamos com o desenvolvedor-líder do RubyMine, Dmitry Jemerov onde ele disse o que estava por vir nas versões futuras, e, como prometido, o RubyMine está se tornando um sólido ambiente de desenvolvimento para Ruby.

Uma lista completa dos novos recursos disponíveis está no site da RubyMine, na seção que há de novo As principais características desta nova versão incluem:

• Suporte para Ruby 1.9 e o framework Ruby on Rails mais recente
• Refatoração avançada de código para Ruby, com suporte para projetos Rails
• Melhoria de análise de código Ruby e a detecção de código duplicado
• Suporte à internacionalização em Rails (i18n), com código para assistência
• Criação e execução de cenários de teste Cucumber e Shoulda
tests

O InfoQ teve a oportunidade de conversar com Eugene Toporov, Gerente de Marketing de Produtos da JetBrains, sobre o lançamento do RubyMine 2.0.

Sobre os mais significativos recursos da versão 2.0, Eugene esclarece:

De modo geral, estamos trabalhando para o RubyMine 2.0 atender a maioria das necessidades dos desenvolvedores de aplicações Rails. Com este lançamento, percebemos que a nossa IDE fornece uma forte integração das tecnologias e frameworks mais usados no mundo Ruby e Rails.

E estamos trabalhando em várias direções. O JetBrains é o pioneiro na criação de ferramentas de refatoração, com isso solicitamos aos desenvolvedores Ruby um conjunto confiável de código Ruby refatorado. O teste é algo muito importante no processo de desenvolvimento, e com o suporte completo ao Cucumber e Shoulda, o RubyMine pode atender agora as necessidades de praticamente qualquer projeto Ruby Rails. Um outro aspecto muito importante é o desempenho da IDE e nos esforçamos muito nisso também.

Parece que o Cucumber e o Shoulda estão se tornando cidadãos de primeira classe em RubyMine. Esse é um tópico muito importante para a JetBrains:

Exatamente! Estamos tão animado com o Cucumber, que a equipe RubyMine utiliza-o para os próprios testes. Assim, utilizamos a integração do Cucumber e estamos confiantes de que é o melhor em termos de edição e execução de cenários Cucumber. O auto-complete de passos funciona muito bem, mesmo para uma grande quantidade de definições, e você não precisa lembrá-los exatamente. A criação de passos definidos (steps) através do uso e exemplos automáticos ajudam a economizar um grande quantidade de tempo.

Os que preferem Shoulda podem agora escrever e executar de testes com o framework no RubyMine, com o assistente de codificação, rodando testes individuais, além de outros recursos que fornecemos para frameworks de teste integrados.

A inclusão do suporte à i18n em RubyMine é o novo recurso mais significativo e que foi utilizado em um projeto real. Eugene explica como o utiliza:

Ah, o i18n é uma das minhas favoritas. Participei da internacionalização no Radiant CMS há poucos meses, sem a ajuda de uma IDE. E recentemente trabalhei com a internacionalização usando RubyMine 2.0. A diferença é enorme! Extrair seqüências do código, tanto do Ruby e do Rails views (ERB ou HAML), é uma questão de segundos agora e é menos propenso a erros. Você pode navegar de imediato nos arquivos de localização, ver o texto que irá gerar o seu código, não importando a quantidade de línguas na sua aplicação. Sim, isso é muito mais fácil agora.

A produtividade do desenvolvedor é um grande foco nessa release, o próprio tema deixa isso claro:

Há diversas. Alguns são bem grandes, como a rotina de detecção de código duplicado. Ele permite verificar código de projeto e encontrar blocos de código semelhantes. Nós o testamos em muitos projetos Ruby de código aberto, até mesmo o código do framework Rails. Os resultados são bem interessantes e úteis.

Também existem pequenas coisas que os desenvolvedores irão gostar. Um dos economizadores de tempo é o "Criar a partir do uso", que a partir de uma intenção de ação permite a criação de elementos através do uso. Você pode referenciar um método não-existente em seu código e chamar o quick-fix para criá-lo. Isso permite a criação de novas actions, partials, JavaScript ou CSS.

Comparando ao RubyMine 1.x, a nova versão foi construída sobre a plataforma mais recente da IntelliJ, uma IDE com recursos genéricos e melhorias - suporte VCS, interface e usabilidade. Um exemplo é a personalização de cores de fundo para arquivos e conjuntos de arquivos. Agora, quando você tem 3 arquivos show.html.erb abertos em abas, você pode dizer qual é qual.

A discussão passou para o suporte ao Ruby 1.9.1 e como o suporte no RubyMine 2.0 é diferente das versões anteriores:

Atualmente, o RubyMine 1.x apenas aceita o Ruby 1.9 SDK, mas não reconhece a nova sintaxe da linguagem. Agora o editor RubyMine reconhece e compreende a nova sintaxe lambda, a semântica das variáveis locais, etc. Isso é muito mais do que apenas o destaque de sintaxe, o reconhecimento agora faz parte das rotinas do RubyMine de análise de código.

Refatoração tem sido um recurso distinto nos produtos JetBrains no passado. Quando questionado sobre o nível de refatoração no 2.0, esclarece:

RubyMine 2.0 adiciona várias novas refatorações, como o Extract Module/Superclass, Introduce Variable/Constant/Field, Inline Variable e Pull Up/Push Down Members. Essas refatorações são necessárias o bastante para se manter um código-fonte de projeto bem organizado quando alterações se aplicam a todo o projeto. E os conhecidos Rename e Extract Method agora estão mais eficientes, mais fáceis de se usar e trabalhar com projetos Rails.

Um recurso interessante e importante é a integração com TeamCity, o nosso servidor de integração contínua. Eugene explica sobre o uso de um servidor de IC no processo de trabalho de um desenvolvedor:

Com o TeamCity Rake Runner pode se definir a integração contínua dos seus projectos de Ruby / Rails e executar os testes de projeto em um ambiente dedicado. Com o plugin do TeamCity instalado, RubyMine permite executar builds diretamente no servidor a partir da IDE, revisar os resultados e as estatísticas da build, e executar commits pré-testados. Além disso, você pode abrir código-fonte no RubyMine direito da interface web do TeamCity, enquanto navega pelos resultados de testes ou pela histórico do VCS.

Sobre os temas que os desenvolvedores podem solicitar futuramente:

Já temos um longo plano para as futuras versões do RubyMine e logo após a liberação da versão 2.0 estaremos alinhando as datas e a divisão nas diferentes versões. Algumas coisas que aparecerão em breve estão integrados ao console SQL, suporte à implantação e suporte ainda melhor para o desenvolvimento Rails, incluindo suporte para o Rails 3.0. Nós adicionaremos a integração com ferramentas de issues, inclusive JetBrains YouTrack, e, claro, trabalharemos na melhoria da qualidade das integrações existentes. Tentamos estar na vanguarda e acertamos nossos planos de acordo com as tendências e necessidades dos usuários, então se você quiser que algo seja feito — avise-nos!

A lista completa dos novos recursos do RubyMine e uma cópia gratuita de 30 dias de avaliação podem ser encontrados no site da JetBrains. RubyMine 2.0 é uma atualização gratuita para quem possui RubyMine 1.x e roda em Windows, Mac OS X e Linux e está disponível hoje.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT