Perl에서 좋은 MVC 프레임워크를 제안하세요.
-
09-06-2019 - |
문제
Perl을 위한 좋은 MVC 프레임워크를 제안해 주실 수 있나요? 제가 알고 있는 것은 다음과 같습니다. 촉매
Java/.Net 애플리케이션에서 원활하게 호출할 수 있는 Perl 인프라에 서비스를 노출할 수 있어야 합니다.
해결책
Catalyst는 신속한 애플리케이션 개발 MVC 프레임워크 측면에서 Perl 개발자들 사이에서 단연 최고의 평판을 얻고 있다고 지금 말씀드리고 싶습니다.
"순수한" MVC 측면에서 "성숙한" 또는 최소한 생산 준비가 된 대안이 그렇게 많이 있는지 확신할 수 없습니다.
Catalyst가 적합하지 않다고 생각되면 경량 프레임워크를 기반으로 구축할 수 있습니다. CGI::응용프로그램 귀하의 필요에 맞게 또는 다음과 같이 덜 알려진 MVC 프레임워크를 살펴보십시오. 페이지킷 그리고 메이폴.
다른 팁
이 오래된 스레드가 나타났기 때문에 Perl MVC 세계에 두 가지 흥미로운 새 추가 사항을 언급하겠습니다.
- 춤추는 사람 (CPAN) 매우 가벼운 것으로 알려진 Ruby의 Sinatra의 영향을 많이 받았습니다.
- 모졸리셔스 (CPAN) Catalyst의 원래 개발자가 배운 내용을 사용하기 위해 작성한 이 버전에는 매우 현대적인 내장 기능(HTML5/CSS3/Websockets, JSON/XML 파서, 자체 UserAgent/템플릿 엔진)이 포함되어 있어 비핵심 종속성이 없습니다.
(NB.나는 Dancer보다 Mojolicious를 더 많이 사용했기 때문에 Mojolicious에 나열한 Dancer의 일부 기능을 놓친 경우 미리 사과드립니다.)
이미 언급한 것 외에 또 다른 대안은 연속성입니다.그러나 이는 (이름에서 알 수 있듯이) 일반적인 의미의 MVC가 아닌 연속 기반입니다.그래도 더 나은 Perl 웹 프레임워크 중 하나이기 때문에 언급할 가치가 있습니다.
즉, 나는 어떤 대안보다 Catalyst를 훨씬 더 좋아합니다.그리고 여전히 점점 더 좋아지고 있습니다!단점은 현재 선호하는 코딩 접근 방식이 상당히 빠른 속도로 계속해서 발전하고 있다는 것입니다. 그러나 지난 몇 가지 버전에서는 API 호환성이 크게 강조되었기 때문에 부담은 이제 대부분 관리적이라기보다는 정신적입니다.특히 Moose에 대한 내부 포트의 향후 포트는 뛰어난 이점을 제공할 준비가 되어 있습니다.
그러나 IMO인 Catalyst를 선호하는 가장 큰 주장은 체인형 디스패치 유형입니다.나는 웹 프레임워크 전체에서 이와 같은 것을 본 적이 없으며 코드를 가능한 한 DRY로 유지하는 가장 훌륭한 도구입니다.이는 Catalyst가 제공하는 또 다른 훌륭한 기능, 즉 uri_for
– 컨트롤러와 여러 인수를 취한 다음 해당 위치로 전달하고 반환하는 URI를 구성하는 메서드입니다.이러한 기능을 함께 사용하면 자신이 옳다고 생각하는 방식으로 URI 공간을 구성할 수 있으면서도 동시에 논리 중복을 방지하도록 컨트롤러를 구성할 수 있습니다. 그리고 템플릿을 URI 구조와 독립적으로 유지합니다.
정말 훌륭합니다.
다른 사람의 의견을 뒷받침합니다.Catalyst(Maypole에서 파생된)는 단연코 가장 완벽하고 강력합니다.당신이 그것을 이해하는 데 확실히 도움이 될 조나단 록웨이(Jonathan Rockway)의 책이 있습니다.
'체인' 디스패치 유형 외에도 :Regex(및 :LocalRegex) 디스패치 메소드는 엄청난 유연성을 제공합니다.여기에 구축한 최신 앱은 :LocalRegex를 사용하여 소수의 하위 항목을 통해 이질적으로 보이는 많은 URL을 지원합니다.
또한 특정 템플릿 언어나 데이터베이스에 국한되지 않는다는 사실도 특히 마음에 듭니다.메일링 리스트(그리고 책)는 둘 다 Template::Toolkit(나처럼)과 DBIx::Class(우리는 Class::DBI를 계속 사용함)를 선호하지만 원하는 거의 모든 것을 사용할 수 있습니다.Catalyst는 놀라울 정도로 불가지론적입니다.
Catalyst가 종속성으로 CPAN의 절반을 요구하는 것 같다고 해서 미루지 마십시오.일단 설치하고 실행하면 기름칠이 잘 된 기계입니다.이제는 성숙 단계에 도달하여 일단 이해하고 나면 '배경 속으로 사라져' 있는 것을 발견하게 됩니다.사용하는 도구와 씨름하지 않고 비즈니스 요구 사항을 해결하는 데 시간을 보냅니다.
주석에 적힌대로 작동합니다.촉매++
프레임워크의 핵심과 더 유사한 CGI::Application도 있습니다.이는 사용자가 기본 CGI를 작성하고 원하는 대로 사용자 정의할 수 있도록 도와줍니다.따라서 거의 모든 모듈을 사용하지 않거나 태양 아래 거의 모든 사람을 사용하도록 할 수 있습니다.
촉매제가 갈 길입니다.Jifty도 있지만 (지난번에 봤을 때) 끔찍한 문서가 있었습니다.
Catalyst에 대해 이미 알고 있다면 집중적으로 살펴보는 것이 좋습니다.성숙하고 잘 문서화되어 있으며 매우 큰 사용자 기반, 커뮤니티 및 플러그인 모음을 보유하고 있습니다.
귀하의 문제에 대해서는 다양한 형식을 사용하여 모델 및 작업에 액세스할 수 있는 Jifty::Plugin::REST를 살펴보겠습니다.
Jifty에는 끔찍한 문서가 없다고 말씀드리고 싶습니다.그러나 포함된 문서의 대부분은 API 문서이지만 유용한 팁과 응용 프로그램에 대한 링크가 포함된 매우 간단한 메일링 목록이 있습니다.
위키 http://jifty.org/ 유용한 비트가 있는 또 다른 리소스입니다.
귀하의 목표가 오후에 비디오 저장소(4GL 및 CRUD 프레임워크에 대해 제가 가장 좋아하는 벤치마크)를 만드는 것이라면 정말 볼만한 가치가 있습니다!
또 다른 옵션은 받침대 BigTop 모듈과 함께 사용하면 간단한 CRUD 사이트를 구축하는 데 걸리는 시간을 줄일 수 있습니다.
도 있습니다 클리어프레스 유용한 데이터베이스 지원 애플리케이션으로 추천할 수 있습니다.Catalyst보다 종속성이 덜 필요합니다.우리는 이를 사용하여 몇 가지 대규모 애플리케이션을 작성했으며 이를 사용하여 배드민턴 사다리 웹사이트를 운영하고 있습니다.
나는 다음과 같은 몇 가지 응용 프로그램을 만들었습니다. 켈프, 배우기 쉽고 매우 유용합니다.