2009-11-05 5 views
18

Recentemente ho letto un post sul blog dicendo che è una buona pratica per sviluppare applicazioni Perl proprio come si farebbe sviluppare un modulo CPAN. (Here it is -! Grazie David) Uno dei motivi addotti è che si può semplicemente eseguire cpan . nella directory di progetto per installare tutte le dipendenze. Questo suona ragionevole, e mi piace anche l '"interfaccia uniforme" che ottieni. Quando ti imbatti in un'applicazione del genere, sai cosa fa il makefile ecc. Quali sono altri vantaggi e svantaggi di questo approccio?Sviluppate le vostre applicazioni Perl come moduli CPAN?


Update: Grazie per le risposte. Ho ancora una domanda sull'installazione delle dipendenze, mi occuperò di post it separately.

risposta

11

In generale, sì, direi che è una buona idea. Catalyst semplifica tutto questo, dato che lo script helper catalyst.pl creerà un framework di base per la tua app Web, completato con un Makefile.PL, ecc.

Ciò significa che impacchettare l'applicazione e distribuirla su un server è banalmente semplice .

Modifica: Penso che il post originale del blog che stavi pensando fosse Write your code like it's going on CPAN dal Perlbuzz.

" Trattando il codice non ci hanno mai intenzione di rilasciare per CPAN come se fossimo, noi ottenere il sostegno di tutta la toolchain CPAN. Una toolchain che sta migliorando ogni giorno. "

-4

editoriali cose a CPAN significa responsabilità. è necessario fornire un buon documento, ulteriore supporto e altri. oppure, non andare CPAN.

Grazie

+7

In realtà pubblicare il codice su CPAN non era quello che veniva chiesto: "le buone pratiche per sviluppare applicazioni Perl proprio come si svilupperebbe un modulo CPAN" non implica che lo si rilasci effettivamente su CPAN, solo che si sviluppa nel come faresti per un modulo che avevi intenzione di rilasciare su CPAN. –

+4

Vuoi dire che se non pubblichi su CPAN, non devi fornire un buon documento o supportare il tuo codice? –

+0

Lui è solo amareggiato dal fatto che qualcuno su IRC non abbia gradito il suo uso dello spazio dei nomi MooseX ::. – jrockway

6

Sì, semplicemente perché "modulo CPAN" stabilisce solo pratiche molto liberali. Preferisco il modulo :: Installa, credo che anche le persone più sensate dovrebbero farlo. Per ottenere una distribuzione di base in esecuzione con il modulo di installare semplicemente utilizzare il modulo-starter:

module-starter --mi --module "Foo::Bar" --author "Evan Carroll" --email "[email protected]"

Poi subito dopo, ho modificare il pod in lib/foo/Bar.pm: non mi piace pod nel metà del mio codice. Io di solito muovo tutto fino in fondo e eliminare la funzione, e la sezione VERSIONE troppo, perché il 99,9% dei miei moduli sono OO con Moose, e il modulo :: Installare lo leggerà da $ Pippo :: Pluto :: VERSIONE.

Quindi eseguo git-init, modifica il file .gitignore e aggiungo "MANIFEST", "Meta.yml", "Makefile.old", "blib /", "inc /" e quali file temporanei sono mai stati l'editor che sto creando potrebbe utilizzare. (Se si sta spingendo al CPAN si vorrà aggiungere il .gitignore, e .git/a MANIFEST.skip in questo modo non vanno troppo.) Poi ho git add ., e ho il mio modulo in git con un sistema di build/test bootstrap.

Quindi eseguo github, creo un repository, caricare il mio modulo e aggiungere il repository pubblico a Makefile.PL repository git://github.... e avviare la codifica.

Anche se non spingere al CPAN, module-install offre una buona base per un buon modulo.

Altri vantaggi, è possibile eseguire make dist, e ottenere un tarball e di accoglienza molto facilmente su un server http privato, e poi semplicemente dire un client o un server da installare con cpanp http://host/path.Ottieni anche tutti i vantaggi di Module::Install, userà dmake su Windows e scarica dmake se non ce l'hai. È piuttosto magico con bontà cross-platform.

Non ci sono grossi svantaggi, o anche minori degni di nota.

+0

Hai provato Dist :: Zilla? – brunov