2008-11-14 5 views
6

몇 년 전 나는 CGI로 많은 작업을했습니다. 나는 그것을 빠른 프로젝트를 위해 다시 사용하여 평가하고있다. 누군가가 "웹 2.0"세계에서 CGI.pm으로 발전하는 현재 상태에 대해 나에게 속도를 높일 수 있습니까? CPAN에서 사용할 수있는 최고의 라이브러리는 무엇입니까? jQuery, YUI, 다른 CSS 라이브러리 등을 포함하는 깨끗한 방법이 있으며 AJAX를 사용하십시오. 물론 CPAN에는 많은 라이브러리가 있지만 작동하고 일반적으로 사용되는 것은 무엇입니까?CGI.pm으로 웹 2.0 앱을 개발하려면 어떻게해야합니까?

아직 수행 중이 아닙니다.

 
$JSCRIPT<<EOF; 
... 
EOF 

사람들이 Catalyst를 대답으로 제공한다는 것을 알고 있습니다. 그러나 많은 사람들이 CGI.pm 응용 프로그램을 단순히 향상시키고 자 할 수도 있습니다. 정말 최고의 답변을 시작하고 있습니까?

답변

11

필자는 Catalyst (내 취향에 너무 무거움) 또는 Mason (코드와 HTML 혼합은 나쁜 주주)의 팬이 아니지만 CGI.pm을 입력 [1], HTML :: 출력을위한 템플릿, CGI :: Ajax는 어디서 AJAX 기능을 제공 할 것인가.

프레임 워크를보고 있다면 Catalyst/Mason의 대안으로 널리 사용되는 CGI :: Application을 고려할 수 있습니다.

[1] CGI.pm에서 $ q-> param 또는 $ q-> 쿠키 이외의 것을 마지막으로 호출 한 것을 기억할 수 없습니다. HTML 생성 함수를 사용하는 튜토리얼은 여전히 ​​많이 있지만, 코드와 HTML을 혼합하여 사용하는 것은 나쁘지는 않더라도 여기서 문서를 사용하는 것만 큼 나쁜 방법입니다.

+0

About [1] : Amen! 그 논쟁은 CGI.pm이 cgilib.pl을 대체하기 위해 제안 된 "새로운 핫"이었기 때문에 계속되었습니다. 분명히, saner 머리는 그 논쟁에서 승리하지 않았다. :-(대신 CGI :: Lite를 사용 해본 적이 있습니까? –

+0

CGI :: Simple로 전환하는 것을 고려했지만 CGI :: Lite를 인식하지 못했습니다. 모듈 목록에 추가해야합니다. 내 자유로운 시간에. –

+0

그리고 CGI :: Lazy가 재미있어 보입니다 ... http://search.cpan.org/dist/CGI-Lazy/lib/CGI/Lazy.pm – draegtun

4

더 현대적인 것을 사용하는 것을 고려하십시오 (예 : Catalyst). 그것은 당신의 삶을 훨씬 쉽게 만들고 당신은 바퀴를 재발견 할 필요가 없습니다. 나는 그저 작은 프로젝트 일 뿐이라고 생각하지만, 많은 경험을 통해 많은 작은 프로젝트들이 커다란 프로젝트가 될 것입니다. :)

+0

이미 CGI.pm을 사용하는 레거시 응용 프로그램으로 무엇을합니까? –

+0

초기 질문에서 기존 프로젝트를 수정하지 않고 새 프로젝트를 만들고 싶다는 것을 이해했습니다. –

+0

나는 내 질문에 대한 좋은 대답을 얻을만한 이유를 제시하려했다. 이 사이트에는 Catalyst 사용에 대한 답변이 많이 있습니다. 그것은 정말로 유일한 마을 게임입니까? Perl jQuery와 AJAX 라이브러리가 있습니다. 좋은 점이 있습니까? –

2

CGI.pm을 사용하여 "Web 2.0"어플리케이션을 완벽하게 작성할 수는 있지만해야 할 것입니다. 너 자신 일. 필자가 보았던 것에서 Perl 개발 커뮤니티의 초점은 CGI에 대한 후속 프레임 워크 개발이었습니다. 레거시 애플리케이션을 현대 패러다임으로 부트 스트랩하도록하는 도우미 모듈을 작성하는 것이 아닙니다. 그래서 당신은 다소 자신에 달려 있습니다.

처음부터 다시 시작할지 여부는 무엇을하고 있습니까? "웹 2.0"에 대한 모든 사람들의 정의는 다소 다릅니다.

AJAX와 같은 몇 가지 최신 기능을 기존 앱에 도입하려는 경우 처음부터 다시 시작할 필요가 없습니다.

한편 현대 웹 응용 프로그램처럼 보이고 느끼고 작동하는 것을 작성하려는 경우 (예 : 페이지로드에서 벗어나 앱 상태 모델이 됨) 처음부터 시작하는 것을 고려하십시오. 사실이 가장 큰 사소한 응용 프로그램에 비해 가치가있는 것보다 더 많은 문제가 발생하면 많은 변화가 일어날 수 있습니다.

1

나는 아담의 대답에 동의한다. 아마 Catalyst를 사용하고 싶을 것이다. 당신이 정말로 원하지 않는다면 CGI 만 사용하는 것을 방해하는 것은 아무것도 없습니다. 사실, Catalyst는 웹 2.0을 쉽게 만들고 싶은 일을하는 패키지 모음입니다. Template Toolkit이나 Mason과 같은 다양한 템플릿 엔진을 DBIx :: Class 및 Class :: DBI와 같은 다양한 ORM 인터페이스와 결합합니다.

