File Coverage

blib/lib/Tutorial/Perl/Como/Criar/Utilizar/Instalar/Publicar/Modulos/do/CPAN/PT/BR.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1             package Tutorial::Perl::Como::Criar::Utilizar::Instalar::Publicar::Modulos::do::CPAN::PT::BR;
2 1     1   26337 use strict;
  1         2  
  1         38  
3 1     1   6 use warnings;
  1         3  
  1         109  
4              
5             our $VERSION = '0.01';
6              
7             =pod
8              
9             =encoding utf8
10              
11             =head1 Tutorial perl - Como criar, utilizar, instalar e publicar módulos no cpan
12              
13             Obs o cpan é o repositório de módulos perl. é fantastico pois tem tudo ou muito do que você procura/vai precisar para construir seus sitema dos sonhos. Tudo é aberto, então você pode ver os códigos fontes de outros autores e aprender mais técnicas de como programar melhor e melhor!
14              
15             Divirta-se com o CPAN e compartilhe seus códigos.. outras pessoas podem estar precisando do mesmo que você já desenvolveu.
16              
17             =head2 RESUMO
18              
19             Neste artigo você vai aprender:
20              
21             - O que é o CPAN e PAUSE e suas vantagens e como ele funciona.
22              
23             - Como se cadastrar no CPAN.
24              
25             - Como criar um módulo perl.
26              
27             - Como publicar seu módulo no CPAN.
28              
29             =head2 O QUE É O CPAN
30              
31             CPAN: 'Comprehensive Perl Archive Network', ou 'Rede de arquivos compreensíveis perl'. Tambem conhecido como repositório de módulos perl.
32              
33             Neste momento o cpan possúi 98,463 módulos perl em 23,242 distribuições, escritos por 9,170 autores e espelhado em 259 servidores.
34              
35             No cpan você encontra todo tipo de módulos perl... desde aplicações do google, do twitter, do facebook, etc, implementações de algoritmos de fórmulas bancárias, diversos frameworks, middlewares, bots, ide, servidor web, proxy, o que você imaginar alguem já deve ter implementado e adicionado ao cpan.
36              
37             Para fazer uma busca no cpan é muito simples, você acessa: http://search.cpan.org e digita algo no campo de busca, ex: "google" para ver uma lista de módulos que implementam "google".
38              
39             Uma dica para escolher alguns bons módulos é seguir as recomendações do módulo Task::Kensho. o Task::Kensho tem como proposta apresentar os melhores módulos recomendados para tarefas específicas.
40              
41             =head2 VANTAGENS DO CPAN
42              
43             Todos os módulos enviados ao cpan passam por testes automatizados. Este procedimento chama-se 'smoke testing', que nada mais é que testes iniciais para assegurar que sua aplicação não irá falhar. O módulo responsável por automatizar estes testes é o Test::Smoke. E você tambem pode configurá-lo para executar em sua máquina. A vantagem disto, é que ao subir sua app no cpan, várias pessoas testarão seu código automaticamente.. e posteriormente você pode acessar o debug das informações em caso de falha. Sua app é testada automaticamente nos diversos sistemas operacionais e você pode ver a lista de testes... (ex. http://matrix.cpantesters.org/?dist=DBD-mysql+4.020 ). Isto ajuda muito para garantir que sua app executou conforme esperado nos diversos sistemas. Além disso, você ainda recebe um relatório por email com o status dos erros (caso existam).
44              
45             É importante mencionar a existência do email dos desenvolvedores no cpan. Cada pessoa cadastrada no cpan possúi um email. Através deste email é possível entrar em contato com o desenvolvedor de um módulo e contratá-lo para que este faça alguma melhoria que você precise... ou, para que você envie alguma alteração que você fez para melhorar o software.. ou ainda, enviar um patch que conserta um bug que você encontrou no módulo. Poder contactar o desenvolvedor diretamente é uma grande vantagem! Um outro meio bastante utilizado pelos desenvolvedores perl é atraves do IRC no servidor: irc.perl.org (baixe o mIRC, xchat ou irssi para conectar ao irc e falar com os desenvolvedores ).
46              
47             Outro ponto importante no cpan é a documentação dos módulos.. um bom módulo deve possuir uma boa documentação. E os desenvolvedores procuram manter o alto padrão de qualidade de documentação para seus módulos perl. Lembre-se que contribuições para melhoria são sempre bem vindas e bem aceitas... ou seja, se algum ponto de alguma documentação não ficou claro e você acha que poderia documentar melhor, entre em contato com o desenvolvedor e envie um patch para ele substituir e melhorar a documentação.
48              
49             Fora isto, você pode fazer o download de qualquer módulo perl e abrir o código fonte...
50              
51             =head2 COMO SE CADASTRAR NO CPAN ( registre-se no PAUSE )
52              
53             PAUSE significa "The [Perl programming] Authors Upload Server", ou "Servidor de upload dos autores perl".
54              
55             Para disponibilizar seu módulo no cpan, é necessário ter uma conta no PAUSE. Para tal, você precisa realizar seu cadastro no servidor PAUSE, através da url: http://pause.perl.org/pause/query?ACTION=request_id
56              
57             É no PAUSE que você vai subir seus módulos. Sempre que você subir um módulo, uma pré-verificação será executada para garantir que você enviou o formato correto (tar.gz) e com os arquivos necessários para instalação.
58              
59             Para gerar o arquivo de instalação do seu módulo, você pode fazer um 'make dist' (será exemplificado abaixo).
60              
61             =head2 PONTOS IMPORTANTES ANTES DE CRIAR UM MÓDULO
62              
63             Faça uma busca no cpan para ver se não existe um módulo que faz o que você preicsa.
64              
65             Verifique se o namespace do seu módulo já não é existente, isto é, verifique se já não existe um módulo com o mesmo nome que você tem em mente para o seu.
66              
67             Evite fazer módulos duplicados.. é muito mais produtivo ajudar a melhorar um módulo já existente.
68              
69             Mantenha a qualidade no código, veja outros códigos e aprenda a programar de maneira mais limpa.
70              
71             Documente bem o seu módulo, a documentação é levada em consideração para um bom entendimento de como funciona sua app.
72              
73             Crie vários testes para seu módulo e exemplifique a utilização da sua app nos testes. Isto vai garantir a qualidade e funcionalidade do mesmo. Veja: Test::Tutorial
74              
75             Evite criar um namespace raíz, ou seja, evite criar um módulo com nome de apenas uma palavra. ex. 'UmaPalavra' vs 'Uma::App::Interessante'
76              
77             É recomendável que sua app tenha um nome relacionado ao que ela faz, isto é, se você criou um editor de textos para console, dê um nome ex: Text::Editor::Console
78              
79             =head2 COMO CRIAR UM MÓDULO PERL
80              
81             Existe mais de uma maneira para criar módulos perl. Você pode usar o Dist::Zilla (o Russoz escreveu um bom artigo sobre), ou, você pode criar módulos com ExtUtils::ModuleMaker :
82              
83             Instale o ExtUtils::ModuleMaker:
84            
85             cpan ExtUtils::ModuleMaker
86              
87             agora digite:
88            
89             modulemaker
90              
91             e altere os dados de acordo com seu módulo.. você deve dar um nome ao seu módulo, uma descrição e informações sobre o autor... como nome e email. Feito isto você aperta G para gerar o módulo.
92              
93             N
94             Seu Nome
95             S
96             Descritivo do meu modulo.. faz istou ou aquilo
97             A
98             Hernan Lopes
99             hernanlopes@blablabla.com
100             G
101              
102             e o modulemaker irá criar o esqueleto do seu módulo para que você inicie o desenvolvimento.
103              
104             =head2 COMO GERAR UM MÓDULO PARA ENVIAR AO CPAN
105              
106             Para enviar seu módulo ao cpan, você deve gerar um arquivo tar.gz.
107              
108             A maneira mais fácil para gerar o arquivo.tar.gz para seu módulo é atraves de um 'make dist'.
109              
110             Então execute os passos a seguir para criar seu Modulo-0.01.tar.gz
111              
112             cd Seu-Modulo
113             perl Makefile.PL
114             make dist
115             ls
116              
117             Você deverá ver o arquivo ModuloXYZ-0.01.tar.gz gerado. Este é o arquivo que você vai enviar ao PAUSE para publicar seu módulo.
118              
119             =head2 ARQUIVO MANIFEST
120              
121             O arquivo MANIFEST deve conter uma lista de arquivos que serão incluídos automaticamente quando você executar um 'make dist'.
122              
123             Uma maneira simples de incluir os arquivos no MANIFEST é executar um
124              
125             make manifest
126              
127             =head2 COMO PUBLICAR SEU MÓDULO NO CPAN
128              
129             Agora que você gerou seu modulo-0.01.tar.gz , você já pode enviar o mesmo ao PAUSE. Consequentemente o PAUSE irá agendar a publicação de seu módulo no CPAN.
130              
131             *** Atenção, sempre utilize o número da versão atual de seu módulo no arquivo .tar.gz.
132              
133             ** O PAUSE não permite que você envie duas vezes um arquivo com o mesmo nome.
134              
135             =head2 COMO INSTALAR UM MÓDULO DO CPAN SEM ROOT
136              
137             Existem diversas maneiras para instalar módulos do cpan. Vou apresentar uma maneira para instalação de módulos sem root:
138              
139             1. Instale o perlbrew (siga as instruções na tela... mas é mais ou menos):
140              
141             curl -L http://xrl.us/perlbrewinstall | bash
142             echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bashrc
143             source ~/perl5/perlbrew/etc/bashrc
144             perl -v
145             perlbrew install 5.14.1
146             perlbrew switch perl-5.14.1
147             perl -v
148              
149             2. Instale o cpanm / app::cpanminus
150            
151             curl -L http://cpanmin.us | perl - App::cpanminus
152              
153             3. Instale os módulos facilmente com:
154              
155             cpanm Modulo::Para::Instalacao
156              
157             3.1 Ou, se preferir, acesse a página do módulo e clique em Download para baixar o arquivo e:
158            
159             tar xvf modulo-xyz-0.01.tar.gz
160             cd modulo-xyz
161             perl Makefile.PL
162             make test
163             make install
164              
165             *** Você tambem pode instalar atraves utilizando "cpan Modulo::Para::Instalacao"
166              
167             =head2 COMO CRIAR TESTES PARA SEU MÓDULO PERL
168              
169             Todos os módulos devem ser testados para garantir a funcionalidade dos mesmos.
170              
171             Os testes da sua app ficam dentro da pasta Modulo/t/001-testes.t
172              
173             Crie os testes de acordo com sua necessidade. Quanto mais testes melhor.
174              
175             Acesse via cpan: Test::Tutorial e obtenha mais exemplos de como testar sua aplicação.
176              
177             Ex de teste:
178              
179             use Test::More;
180              
181             BEGIN { use_ok('Meu::Modulo'); }
182              
183             my $app = Meu::Modulo->new();
184             isa_ok( $app, 'Meu::Modulo' );
185              
186             ok( $app->works == 1 , 'A app está funcionando' );
187             #.... teste, teste teste.... teste bastante
188              
189             done_testing;
190              
191             ao final coloque done_testing;
192              
193             para executar os testes da sua aplicação execute:
194              
195             cd modulo-xyz
196             perl Makefile.PL
197             make test
198              
199             E se tudo deu certo, você verá a mensagem:
200            
201             Results: PASS
202              
203             =head2 ALTERANDO A DOCUMENTACAO DO MÓDULO PERL
204              
205             Edite o arquivo principal do seu módulo e documente tudo que for preciso.
206              
207             Se você ficar em dúvida, baixe outros módulos do cpan criados por outras pessoas e veja como elas fazem.
208              
209             A parte que você deve alterar para criar documentação é a parte que está após os =head*
210              
211             =head2 CONCLUSÃO
212              
213             Criar módulos perl é uma tarefa que envolve vários detalhes, mas é bastante tranquilo de fazer.
214              
215             O ecosistema perl permite que trabalhemos bem a questão de testes e de documentação para garantir a qualidade do software produzido.
216              
217             O CPAN tem tudo!!, é um lego de várias peças que permite a você montar aplicações sem limites.
218              
219             Aproveite, contribua, aprenda com os outros.
220              
221             E lembre-se, o povo está de olho na qualidade... então é recomendável manter um alto padrão :)
222              
223             =head2 AUTOR
224              
225             Hernan Lopes < hernanlopes at gmail >
226              
227             cpan: http://search.cpan.org/~hernan/
228              
229             github: http://github.com/hernan604/
230              
231             Repasse este conhecimento e ajude a fortalecer linguagem perl no brasil.
232              
233              
234              
235             1;
236             # The preceding line will help the module return a true value
237