Construir Aplicativos Perl com o Eclipse

Usar o EPIC para Construir, Editar e Desenvolver

O projeto EPIC permite que os desenvolvedores construam, editem e desenvolvam aplicativos baseados em Perl usando o Eclipse IDE. Neste tutorial, apresentamos uma visão rápida do plug-in do EPIC, como ele pode ser usado para desenvolver aplicativos Perl e como ele pode ser integrado em processos de desenvolvimento existentes.

Martin Brown, Professional writer, 自由职业者

>Martin Brown é um escritor profissional há mais de oito anos. Ele é autor de muitos livros e artigos em uma série de tópicos. Seu conhecimento abrange inúmeras linguagens e plataformas de desenvolvimento -- Perl, Python, Java, JavaScript, Basic, Pascal, Modula-2, C, C++, Rebol, Gawk, Shellscript, Windows, Solaris, Linux, BeOS, Mac OS/X e muito mais -- além de programação da Web, gerenciamento e integração de sistemas. Martin é um contribuidor regular da ServerWatch.com, LinuxToday.com e IBM developerWorks, e um blogueiro regular na Computerworld, The Apple Blog e outros sites, sendo também um Subject Matter Expert (SME) para a Microsoft.



17/Jan/2006

Antes de Começar

Para muitos programadores Perl, o ambiente de desenvolvimento típico provavelmente é um editor, como Emacs, juntamente com um ambiente de linha de comando. O problema é que você tende a passar a maior parte do seu dia alternando entre o Emacs e a linha de comando, e isso fica pior se você estiver trabalhando com desenvolvimento da Web, pois precisa alternar entre o Emacs, sua linha de comando e seu navegador da Web, conforme escreve, executa e verifica informações nos logs. Surpreendentemente, existem alguns IDEs que realmente capturaram a imaginação do programador Perl com o passar dos anos, motivo pelo qual o EPIC e o Eclipse preenchem essa lacuna.

O EPIC é um conjunto completo de plug-ins que suporta uma nova "natureza" no Eclipse. O plug-in EPIC incorpora extensões ao editor para que ele interprete a estrutura e o layout do Perl. O plug-in também inclui visualizações e interfaces adicionais em seu código, e as informações relacionadas permitem visualizar documentação, executar seus aplicativos Perl e depurá-los.

Sobre Este Tutorial

Este tutorial irá apresentar uma visão geral rápida das noções básicas do plug-in EPIC antes de prosseguir para um exame do sistema EPIC usando um exemplo do mundo real, desenvolvendo totalmente um pequeno módulo e script no Eclipse que suportem a análise de RSS. Você usará isso como uma oportunidade para examinar outras áreas, tais como, a integração com o Perldoc, desdobramento e refatoração de código -- tudo isso pode aprimorar a execução do processo de desenvolvimento do aplicativo. Após a conclusão, você terá um bom entendimento de como o plug-in EPIC pode ser usado para desenvolver seus aplicativos Perl no Eclipse.

Pré-requisitos

Você vai precisar das seguintes ferramentas antes de fazer um bom uso do EPIC:


Por que Usar um IDE?

Esta seção examinará as razões para o uso de um Integrated Development Environment (IDE) em vez de métodos mais tradicionais.

Tarefas Durante o Desenvolvimento

Antes de examinar as razões para o uso de um IDE em vez de métodos mais tradicionais, é válido considerar todas as tarefas que você planeja executar durante o desenvolvimento com uma linguagem de script. Existem diferenças na linguagem compilada típica. Geralmente, não é necessário compilar a origem no aplicativo final, mas algumas das tarefas permanecem constantes:

  • Escrever o Código -- Inclui a obtenção do formato correto para que ele seja legível.
  • Verificar a validade -- Embora você não irá compilar o código, ainda há uma estrutura formal, e ainda é possível introduzir erros e problemas no código que podem ser identificados executando algumas verificações simples no código.
  • Acessar a documentação -- Não importa se você é um bom programador, é quase inevitável que precisará consultar algum aspecto da documentação.
  • Gravar comentários/documentação -- A inclusão de comentário em seu código torna-o legível, e a inclusão da documentação conforme você prossegue ajuda a torná-lo mais móvel.
  • Executar o código -- Geralmente, talvez com mais frequência em linguagens de script, você tende a tentar usar o código que está sendo gravado.
  • Depuração -- Normalmente, os problemas ocorridos durante a execução precisarão ser investigados por meio de um determinado período de depuração.

