2009-11-05 3 views
18

최근 CPAN 모듈을 개발하는 것처럼 Perl 응용 프로그램을 개발하는 것이 좋은 습관이라는 블로그 게시물을 읽었습니다. (Here it is - David thanks!) 제공된 이유 중 하나는 모든 종속성을 설치하기 위해 프로젝트 디렉토리에서 cpan .을 간단하게 실행할 수 있다는 것입니다. 이것은 합리적으로 들리며, 나는 또한 당신이 얻는 "통일 된 인터페이스"를 좋아합니다. 그런 응용 프로그램을 발견하면 makefile이하는 일을 알 수 있습니다.이 접근법의 다른 장단점은 무엇입니까?Perl 응용 프로그램을 CPAN 모듈로 개발합니까?


업데이트 : 답변 감사합니다. 종속성 설치에 대해 한 가지 더 질문이 있습니다. post it separately을 보내 드리겠습니다.

답변

11

일반적으로 네, 좋은 생각이라고 말하고 싶습니다. Catalyst은 catalyst.pl 도우미 스크립트가 Makefile.PL 등으로 완성 된 웹 응용 프로그램의 기본 프레임 워크를 설정하므로 쉽게 만들 수 있습니다.

즉, 응용 프로그램을 패키지로 만들어 서버에 배포하는 것이 쉽습니다. .

편집 : 내가 생각했던 원래의 블로그 게시물은 Write your code like it's going on CPAN에서 Perlbuzz으로 생각합니다.

" 우리는 마치 CPAN에 공개하지 않을 코드를 처리함으로써 모든 CPAN 툴체인의 지원을 얻게됩니다. 매일 더 좋아지고있는 툴체인. "

-4

CPAN에 게시하는 것은 중요한 책임입니다. 당신은 좋은 문서를 제공하고, 더지지하고, 다른 사람들을 제공해야합니다. 그렇지 않으면 CPAN에 가지 마라.

감사합니다.

+7

실제로 CPAN에 코드를 게시하는 것은 "CPAN 모듈을 개발할 때와 마찬가지로 Perl 응용 프로그램을 개발하는 것이 좋습니다"는 것은 CPAN에 실제로 배포한다는 것을 의미하지는 않습니다. CPAN에 공개하려는 모듈과 같은 방식으로 –

+4

CPAN에 게시하지 않으면 좋은 문서를 제공하거나 코드를 지원할 필요가 없다는 뜻입니까? –

+0

그는 IRC의 누군가 MooseX :: namespace를 사용하는 것을 좋아하지 않는다는 사실에 괴롭습니다. – jrockway

6

그렇습니다. "CPAN 모듈"은 매우 자유주의적인 관행만을 구축하기 때문입니다. 나는 Module :: Install을 선호한다. 나는 가장 정상적인 사람들도 그렇게해야한다고 생각한다. 모듈을 실행하는 기본 분포를 얻을하려면 단순히 모듈 스타터 사용 설치 :

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

그런 다음 직후, 나는 LIB에서 포드를 편집/푸/Bar.pm : 나는에서 포드를 좋아하지 않는다 내 코드 중간. 나는 모듈의 99.9 %가 무스와 함께 OO이고 모듈 :: 설치가 $ Foo :: Bar :: VERSION에서 그것을 읽으므로 일반적으로 모든 것을 맨 아래로 이동하고 FUNCTION 및 VERSION 섹션도 삭제합니다.

그러면 git-init을 실행하고 .gitignore 파일을 편집하고 'MANIFEST', 'Meta.yml', 'Makefile.old', 'blib /', 'inc /'를 추가하고 임시 파일에 내가 만들고있는 편집기가 사용 중일 수 있습니다. (CPAN을 사용한다면 .gitignore를 추가하고 .git /를 MANIFEST.skip에 추가하면됩니다.) 그런 다음 I git add ., 그리고 git에서 제 모듈을 얻었습니다. 부트 스트랩 된 빌드/테스트 시스템.

그런 다음 github을 실행하고 repo를 만들고 내 모듈을 업로드 한 다음 공용 저장소를 Makefile.PL repository git://github....에 추가하고 코딩을 시작합니다.

CPAN으로 푸시하지 않더라도 좋은 모듈을위한 좋은 기초를 제공합니다. module-install

다른 장점으로는 make dist을 실행할 수 있으며 타르볼을 받아 개인 http 서버에서 매우 쉽게 호스트 할 수 있으며 클라이언트 또는 서버에 cpanp http://host/path과 함께 설치하도록 지시 할 수 있습니다.당신은 또한 Module::Install의 모든 이점을 얻으며, 창에서 dmake를 사용할 것이고, dmake가 없다면 다운로드 할 것입니다. 그것은 크로스 플랫폼의 장점으로 꽤 마법입니다.

주요 단점은 없으며 중요한 메모는 아닙니다.

+0

Dist :: Zilla를 사용해 보셨습니까? – brunov

관련 문제