문제

맞춤형(특정 종류의 이벤트, 편집) 캘린더 시스템을 갖춘 데이터베이스 기반 대화형 AJAX 웹앱을 만들고 싶습니다.여기에는 꽤 많은 JavaScript와 AJAX가 포함되며, 인터페이스용 Google Web Toolkit과 서버측용 Ruby on Rails를 고려했습니다.

Google Web Toolkit은 신뢰할 수 있고 좋은가요?Google Web Toolkit을 선택하면 어떤 숨겨진 위험이 있을 수 있나요?서버측에서 Ruby on Rails와 쉽게 결합할 수 있나요?아니면 jQuery와 같은 JavaScript 라이브러리를 직접 사용해 봐야 합니까?

일부 HTML을 제외하고는 웹 개발 경험이 없지만 숙련된 프로그래머(c++, java, c#)이므로 이 프로젝트에는 무료 도구만 사용하고 싶습니다.

도움이 되었습니까?

해결책

RoR은 REST를 올바르게 사용하는 한 실제로 GWT가 잘 작동하도록 만들어진 것 중 하나입니다.Google 웹 툴킷 애플리케이션 책에 있으며 이러한 종류의 아이디어를 사용하는 책의 데모를 여기에서 볼 수 있습니다..그렇다고해서 문제가 없다고 말하는 것은 아니지만 지원이 확실히 있다고 생각합니다.

RoR / GWT를 쉽게 만들기위한 깔끔한 프로젝트가 있습니다. 여기 (MIT 라이센스).아직해볼 기회가 없었지만, 많은 생각이 들어간 것 같습니다.한 가지 문제점은 아직 2.1 Rails로 완전히 테스트되지 않은 것처럼 보이며 2.0에 불과하므로 몇 가지 (아마 사소하고 수정 가능한) 오류가 발생할 수 있습니다.

다른 팁

GWT를 ROR, PHP 등과 같은 비 자바 백엔드와 통합하려는 경우 GWT 1.5가 이제 자바 스크립트 오버레이 유형을 지원한다는 점을 염두에 두어야합니다.이 기능을 사용하면 네이티브 JavaScript 개체 위에 매핑 할 수있는 클래스를 작성하여 해당 개체의 속성 및 기타 확장 기능에 대한 접근 자 메서드를 쉽게 제공 할 수 있습니다.

자세한 내용은 다음 링크를 참조하십시오. 자바 스크립트 오버레이 유형

따라서 AJAX 호출을 통해 백엔드에서 JSON으로 인코딩 된 데이터를 반환하고이를 JavaScript 객체로 파싱 한 다음 생성 한 오버레이 클래스를 사용하여 GWT Java 코드를 통해 데이터에 액세스 할 수 있습니다.또는 페이지를 렌더링 할 때 데이터를 가져 오기 위해 AJAX 호출을 수행 할 필요없이 정적 구성 데이터를 JavaScript 객체로 렌더링하고이 메커니즘을 통해 읽을 수 있습니다.

JAVA를 알고 있고 호스팅 할 수있는 곳 (톰캣 또는 글래스 피쉬 컨테이너 등)이 있다면 백엔드로 Ruby를 사용하는 것보다 훨씬 더 많은 것을 권장합니다.주된 이유는 모든 개체를 공유하고 내장 된 RPC 메커니즘을 사용할 수 있기 때문입니다.저는 많은 프로젝트에서이 작업을 수행했으며 Java 객체를 아무것도 변환하지 않고 다시 되돌릴 필요가 없기 때문에 코드가 오류 발생 가능성이 적다는 것은 말할 것도없고 시간을 크게 절약 해줍니다.

전에 Rails에서 to_json 함수를 사용하여 GWT에서 JSON을 읽고 GWT를 Rails와 연결했습니다.모두 지원되지만 JAVA에서 백엔드를 수행하는 것보다 훨씬 더 짜증납니다.

물론 저렴한 호스팅을 가지고 있다면 Java 컨테이너는 의문의 여지가 거의 없습니다.이 경우 Rails가 차선책이라고 생각합니다.

GWT는 훌륭한 커뮤니티와 함께 고품질입니다.그러나 사물의 모양을 조정하려면 CSS를 알아야합니다. 원하는 경우 일반 웹처럼 CSS가 많은 레이아웃을 수행 할 수 있습니다.GWT-ext 또는 ExtGWT와 같은 라이브러리는 "즉시 사용할 수있는"멋진 외관을 가지고 있지만 가격 (앱에 추가 크기)이 있기 때문에 약간의 도움이 될 수 있습니다.

GWT를 사용하여 자바로 모든 것을 코딩 할 수 있으며 기존 타사 자바 스크립트 라이브러리를 통합 할 수 있습니다.아주 좋습니다.하지만 RoR을 많이 사용하지 않았기 때문에 그것에 대해 아무 말도 할 수 없습니다.

자바에 익숙하지만 자바 스크립트 / CSS에 익숙하지 않다면 GWT는 생명의 은인이 될 것입니다 (물론 배우고 싶지 않다면).CSS에는 작은 세부 사항이 너무 많습니다.IE6에서만 발생하는 2 픽셀 정렬 불량을 수정하는 데 반나절을 소비하는 것은 드문 일이 아닙니다.

백엔드에 ROR을 사용하는 것이 얼마나 쉬운 지 잘 모르겠습니다. GWT ajax 통신은 단지 서블릿이기 때문에 가능합니다.그러나 그들은 당신의 서버가 자바를 사용하지 않는다면 활용할 수없는 자바 객체를 앞뒤로 전달하기위한 정말 멋진 기능을 제공합니다.

에 대해 썼습니다.최근 GWT의 단점 .주로 단점은 애플리케이션의 일부 변경에 대한 긴 배포주기와 다소 가파른 학습 곡선입니다.노련한 Java 프로그래머로서 두 번째는 문제가 적어야하며 별도의 백엔드를 사용하는 경우 첫 번째도 완화됩니다 (애플리케이션의 '서버'부분을 변경할 때 주로 완전한 재배포가 필요하기 때문입니다).

GWT는 많은 잠재력을 가진 훌륭한 프레임 워크입니다.그래도 여전히 새롭다는 것을 명심하십시오.당신을 정말로 귀찮게 할 수있는 해결되지 않은 버그가 있으며, 일반적으로 지나치려면 추악한 해결 방법이 필요합니다.커뮤니티는 훌륭하지만 조만간 Google이 아직 답변 할 수없는 몇 가지 문제에 직면하게 될 것입니다.

하지만 해보자고합니다.GWT의 잠재력은 놀랍고 앞으로도 밝을 것입니다.

새 프로젝트에는 반드시 GWT를 사용해야합니다 (이전 프로젝트에서도 사용하기 매우 쉽습니다).

제 경험으로는 배우고 사용하는 것이 매우 빠릅니다.컴파일 된 자바 스크립트 코드는 손으로 작성할 수있는 것보다 훨씬 낫고 빠르게 작동합니다.

또 다른 이점은 코드를 디버깅 할 수 있다는 것입니다 (JavaScript만으로는 지옥입니다).

이 블로그에는 경험 많은 GWT 사용자의 의견이 포함되어 있으며 몇 가지 훌륭한 토론 포인트가 있습니다.저는 개인적으로 다양한 UI 프레임워크에 대한 엄청난 경험을 가지고 있습니다.2센트를 추가하겠습니다.살펴보자 근본적인 GWT의 장점과 단점

근본적인 장점

GWT는 웹 계층 프로그래밍을 JAVA로 전환합니다.따라서 Java의 명백한 이점이 작용하기 시작합니다.객체 지향 프로그래밍을 제공합니다.또한 뛰어난 디버깅 및 컴파일 시간 확인 기능을 제공합니다.HTML과 Javascript를 생성하므로 생성기 내에서 일부 복잡성을 숨기는 기능도 있습니다.

근본적인 단점

단점은 같은 말에서 시작된다.GWT는 웹 계층 프로그래밍을 JAVA로 전환합니다.JAVA를 알고 있다면 비즈니스 로직을 작성하기 위해 대체 언어를 찾지 못할 것입니다.자급자족하고 훌륭해요.하지만 JAVA 애플리케이션에 대한 구성을 작성하는 경우에는 그렇습니다.우리는 속성 파일, 데이터베이스, XML 등을 사용합니다.우리는 JAVA 클래스 파일에 구성을 저장하지 않습니다.잘 생각해 보세요. 왜 그럴까요?

이는 구성이 정적 데이터이기 때문입니다.종종 계층 구조가 필요합니다.읽을 수 있다고 되어 있습니다.컴파일이 필요하지 않습니다.JAVA 프로그래밍 언어에 대한 지식이 필요하지 않습니다.간단히 말해서, 그것은 다른 볼 게임입니다.이제 문제는 이것이 우리의 논의와 어떤 관련이 있느냐는 것입니다.

이제 웹 페이지에 대해 생각해 봅시다.우리가 웹페이지를 작성할 때 비즈니스 로직을 작성한다고 생각하시나요?절대적으로하지.웹페이지는 단지 구성일 뿐입니다.계층적 컨테이너와 필드의 구성입니다.웹 페이지 자체를 생성하는 것이 아니라 웹 페이지에서 캡처하고 표시할 데이터에 대한 비즈니스 로직을 작성해야 합니다.

이전 단락에서는 매우 강력한 진술을 했습니다.이는 HTML 및 XML 기반 웹 페이지가 여전히 가장 인기 있는 웹 페이지인 이유를 설명합니다.XML은 구성을 작성하는 데 가장 적합한 비즈니스입니다.프레임워크는 비즈니스 로직(MVC 프레임워크의 목표)에서 웹 페이지를 명확하게 분리할 수 있어야 합니다.이를 통해 웹 디자이너는 프로그래밍 언어의 복잡성에 대해 걱정하지 않고 단지 XML을 구성함으로써 멋진 ​​웹 페이지를 만들기 위해 시각화 및 예술성 기술을 적용할 수 있습니다.개발자는 비즈니스 로직을 작성하기 위해 비즈니스 JAVA를 최대한 활용할 수 있습니다.

마지막으로 직접적인 영향에 대해 이야기하겠습니다.GWT는 이 원칙을 어기므로 실패할 수밖에 없습니다.웹 페이지를 작성하려면 다양한 기술을 갖춘 프로그래머가 필요하기 때문에 GWT 애플리케이션 개발 비용은 매우 높습니다.필요한 모양과 느낌은 달성하기가 매우 어렵습니다.불필요한 컴파일로 인해 웹 페이지를 수정하는 데 소요되는 시간이 매우 길어집니다.마지막으로, JAVA로 웹 페이지를 작성하기 때문에 비즈니스 로직으로 인해 웹 페이지가 손상되기가 매우 쉽습니다.당신은 자신도 모르게 피해야 할 복잡성을 도입하게 될 것입니다.

또한 Rails 프레임 워크와자바 VM 사용

우리 팀은 최근에 같은 질문을했고 특히 디자이너 플러그인이 GWT 작업을 팀의 비 자바 전문가가 더 쉽게 이용할 수 있도록했기 때문에 GWT를 선택했습니다. 이 선택을 한 사람은 GWT Designer 플러그인을 사용하지 마십시오! IE8과 호환되는 GWT 애플리케이션을 만들기 위해 업데이트 (최소한 1 년)되지 않았습니다.

우리 팀은 Chrome, FF 및 Safari에서 완벽하게 작동하는 애플리케이션 레이아웃을 거의 완성했습니다. 그런 다음 IE에서 폭발했습니다. IE 7은 부분 페이지를로드하지만 (복합 포함은 아님) IE8은 애플리케이션을로드 할 수도 없었습니다. 그냥 매달 렸어요.

디자이너 플러그인에는 IE와 호환되지 않는 CellTable 위젯 (CellTable, DeckPanel, Horizontal Panel, Vertical Panel 등)을 추가 할 수있는 버튼이 있습니다. 이는 디자이너의 도움없이 자바에서 레이아웃을 다시 작성해야 할 때 심한 고통을 유발합니다.

경험이있는 GWT 사용자는이 기능을 좋아하지만 디자이너 플러그인은 당신을 죽일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top