Como cada uma destas tarefas será executada dependerá do ambiente usado. Vamos examinar primeiro o ambiente típico não baseado em IDE.

Ambientes Existentes

Pergunte a um programador típico de Perl o que ele usa para editar e trabalhar com scripts Perl, e é provável que ele responda simplesmente o nome de seu editor favorito -- talvez vi, pode ser até o Bloco de Notas. Em uma situação difícil, ele poderá usar um editor mais extensivo e inteligente, como o Emacs ou oXygen, que oferece marcação integrada, realce e formatação inteligente.

A capacidade de usar um editor padrão e executar o programa diretamente através da linha de comando é um dos principais benefícios e vantagens de linguagens de script, como Perl e outras linguagens de script, como Python, PHP e Ruby.

Existem alguns benefícios óbvios na abordagem do editor. Por exemplo, é possível editar e criar muito facilmente os scripts em qualquer lugar, com ou sem um editor específico, portanto, não há limites em quando ou onde você pode programar.

No entanto, alguns aspectos não são tão perfeitos. Por exemplo, o exame da documentação geralmente precisa ser feito em outro aplicativo ou janela do terminal. A execução do aplicativo também requer o deslocamento para um shell ou terminal para execução. Também não existe nenhum gerenciamento do projeto como um todo. Um projeto Perl típico consistirá em scripts, módulos do Perl e, provavelmente, outros dados, além de arquivos XML ou outras origens de dados. Todos eles podem existir na mesma pasta, mas seu relacionamento uns com os outros e sua importância podem ser menos claros.

Benefícios do IDE

O principal elemento para qualquer IDE está diretamente relacionado a essa primeira palavra: integrado. Todas as etapas descritas em Tarefas geralmente podem ser executadas em um IDE sem mesmo precisar sair ou alternar do aplicativo.

Por exemplo, o código pode ser gravado e formatado automaticamente. Os erros e erros de digitação em seu código podem ser realçados conforme você digita, e é possível usar os hot links para a documentação para verificar as funções ou módulos que precisam ser usados, sem consultar essas informações separadamente.

Geralmente, também é possível executar -- e monitorar a execução -- de seu aplicativo, portanto, você determina se ele está funcionando corretamente e pode depurar sua operação no processo.

É possível usar as informações geradas e a saída durante os processos de execução e depuração em seu aplicativo diretamente. Por exemplo, os erros e avisos gerados fornecerão um link que o retornará diretamente à linha apropriada de seu código de origem.

Em geral, o principal benefício do sistema integrado é economizar seu tempo. Não é mais necessário gastar tempo alternando entre aplicativos ou encontrando e localizando o código que gerou os problemas. Todas as informações não são apenas realçadas, mas vinculadas e acessíveis, facilitando ainda mais o trabalho com ele na estrutura de código.

Muitas destas capacidades não são familiares ao programador de script típico que é usado na abordagem do editor simples. Mas é hora de seguir para um ambiente mais coerente.


Instalação e Configuração

Vamos ver como instalar o plug-in EPIC para que seja possível usar os recursos do IDE para gravar aplicativos Perl.

Instalando o Plug-in EPIC

Antes de examinar o EPIC, é necessário instalar o plug-in. Antes disso, obviamente você precisará de um interpretador Perl. Estou usando o Mac OS X, que, sendo baseado no BSD, é fornecido com o interpretador Perl baseado em UNIX, ao qual você pode, de outra maneira, ter acesso em qualquer outro host do UNIX/Linux. No Windows, é possível usar o interpretador ActivePerl (da ActiveState) ou o interpretador Perl fornecido como parte do sistema Cygwin. Eu prefiro o ActivePerl, mas a escolha é sua.

