Подтвердить что ты не робот

Разрабатываете ли вы свои приложения Perl в качестве модулей CPAN?

Недавно я прочитал сообщение в блоге, в котором говорится, что хорошей практикой является разработка приложений Perl, так же, как вы разработали модуль CPAN. (Вот он - спасибо Дэвиду!) Одна из причин была в том, что вы могли просто запустить cpan . в каталоге проекта, чтобы установить все зависимостей. Это звучит разумно, и мне также нравится "единый интерфейс", который вы получаете. Когда вы сталкиваетесь с таким приложением, вы знаете, что делает make файл и т.д. Каковы другие преимущества и недостатки этого подхода?


Обновление: Спасибо за ответы. У меня еще один вопрос об установке зависимостей, Ill опубликуйте его отдельно.

4b9b3361

Ответ 1

В общем, да, я бы сказал, что это хорошая идея. Catalyst делает это проще, так как helper установит базовую структуру вашего веб-приложения, дополненную Makefile.PL и т.д.

Это означает, что упаковка вашего приложения и его развертывание на сервере тривиально легко.

Изменить: я думаю, что исходное сообщение в блоге, о котором вы думали, было Напишите свой код, как это происходит в CPAN от Perlbuzz.

"При обработке кода мы никогда не собирались выпускать CPAN, как если бы мы были, мы выигрываем поддержку всей инструментальной цепочки CPAN. Цепь, которая становится лучше с каждым днем. "

Ответ 2

Да, просто потому, что "модуль CPAN" устанавливает только очень либеральные практики. Я предпочитаю Module:: Install, я считаю, что большинству здравомыслящих людей тоже нужно. Чтобы получить базовый дистрибутив с установкой модуля, я просто использую модуль-стартер:

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

Затем сразу после этого я редактирую pod в lib/Foo/Bar.pm: я не люблю pod в середине моего кода. Я обычно перемещаю все это в нижнюю часть и удаляю раздел FUNCTION и VERSION, потому что 99.9% моих модулей - OO с Moose, а Module:: Install будет читать его из $Foo:: Bar:: VERSION.

Затем я запустил git -init, отредактировал файл .gitignore и добавлю "MANIFEST", "Meta.yml", "Makefile.old", "blib/", "inc/" и что-то временное файлы, которые я создаю, могут использовать файлы. (Если вы нажимаете на CPAN, вы захотите добавить .gitignore и .git/в MANIFEST.skip таким образом, чтобы они тоже не поднимались.) Тогда я git add ., и у меня есть модуль в git с загрузочной системой сборки/тестирования.

Затем я запускаю github, создаю репо, загружаю модуль и добавляю публичный репозиторий в Makefile.PL repository git://github.... и начинаем кодирование.

Даже если вы не нажимаете CPAN, module-install обеспечивает неплохую основу для хорошего модуля.

Другие преимущества, вы можете запустить make dist, и получить tarball и разместить его очень легко на частном сервере http, а затем просто сказать клиенту или серверу установить с помощью cpanp http://host/path. Вы также получаете все преимущества Module::Install, он будет использовать dmake в окнах и загружать dmake, если у вас его нет. Это довольно волшебно с кросс-платформенной добротой.

Нет серьезных недостатков или даже заметных второстепенных.

Ответ 3

публикация вещей в CPAN означает ответственность. вам нужно предоставить хороший документ, дальнейшую поддержку и другие. или иначе, не переходите к CPAN.

Спасибо