2009-11-05 30 views
18

最近我讀了一篇博客文章,說像開發CPAN模塊一樣,開發Perl應用程序是一種很好的做法。 (Here it is - 感謝David!)其中一個原因是您可以在項目目錄中簡單運行cpan .以安裝所有依賴項。這聽起來很合理,我也喜歡你得到的「統一界面」。當你遇到這樣一個應用程序,你知道什麼是makefile等等。這種方法的其他優點和缺點是什麼?您是否將您的Perl應用程序開發爲CPAN模塊?


更新:感謝您的答案。我還有一個關於依賴安裝的問題,我會post it separately

回答

11

一般來說,是的,我會說這是個好主意。 Catalyst可以很簡單,因爲catalyst.pl幫手腳本將爲您的Web應用程序設置一個基本框架,並通過Makefile.PL等完成。

這意味着打包應用程序並將其部署到服務器非常簡單。

編輯:我想你原來的博客文章是Write your code like it's going on CPANPerlbuzz

"通過處理代碼,我們永遠不會像CPAN工具鏈那樣發佈到CPAN,我們贏得了所有CPAN工具鏈的支持。一個每天都在變得更好的工具鏈。 "

-4

將事情發佈到CPAN意味着責任。你需要提供一個好的文件,進一步的支持和其他。否則,不要去CPAN。

謝謝

+7

實際上,將代碼發佈到CPAN並不是要求的 - 「像開發CPAN模塊一樣開發Perl應用程序的良好實踐」並不意味着您實際將其發佈到CPAN,只是您在與您計劃發佈到CPAN的模塊的方式相同。 – 2009-11-05 12:16:56

+4

你的意思是,如果你沒有發佈到CPAN,你不需要提供一個好的文檔或支持你的代碼? – 2009-11-05 16:04:50

+0

他只是在IRC上的某個人不喜歡他使用MooseX :: namespace而感到痛苦。 – jrockway 2009-11-07 13:14:32

6

是的,只是因爲「CPAN模塊」只建立了非常自由的做法。我更喜歡Module :: Install,我相信大多數理智的人也應該這樣做。爲了得到一個基本的分佈模塊運行安裝我簡單地使用模塊首發:

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

然後之後,我編輯lib中的POD /美孚/ Bar.pm:我不喜歡在羣我的代碼中間。我通常將它全部移到底部並刪除FUNCTION和VERSION部分,因爲99.9%的模塊是帶Moose的OO,而Module :: Install將從$ Foo :: Bar :: VERSION中讀取它。

然後我運行git-init,編輯.gitignore文件並添加'MANIFEST','Meta.yml','Makefile.old','blib /','inc /',以及什麼臨時文件我正在創建的編輯器可能正在使用。 (如果你推送到CPAN,你會想要將.gitignore和.git /添加到MANIFEST.skip中,這樣他們就不會上去了。)然後,我使用git add .,並且我的模塊在git中帶有自舉式構建/測試系統。

然後我運行github,創建一個repo,上傳我的模塊,並將公共存儲庫添加到Makefile.PL repository git://github....並開始編碼。

即使您不推送CPAN,module-install也爲良好的模塊提供了非常好的基礎。

其他的好處是,你可以運行make dist,並獲得一個tar包,並在私人http服務器上很容易地託管它,然後簡單地告訴客戶端或服務器使用cpanp http://host/path進行安裝。您還可以獲得Module::Install的所有優勢,它將在Windows上使用dmake,如果沒有它,則下載dmake。這是跨平臺善良相當神奇。

沒有什麼主要的缺點,甚至值得注意的小問題。

+0

你嘗試過Dist :: Zilla嗎? – brunov 2009-11-05 16:33:56

相關問題