2009-11-05 18 views
18

Niedawno przeczytałem wpis na blogu, w którym napisano, że dobrą praktyką jest tworzenie aplikacji Perla, tak jak w przypadku modułu CPAN. (Here it is - dziękuję David!) Jednym z podanych powodów było to, że można po prostu uruchomić cpan . w katalogu projektu, aby zainstalować wszystkie zależności. Brzmi to rozsądnie i podoba mi się również "jednolity interfejs", który otrzymujesz. Kiedy natkniesz się na taką aplikację, wiesz, co robi plik Makefile itp. Jakie są inne zalety i wady tego podejścia?Czy rozwijasz swoje aplikacje Perla jako moduły CPAN?


Aktualizacja: Dzięki za odpowiedzi. Mam jeszcze jedno pytanie dotyczące instalacji zależności, będę post it separately.

Odpowiedz

11

Generalnie tak, powiedziałbym, że to dobry pomysł. Catalyst to ułatwia, ponieważ skrypt pomocniczy catalans stworzy podstawowe środowisko dla twojej aplikacji internetowej, uzupełnione o Makefile.PL itd.

Oznacza to, że pakowanie aplikacji i jej wdrażanie na serwerze jest banalnie proste .

Edytuj: Myślę, że oryginalny wpis na blogu, o którym myślałeś, to Write your code like it's going on CPAN z Perlbuzz.

" Traktując kod nigdy nie jechaliśmy do udostępniania CPAN jakbyśmy byli wygramy poparcie wszystkich toolchain CPAN. Łańcuch narzędziowy, który jest coraz lepszy każdego dnia. "

-4

publikowanie rzeczy w CPAN oznacza odpowiedzialność. potrzebujesz dobrego dokumentu, dalszego wsparcia i innych. albo nie idź do CPAN.

Dzięki

+7

Właściwie publikowanie kodu na CPAN nie było tym, o co go proszono - "dobra praktyka do tworzenia aplikacji Perla tak, jak byś opracowała moduł CPAN" nie oznacza, że ​​faktycznie wypuszczasz go do CPAN, tylko że rozwijasz się w w taki sam sposób, jak w przypadku modułu, który planowałeś udostępnić CPAN. –

+4

Masz na myśli, że jeśli nie publikujesz w CPAN, nie musisz dostarczać dobrego dokumentu lub obsługiwać swojego kodu? –

+0

Jest po prostu zgorzkniały, że ktoś na IRC nie spodobał mu się użycie przestrzeni nazw MooseX :: names. – jrockway

6

Tak, po prostu dlatego, że "moduł CPAN" ustanawia tylko bardzo liberalne praktyki. Preferuję moduł :: Zainstaluj, wierzę, że większość zdrowych ludzi też powinna. Aby uzyskać podstawowe rozkład jazdy z modułem zainstalować po prostu użyć modułu rozrusznik:

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

Następnie tuż po, edytować kapsułę w lib/Foo/Bar.pm: nie lubię kapsułę w środek mojego kodu. Zwykle przenoszę to wszystko na sam dół i usuwam również sekcję FUNCTION i VERSION, ponieważ 99,9% moich modułów to OO z Moose, a Module :: Install odczytuje je z $ Foo :: Bar :: VERSION.

Następnie uruchamiam git-init, edytuję plik .gitignore i dodaje "MANIFEST", "Meta.yml", "Makefile.old", "blib /", "inc /", a także, jakie pliki tymczasowe redaktor, który tworzę, może używać. (Jeśli naciskasz na CPAN, będziesz chciał dodać .gitignore i .git/do MANIFEST.skip w ten sposób, że one też nie idą w górę.) Wtedy I git add ., i mam moduł w git z bootstrapowym systemem budowania/testowania.

Następnie uruchamiam github, tworzę repozytorium, przesyłam mój moduł i dodaje publiczne repozytorium do Makefile.PL repository git://github.... i zaczynam kodować.

Nawet jeśli nie będziesz naciskać na CPAN, module-install zapewnia całkiem niezłą podstawę dobrego modułu.

Inne zalety: można uruchomić program make dist, pobrać plik archiwum i bardzo łatwo go hostować na prywatnym serwerze http, a następnie po prostu poinformować klienta lub serwer, aby zainstalował go pod numerem cpanp http://host/path.Otrzymasz także wszystkie zalety Module::Install, użyje dmake w oknach i pobierze dmake, jeśli go nie masz. To jest dość magiczne dzięki dobremu platformowemu.

Nie ma poważnych wad ani nawet godnych uwagi drobnych.

+0

Czy próbowałeś Dist :: Zilla? – brunov