확실히 웹 2.0 앱을 작성하는 데 이러한 것들을 사용할 필요는 없습니다. 단지 좋은 생각입니다. 귀하의 질문 중 일부는 jQuery 또는 프로토 타입 같은 자바 스크립트 및 CSS 프레임 워크가 서버 측 코드의 내용을 필요로하는지 궁금합니다. 그들은 당신이 원하는 모든 종류의 서버 측 코드와 함께 사용할 수 없습니다.

1

CGI.pm에서 Catalyst 로의 점프가 너무 어려울 경우 Squatting과 같은 것이 더 적합할까요?

Squatting은 웹 마이크로 프레임 워크이며 빠른 프로토 타이핑과 기존 CGI 스크립트의 대체/업그레이드에 이상적입니다.

저는 최근 jquery를 사용하여 Squatting으로 작은 "web 2.0"앱을 만들었습니다. CPAN 배포본 내에는 매우 흥미로운 [COMET] (http://en.wikipedia.org/wiki/Comet_(programming)) 예 : Continuity (기본적으로 Squatting "squats"가 사용됨)을 사용하는 jQuery와 AJAX를 사용하는 프로그램이 들어있는 예제 디렉토리가 있습니다.

NB. 필요한 경우에는 나중에 Catalyst에 앱을 "스쿼트"할 수 있습니다. Squatting::On::Catalyst

+0

Catalyst를 설치하는 첫 번째 균열은 Fedora에서 작동하지 않았습니다. FC9 x64. 오늘 아침에 CGI로 간단한 웹 리포트를 만들었습니다. 나는 그것을 설치하는 것을 태워야 할 시간이있을 때 Catalyst를 할 것이다. –

+0

때로는 촉매가 때때로로드 될 때가 있습니다. http://draegtun.wordpress.com/2008/06/16/installing-catalyst-on-production-server-yesterday/ – draegtun

+0

스쿼팅은로드하기가 훨씬 쉽습니다. 그러나 Coro 4.8과 관련된 몇 가지 문제가 있습니다. http://groups.google.co.uk/group/squatting-framework/browse_thread/thread/3e879ae9f2e41d7f – draegtun

3

일반적으로 사용했던 "웹 2.0"앱은 클라이언트 측 JavaScript를 사용하여 서버에서 JSON 데이터를 요청한 다음 DOM을 통해 현재 위치에서 페이지를 업데이트하십시오.

JSON 모듈은 구조화 된 데이터를 브라우저로 반환하는 데 유용합니다.

JavaScript, HTML 또는 여기에있는 문서를 포함하는 한 - 은 결코이 아니며 여전히 좋은 아이디어입니다. 대신, CPAN에서 찾을 수있는 많은 템플릿 모듈 중 하나를 사용하십시오. CGI의 경우 Mason 또는 Template Toolkit과 같은 "무거운"모듈을 피하고 Text::Template 또는 Template::Simple과 같이 빠른 시작을 위해 더 가벼운 모듈을 사용합니다.

3

예, Perl, Python, Java 등 모든 언어의 서버 측 프레임 워크를 사용하지 않고 클라이언트 측 JavaScript 라이브러리/프레임 워크를 사용하지 않고 완벽한 web2.0 웹 응용 프로그램을 작성할 수 있습니다.

  1. 알고 : 웹 2.0의 정의가 느슨한 정의의 종류, 나는 웹 2.0으로 추측하고있어, 당신은 아약스 또는 부분 페이지 새로 고침을 의미하고 당신이 필요로 정말있는 모든는 다음에 집중하는 것입니다 XmlHttpRequest 객체에 대해
  2. JSON 객체를 서버에서 클라이언트로 반환하는 방법을 알고 있습니다.
  3. JavaScript를 사용하여 JSON 객체를 안전하게 평가/파싱하는 방법을 알고 있고 DOM을 조작하는 방법을 알고 있어야합니다. 또한, 적어도 innerHTML에 대해 알아. InnerHTML은 가끔 도움이됩니다.
  4. 알아 CSS.

web2.0에서 필요하고 jQuery, mootools, YUI 같은 클라이언트에서 JavaScript를 사용하는 것이 훨씬 쉽기 때문에 서버 측 프레임 워크를 사용하는 것이 훨씬 쉽습니다. . 그리고 믹스 앤 매치 (mix-and-match)는 당신의 필요와 취향에 달려 있습니다. 대부분의 JavaScript는 모든 브라우저에서 작동하도록 XmlHttpRequest 주위에 래퍼를 제공합니다. 어떤 샘플을 보여주고 싶지 않다면, "naked"XmlHttpRequest를 더 이상 쓰지 마십시오.

1

새로운 앱의 경우 사용자가 선호하는 촉매를 찾을 수 없다면 Dancer은 좋아할만한 또 다른 간단한 프레임 워크입니다. 또한 CGI :: Simple, Mojo/Mojolicious, Squatting ...을 비롯한 많은 사람들이 있습니다.

이러한 가벼운 프레임 워크는 모두 웹 프로그래밍의 지루한 부분을 처리 할 수 ​​있으며 원하는 방식으로 재미있는 부분을 작성할 수 있습니다.

관련 문제