Quando o interpretador Perl estiver acessível, use o componente Software Update do Eclipse para instalá-lo:

  1. Escolha Help > Software Update > Find and Install, e será exibida uma janela para a configuração de downloads, conforme mostrado na Figura 1.
    Figura 1. A janela Software Update
    A janela Software Update
  2. Clique em Next.
  3. Clique em New Remote Site. Dê ao novo site um nome e insira a URL de origem (http://e-p-I-c.sf.net/updates"), conforme mostrado na Figura 2.
    Figura 2. Criando um novo site
    Criando um novo site
  4. Depois, siga o processo na tela para localizar, selecionar e instalar o plug-in.

Configuração Rápida

Você terá uma visão mais detalhada das preferências e de seu efeito em como você usará e trabalhará com o plug-in EPIC posteriormente, mas é possível beneficiar-se de uma visão geral rápida no painel de preferências para se ter uma ideia dos tipos de recursos que estão disponíveis durante o uso do plug-in.

Para acessar as preferências para o EPIC, abra a Janela Preferences padrão do Eclipse e escolha a pasta Perl EPIC no painel de navegação à esquerda, conforme mostrado aqui na Figura 3.

Figura 3. Preferências do EPIC
Preferências do EPIC

As preferências estão divididas em seções, começando com as preferências gerais para o plug-in:

  • General Preferences -- Configura o local do executável, interpretador, modelo de execução do Perl e o período a aguardar antes do registro de entrada do código no segundo plano.
  • Code Assist -- Configura os caracteres que acionam a configuração automática.
  • Editor -- Configura as preferências do editor, incluindo as cores usadas para realçar diferentes componentes, formatos de anotação e outros.
  • Source Formatter -- Configura as preferências de formatação.
  • Task Tags -- Configura tags de tarefa, que são notas rápidas que o retornam a um local específico.
  • Templates -- Configura modelos de código que podem ser inseridos diretamente em seu código para acelerar o tempo de desenvolvimento.

Quando estas opções afetarem a maneira que você trabalha, irei mencionar como ajustar a ação neste tutorial. Também examinaremos alguns elementos específicos, como tags de tarefa e modelos, em suas próprias seções posteriormente.

Notas do Windows

Ao usar o plug-in EPIC no Eclipse sob o Windows, existem alguns truques que irão melhorar sua interação entre componentes.

Se estiver usando a distribuição ActivePerl da ActiveState, altere o executável do Perl (conforme configurado no painel Preferência Geral) para o executável wperl.exe. Isto evitará que uma janela do prompt de comandos seja exibida sempre que o código estiver sendo verificado. Também é recomendável (mas não essencial) incluir o diretório binário do Perl em seu caminho. Ele deve ter sido incluído automaticamente quando o ActivePerl foi instalado.

Se estiver usando a versão Cygwin do Perl, certifique-se de que o comando mount, parte da instalação padrão do Cygwin, esteja disponível no caminho do sistema. Isto pode ser verificado examinando os valores de variáveis de ambiente. Para isso:

  1. Abra o Painel de Controle do Sistema (geralmente em Iniciar > Painéis de Controle > Sistema , ou clique com o botão direito do mouse em Meu Computador e selecione Propriedades).
  2. Alterne para o painel Avançado.
  3. Clique em Variáveis de Ambiente. Deve ser exibida uma janela semelhante à mostrada na Figura 4.
Figura 4. Variáveis de ambiente do sistema e do usuário no Windows
Variáveis de ambiente do sistema e do usuário no Windows

Verifique o valor da variável PATH. Se os diretórios de binários do Perl ou do Cygwin não estiverem listados, inclua-os no valor do caminho. Os diretórios individuais são separados por um ponto-e-vírgula.


Criando Projetos e Arquivos

Para gravar aplicativos Perl no Eclipse usando o plug-in EPIC, é preciso entender as funções do projeto do Perl e do arquivo do Perl.

Criando um Novo Projeto

Vamos criar um novo projeto do Perl. Como EPIC fornece uma nova natureza, é possível criar um novo projeto para construir seu aplicativo Perl. Para esta demonstração, você irá construir um aplicativo Really Simple Syndication (RSS) que fará download de um arquivo RSS da Internet, o analisará e fará dump de um resumo das informações. Depois, você estenderá esta funcionalidade básica.

Isto tudo pode ser feito criando um novo projeto para conter seus arquivos do projeto RSS. Crie um novo projeto selecionando-o da lista de tipos de projetos disponíveis. Escolha New > Perl Projectou New > Other e selecione Perl Project da lista. A janela resultante pode ser vista na Figura 5.

Figura 5. Criando um novo projeto do Perl
Criando um novo projeto do Perl

Nomeie o projeto (RSS Feeder) e especifique a área de trabalho para o projeto, ou apenas use a área de trabalho padrão.

O Eclipse deve alterar para a perspectiva do Perl automaticamente quando você criar um novo projeto do Perl. A perspectiva do Perl inclui vários painéis específicos que o ajudarão à medida que você começa a gravar o script Perl.

A Perspectiva do Perl

Se o Eclipse não alternar automaticamente para a perspectiva do Perl, será possível alternar para ele usando Window > Open Perspective e selecionando Perl da lista de perspectivas. É possível ver um exemplo desta perspectiva na Figura 6, aqui com alguns arquivos e visualizações abertos e ativos.

Figura 6. A perspectiva do Perl
A perspectiva do Perl

É possível ver na Figura 6 que a perspectiva inclui muitos painéis diferentes (chamados Visualizações no Eclipse), incluindo:

  • Visualização Package explorer -- Mostra o layout de seu projeto (arquivos, módulos e scripts).
  • Visualização Outline para o arquivo atual -- Mostra a lista de módulos importados e a lista de funções definidas no arquivo atual.
  • Interface do editor/arquivo padrão -- Mostrará os arquivos individuais de origem no projeto.
  • Visualização Tasks -- Mostra uma lista de tarefas registradas.
  • Visualização Console -- Esta é a saída padrão de seu aplicativo.
  • Problems -- Esta visualização realça e fornece links para erros em seu código no projeto atual.

Você irá usar as informações contidas na maioria destas visualizações neste tutorial. Lembre-se de que é possível incluir e remover visualizações a qualquer momento, selecionando Show View no menu Window, e selecionando uma visualização diretamente ou escolhendo o item de menu Other e escolhendo de uma lista mais extensa.

Criando um Novo Arquivo

Depois de criar um novo projeto, a primeira tarefa será criar um novo arquivo. Os arquivos no EPIC podem ser scripts ou módulos do Perl. Contanto que o EPIC esteja envolvido, não existe diferença entre os dois, embora o Perl trate-os de forma diferente. Como o EPIC não faça uma diferenciação específica entre os dois, é necessário verificar a extensão do arquivo para diferenciar entre os dois arquivos em um determinado projeto.

Isto tudo pode ser feito criando um novo projeto para conter seus arquivos do projeto RSS. Crie um novo projeto selecionando-o da lista de tipos de projetos disponíveis. Escolha New > File > Other e selecione Perl File da lista, mostrado na Figura 7.

Figura 7. Selecionando um arquivo do Perl
Selecionando um arquivo do Perl

A janela resultante de propriedades do arquivo do Perl pode ser vista na Figura 8.

Figura 8. Configurando propriedades do arquivo do Perl
Configurando propriedades do arquivo do Perl

Será necessário especificar a pasta (ou projeto) na qual o arquivo deve ser criado e o nome do arquivo. Opcionalmente, você pode associar o arquivo a um arquivo existente no sistema de arquivos, clicando no botão Advanced e configurando as preferências.

Clique em Finish para criar o novo arquivo. Será exibida uma janela do editor para o arquivo.


Recursos do Editor e Integração de Perldoc

A parte principal de qualquer esforço de programação é, de fato, gravar o código, portanto, não é de surpreender que a parte principal da funcionalidade do EPIC esteja relacionada à melhoria do ambiente do editor.

O Editor do Perl

De fato, gerar código é basicamente um caso de digitar o código que deseja gravar no editor. Aqui, há uma diferença muito pequena de qualquer outro editor. A principal diferença está na funcionalidade adicional que você obtém ao usá-lo.

O primeiro recurso que será examinado é a coloração de sintaxe. Basicamente, isto colore diferentes elementos do código de origem (de acordo com as configurações) para facilitar a identificação de componentes no código.

Por exemplo, se você digitar o seguinte:

use strict;
use warnings;

A palavra-chave use será realçada em uma cor diferente para os nomes dos módulos que estão sendo carregados. O realce da sintaxe se aplica a uma grande faixa de elementos, e cada um tem sua própria cor. É possível alterá-las modificando as preferências. Os elementos de amostra incluem funções, argumentos, cadeias e variáveis estáticas, e os termos principais como os vistos aqui.

O segundo recurso que é diretamente óbvio durante a edição é o realce de erros em seu código, que podem ser identificados durante as verificações padrão efetuadas antes da execução. Por exemplo, digite o seguinte, exatamente como está aqui:

use XML:RSS;

Ao pausar (o período de tempo da pausa é configurável), o plug-in EPIC verifica o formato e sintaxe de seu código e relata os erros localizados. As linhas de erro inválidas são realçadas e, se você alternar para a visualização Problems, poderá ver uma descrição do erro, e o arquivo e linha nos quais ocorreu o erro. Um exemplo disto pode ser visto na Figura 9.

Figura 9. Erros realçados no código
Erros realçados no código

Neste exemplo, o código é realçado automaticamente porque esse código está incorreto. Ele precisa de dois pontos duplos para o Perl identificar o módulo. Para obter ajuda mais detalhada, clique com o botão direito do mouse na linha de erro e escolha Explain Errors/Warnings para obter uma descrição mais completa do problema e uma possível resolução.

Observe que o EPIC não está verificando a validade do código. Ele verifica o código através do Perl, em seguida, analisa a saída. Isto assegura que o código seja válido para Perl e também significa que pragmas no código (como os avisos e pragmas estritos definidos anteriormente) também serão aplicados.

Conclusão de Código Simples

Embora seja útil, o realce de sintaxe e de erro não acelera a taxa de criação do código, embora ajude a reduzir a quantidade de erros e erros de digitação introduzidos.

Para melhorar a velocidade de geração do código e sua qualidade, o EPIC concluirá elementos comuns automaticamente. Por exemplo, se for digitado:

my $feeds = {"
O que você obterá de fato é:
my $feeds = {""}

O EPIC concluiu automaticamente a chave e a aspa de fechamento.

Inclua um ponto-e-vírgula na linha anterior e digite: $ em uma nova linha.

Após uma breve pausa, o EPIC exibirá uma lista de possíveis variáveis. Você definiu apenas uma, mas o sistema pode sugerir automaticamente possíveis conclusões de variáveis com qualquer um dos tipos de variáveis, escalar ($), array (@) ou hash (%).

Para continuar a construção de seu analisador RSS, vamos preencher o hash com algumas informações sobre alguns feeds. Para fins de demonstração, você definirá apenas um:

my $feeds = {"MCslp" => "http://mcslp.com/?feed=rss2"};

Para fazer download de um feed RSS, é necessário usar a biblioteca Lib WWW Perl (LWP) que manipula todo o download, independentemente do método especificado na URL. É necessário criar um novo objeto UserAgent. Inclua o módulo LWP::UserAgent no início do script. Em seguida, digite:

$ua = LWP::UserAgent->

Como pode ser visto na Figura 10, o EPIC fornecerá uma lista de possíveis funções que podem ser usadas para concluir a linha. Esta conclusão interativa funciona como um tipo de combinação de consulta de documentação e de conclusão de código, lembrando-o das funções ou métodos aplicáveis a um objeto ou classe e permitindo selecioná-la.

Figura 10. Conclusão de método interativa
Conclusão de método interativa

Observe que, para este sistema funcionar corretamente em objetos, é necessário criar o objeto usando $ua = LWP::UserAgent->new();, em vez de $ua = new LWP::UserAgent;. Isto ocorre devido à maneira que o EPIC determina estas informações.

Integração Básica do Perldoc

Vamos retornar ao exemplo do feeder RSS. Ao analisar um feed, você deseja anotar a data e hora de processamento do feed. As funções localtime() integradas do Perl retornam uma lista de variáveis contendo as informações sobre hora. No entanto, apesar da experiência de 10 anos de programação em Perl, eu nunca lembro a ordem das informações.

O que eu posso fazer com o Eclipse e o EPIC é digitar o nome da função, clicar duas vezes para selecioná-la e, em seguida, passar o mouse sobre ela para obter uma visualização rápida do conteúdo. Mais uma vez, estas informações são extraídas do Perldoc. Agora posso ver quais são os valores de retorno. Um exemplo disto pode ser visto na Figura 11.

Figura 11. Obtendo ajuda da documentação sequencial
Obtendo ajuda da documentação sequencial

Vamos tentar digitando localtime. Agora realce a palavra e passe o mouse sobre ela.

As informações são extraídas diretamente da documentação do Perl (Perldoc). Para quem não sabe, Perldoc é uma interface da linha de comandos que extrai a documentação embarcada em scripts e módulos do Perl.

Consultando Definições Completas no Perldoc

Também é possível usar, navegar e procurar informações na biblioteca de Perldoc. Se você pressionar Control-Shift-H ou clicar com o botão direito do mouse dentro de seu editor, será solicitado um fragmento do Perldoc para procura (procura de módulo, de função integrada ou de Perguntas mais Frequentes). Também é possível realçar um item e clicar com o botão direito do mouse ou usar o atalho de teclado. Em ambos os casos, as informações são exibidas em uma visualização especial do Perldoc. A visualização do Perldoc pode ser vista aqui, mostrando o módulo LWP::UserAgent , na Figura 12.

Figura 12. Integração total do Perldoc
Integração total do Perldoc

Novamente, assim como a verificação de sintaxe, as informações estão sendo acessadas através de ferramentas padrão do Perl. Em vez de o EPIC substituir sua funcionalidade, ele está usando-a como uma forma de obter as informações necessárias e mais úteis para você. Isto significa que as mesmas informações (e formatação) que estão disponíveis por meio do Emacs ou da linha de comando também estão disponíveis por meio do EPIC e do Eclipse.

Em termos de Perldoc, isso significa que você tem acesso à faixa inteira de páginas padrão do Perl (como perlre ou perlfunc), acesso individual a áreas específicas (por exemplo, você pode obter a definição de uma única função, conforme demonstrado com localtime), e pode obter informações sobre todos os módulos instalados em uma determinada instalação do Perl.


Funcionalidade de Usuários Avançados

Existem algumas áreas adicionais de funcionalidade úteis para pessoas que trabalham em grandes projetos ou que gastam um período de tempo frequente no Eclipse desenvolvendo aplicativos Perl.

Tags de tarefa

Digamos que você precise analisar o RSS recém-transferido por download, mas deseja gravar uma função separada para ele. Você ainda não deseja se preocupar com gravar realmente essa parte de código específica. Em um editor e ambiente padrão, isso pode ser feito de várias formas -- usando um comentário especial no código de origem que pode ser procurado e localizado durante uma sessão mais recente, por exemplo.

O EPIC (e, de fato, o Eclipse) suporta isso. Um item ou parte individual de código pode ser procurada como qualquer outra. No entanto, o EPIC e o Eclipse estendem esta funcionalidade suportando tags de tarefa específicas. Estes são comentários com um formato específico. Por exemplo, digite o seguinte em seu código fonte:

#TODO Write the function to parse the RSS raw code

Se, em seguida, você abrir a visualização Tasks (selecione ou inclua-a por meio do item de menu Janela > Mostrar Visualização ), poderá ver que acabou de inclui uma tarefa, com uma descrição, em uma lista de tarefas a fazer. A origem e a visualização resultante podem ser vistas na Figura 13.

Figura 13. Tags de tarefa em ação
Tags de tarefa em ação

A visualização Tasks é específica do projeto, o que significa que serão exibidas essas tags e suas descrições em todos os arquivos em seu projeto, não apenas no arquivo atual. Isto se torna uma excelente forma de realçar tarefas e tarefas a fazer em seu código diretamente em seu projeto.

A instalação padrão é fornecida com duas tags reconhecidas: TODO e TASK. É possível configurar tags de tarefa adicionais usando as preferências de Task Tags para EPIC. A janela de preferências pode ser vista na Figura 14.

Figura 14. Configurando preferências de tags de tarefa
Configurando preferências de tags de tarefa

Para criar uma nova tag de tarefa: Clique em New e especifique o texto a ser identificado como a tag. Incidentalmente, como as tags funcionam por meio de comentários, você deve saber que Control-/ (Control barra ) comenta a linha atual e Control-\ remove o comentário de uma linha específica. Se várias linhas tiverem sido selecionadas, a operação comentará ou removerá o comentário de cada linha individual.

Formatação de Código

Existem muitas maneiras nas quais é possível formatar o código Perl e obter o formato correto faz uma grande diferença na capacidade de leitura do código com o qual você está trabalhando. O EPIC irá formatar automaticamente alguns elementos de seu código. Já foi vista alguma evidência disto com a maneira na qual o EPIC organiza automaticamente diferentes componentes durante a conclusão automática usando parênteses e aspas. Também é possível forçar o EPIC a reformatar o código em um formato legível, pressionando Control-Shift-F ou escolhendo Format no menu Source.

O formato exato dependerá de suas preferências, configuradas por meio da área de janela Source Formatting nas preferências do Eclipse (consulte a Figura 15). A formatação é executada por Perltidy, que lê e reformata o código, de acordo com alguns padrões acordados (a maioria deles detalhados em Programming Perl de O'Reilly).

Figura 15. Configurando preferências de formatação de origem
Configurando preferências de formatação de origem

As opções principais afetam a formatação da seguinte forma. Else com chaves altera o comportamento de uma instrução else , conforme mostrado na Listagem 1:

Listagem 1. Instrução else
}
else {
to
} else {

A chave de abertura na nova linha força Perltidy a colocar a chave de abertura em um bloco em uma nova linha. Consulte a Listagem 2 para obter um exemplo.

Listagem 2. Forçando o Perltidy a colocar uma chave em um bloco em uma nova linha
if ($a == 1) {
becomes
if ($a == 1)
{

Alinhar os parênteses assegura que eles fiquem alinhados durante a divisão nas linhas. Por último, omitir linhas em branco opcionais exclui todas as linhas em branco que não têm nenhuma utilidade. Por exemplo, as linhas em branco antes dos comentários são mantidas, mas as linhas em branco após eles não são. As linhas em branco são retidas entre blocos principais (por exemplo, funções, loops e testes).

As opções adicionais podem ser configuradas, incluindo argumentos na linha de comando chamada durante a execução do Perltidy. Consulte Recursos para obter informações adicionais sobre o Perltidy.

Refatoração

O código de refatoração adapta o código de origem sem alterar seu comportamento. No caso do EPIC, a refatoração pode converter um bloco de código em uma função, tornando a funcionalidade acessível a qualquer parte do código. O EPIC extrairá as variáveis necessárias para entrada no bloco de código, determinará as saídas e as converterá em argumentos e valores de retorno, respectivamente. Para usar a refatoração, vamos considerar o fragmento de código usado para fazer download e analisar uma URL de feed RSS em um objeto RSS (consulte a Listagem 3).

Listagem 3. Fragmento de código usado para fazer download e analisar uma URL de feed RSS em um objeto RSS
foreach my $feed ( sort keys %{$feeds} )
{
    my $response = $ua->get( $feeds->{$feed} );
    if ( $response->is_success )
    {
        my $rss = XML::RSS->new();
        $rss->parse( $response->{_content} );
    }
}

Se você selecionar o conteúdo deste loop foreach (o conteúdo do bloco inteiro, não incluindo a instrução foreach e os parênteses), clicar com o botão direito do mouse e escolher a sub-rotina Refactor > Extract , o EPIC converterá então o código no seguinte fragmento (consulte a Listagem 4):

Listagem 4. Sub-rotina Extract
foreach my $feed ( sort keys %{$feeds} )
{
    my ($response, $rss) = parse_rss_fromurl ($feeds, $ua, $feed);
}

sub parse_rss_fromurl
{
    my $feeds    = shift;
    my $ua       = shift;
    my $feed     = shift;
    my $response = $ua->get( $feeds->{$feed} );
    if ( $response->is_success )
    {
        my $rss = XML::RSS->new();
        $rss->parse( $response->{_content} );
    }
    return ( $response, $rss );
}

Você pode ver que o EPIC determinou as variáveis de que ele precisa na nova sub-rotina e nos valores de resposta. O código real permanece igual, mas o bloco inteiro foi reconstruído para uma nova sub-rotina. Observe também que o loop foreach agora contém a chamada de sub-rotina e os argumentos necessários.


Modelos e Módulos

Muitos códigos de origem são baseados em elementos semelhantes. Por exemplo, embora as sub-rotinas possam ser diferentes, o mesmo conteúdo básico permanece o mesmo: São necessárias as mesmas palavras-chave, parênteses e a mesma estrutura para extrair argumentos de sub-rotina. Os modelos permitem inserir isto rapidamente em seu código.

Criando Modelos

Os modelos são definidos por meio da área de janela Templates nas Preferências do Eclipse. No valor de face, um modelo é exatamente isso: um fragmento de código que pode ser inserido rápida e facilmente em seu código de origem.

Para criar um novo modelo:

  1. Abra a janela Preferences e escolha Templates na seção Perl EPIC. Deve aparecer um painel de preferência semelhante ao mostrado aqui na Figura 16.
    Figura 16. Preferências de modelo
    Preferências de modelo
  2. Clique no botão New e será exibida a janela na Figura 17.
    Figura 17. Criando um novo modelo
    Criando um novo modelo
  3. Insira um novo nome para o modelo. Tente mantê-lo como uma única palavra, pois ele será usado quando você desejar inserir o código.
  4. Insira uma descrição para o código.
  5. Insira o código para o modelo. O código inserido aqui será inserido exatamente conforme você o inserir, como se o conteúdo tivesse sido recortado e colado.
  6. Clique em OK para fechar a definição de modelo.
  7. Clique em OK para fechar a janela Preferences.

Para usar de fato o modelo, digite o nome dele em seu código e pressione Control-Espaço. O código inserido para seu modelo será inserido no local atual, substituindo o nome do modelo especificado.

Embora modelos como este sejam úteis, é necessário voltar e configurar alguns elementos. Por exemplo, em um loop for loop, ainda é necessário editar e inserir o nome da variável loop, o valor de teste e o incremento. Este processo pode ser ainda mais simplificado usando modelos dinâmicos.

Criando Modelos Dinâmicos

Os modelos dinâmicos são criados da mesma forma que modelos padrão. A diferença é o código inserido na definição. O EPIC suporta a noção de variáveis em um modelo. Elas não têm nada a ver com variáveis em seu código. Em vez disso, elas oferecem uma forma fácil de customizar o código inserido com elementos simples.

Por exemplo, no exemplo de loop for recém-especificado, é possível inserir código como este no modelo:

for($i;$i<10;$i++)
{
}

Mesmo que $i possa não ser a variável que você deseja usar, ou 10 o valor com o qual você deseja comparar. Usando um modelo dinâmico, defina um elemento variável que possa ser facilmente substituído quando o modelo for inserido. Para isso, especifique o nome de uma variável de modelo usando o formato ${varname}. Se o mesmo nome for usado várias vezes, será necessário digitar a variável apenas uma vez, e diversas variáveis de modelo poderão ser criadas em um único modelo. Use um dois cifrões ($$) para inserir o símbolo de cifrão em seu modelo.

Por exemplo, a definição de loop for pode ser alterada para:

for($$${var};$$${var}<=${maxvalue};$$${var}++)
{
}

Agora, ao inserir o modelo, o cursor será realçado automaticamente na primeira instância de ${var}. Digite o nome da variável e cada instância de ${var} será substituída pelo nome da variável. Pressione Tab e o realce se moverá para ${maxvalue}.

Esta é uma parte da funcionalidade que, provavelmente, faz mais sentido fisicamente, portanto, tente o exemplo acima para ter uma ideia do grau de flexibilidade do sistema do modelo com a substituição de variável.


Resumo

Aqui está. O plug-in EPIC oferece um ambiente completo para a gravação e desenvolvimento do código Perl. O EPIC faz isto de diversas maneiras, na maioria das vezes em relação a como você edita, cria e formata o código para ele para ser usado em seus aplicativos. Embora o EPIC não ajude de fato a gerar o código (já que os modelos quase fornecem essa funcionalidade), ele facilita a navegação pelo código de origem, e é possível formatar e concluir automaticamente elementos para reduzir a quantidade de digitação a ser efetuada.

Recursos

Aprender

  • Perl.com fornece informações e tutoriais sobre como usar a linguagem Perl.
  • Para obter ajuda sobre as noções básicas para usar o Eclipse, leia Comece a usar o Eclipse agora.
  • Para obter detalhes adicionais sobre o Eclipse, não se esqueça de visitar Eclipse.org.
  • Existem alguns artigos técnicos interessantes no Eclipse Corner.
  • Para obter informações adicionais sobre eventos, recursos e projetos que estão acontecendo na comunidade do Eclipse, confira o Eclipse Corner Developer Community Resources.
  • Para obter um insight no mundo de hackers do Eclipse, confira Planet Eclipse.
  • Visite Zona de Software Livre do developerWorks para obter informações extensivas sobre como fazer as coisas, ferramentas e atualizações de projetos para ajudá-lo a desenvolver tecnologias de software livre e usá-las com produtos IBM.

Obter produtos e tecnologias

  • O plug-in do EPIC é hospedado no Sourceforge. É possível localizar downloads para o sistema EPIC, extensões de suporte e software, tutoriais, documentação e as Perguntas mais Frequentes para o sistema.
  • Perltidy é usado pelo EPIC para formatar o código para torná-lo mais legível.
  • O Eclipse pode ser obtido em Eclipse.org.
  • Obtenha ActivePerl, um interpretador para Windows (e agora também para Linux e Mac OS X).
  • Obtenha PyDev, um plug-in para desenvolver aplicativos Python no Eclipse, que fornece funcionalidade semelhante para o EPIC.
  • Inove seu próximo projeto de desenvolvimento de software livre com o software de avaliação da IBM, disponível para download ou em DVD.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=394799
ArticleTitle=Construir Aplicativos Perl com o Eclipse
publish-date=01172006