2009-11-05 34 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

相关问题