Google Web Toolkit(GWT)을 완전한 Java 웹 프레임워크로 사용하는 것이 합리적입니까?

StackOverflow https://stackoverflow.com/questions/744515

문제

나는 GWT가 전체 프리젠테이션 계층의 기반이 될 수 있다는 가능성에 관심이 있습니다.

누군가가 이것을 성공적으로 시도했는지 또는 실패했는지, 그리고 내가 이것을 시도하지 못하도록 설득하거나 설득하지 못하게 할 수 있는지 알고 싶습니다.

도움이 되었습니까?

해결책

저는 약 1년 전에 GWT에서 일했습니다.당시에는 다음과 같은 몇 가지 주의 사항이 있지만 좋은 아이디어처럼 보였습니다.

  • API의 일부 부분에 "잡은" 문제가 있었습니다. 이는 아마도 실제로는 Java처럼 작동하는 별도로 컴파일된 환경에 대해 작성하고 있는데 마치 Java에 있는 것처럼 코딩하고 있다는 사실과 관련이 있을 것입니다. 따라서 몇 가지 잘못된 가정을 합니다(이 경우 중첩된 값을 프런트 엔드에 전달).나는 gwt 컴파일을 위해 32비트 jvm을 사용하기 위해 내 개미 스크립트를 다시 작성하는 또 다른 방법이 있다고 생각합니다.
  • 나는 외관을 조정하려고 약간의 시간을 보냈습니다. 완성된 프로젝트를 배포한 적이 없기 때문에 이것이 전문가 수준에 도달하는 데 얼마나 많은 작업이 필요할지는 잘 모르겠지만 (논리적으로) 그럴 것 같았습니다. 스윙 인터페이스를 조정하는 것과 비슷합니다.HTML보다 시각적으로 조금 더 다루기 힘들 수도 있습니다.
  • 최종 제품에서는 Ajax가 너무 숨겨져 있기 때문에 성능이 좋지 않으면 어떻게 해야할지 약간의 걱정이 있었습니다.

즉, 확실히 가지고 놀만한 가치가 있는 것 같고, 특히 지금은 훨씬 더 성숙해졌다는 점을 감안할 때 내 경험은 아주 오래 전 인터넷에서 이루어졌습니다.또한 이는 대부분의 MVC 프레임워크에서 GUI 코드를 개발하는 매우 다른(그리고 참신한) 방법이라는 점을 지적할 가치가 있으며, 그 외에 다른 이유가 없다면 살펴볼 가치가 있습니다.

내 생각에는 그래픽 요구 사항이 매우 까다로운 고부하 전문 사이트를 구축하는 경우 GWT는 아마도 좋은 선택이 아닐 것입니다. 그렇지 않으면 괜찮습니다.

다른 팁

GWT는 프리젠 테이션 레이어를 처리 할 것이라고 언급했습니다. Java에서도 비즈니스 계층을 하시겠습니까? 그렇다면, 나는 당신을 향하고 싶습니다 그것은 밀 툴킷을 밀어 넣습니다, 그것은 정확히 이것을합니다. 그것은 GWT를 사용하여 GUI 구성 요소를 렌더링하여 Java로 완전히 응용 프로그램을 수행 할 수있는 툴킷입니다. 코인을 시도하는 용어는 "서버 구동 RIA"라고 생각합니다.

나는 PHP 배경에서 왔지만 즉시 툴킷을 좋아했습니다. 그러나 내가 더 이상 말하지 않고 자신의 결정을 내릴 수있는 것이 좋습니다.

공개 : 나는 내 의견과 관련이 없지만 It Mill에서 일합니다.

GWT는 비교적 새롭습니다. 컴파일 프로세스는 코드 기반이 증가함에 따라 약간 느려지는 경향이 있습니다. 우리가 함께 일할 때 우리는 더 정교한 위젯의 레이아웃과 렌더링에 많은 문제가 발견되었으며 에뮬레이터는 실제 서버와 완전히 다릅니다. 또한, 우리는 오른쪽에서 왼쪽 언어로 i18N에 문제가있었습니다 ...

대체로 GWT는 젊은 기술의 (일반적인가?) 문제가 있습니다. 그러나 그것은 당신이 이름을 지은대로 ajaxify와 같은 특정 것을 정말 쉽게 만듭니다.

우리는 매우 큰 프로젝트를 위해이 작업을 수행했으며, 그것이 제한, 강점 및 약점이라는 것을 알고있는 한 훌륭하게 작동합니다. CSS를 사용하여 다른 HTML 페이지처럼 피부를 피우기 때문에 재미있게 프레젠테이션이 가장 적은 프리젠 테이션이었습니다. 이 프로젝트는 생중계되었고 완벽하게 달려서 불만이 없습니다.

내가 찾은 함정은 여기서 찾을 수 있습니다.

가장 큰 GWT 함정?

우리는 GWT에서 완료된 전체 프리젠 테이션 계층과 함께 대규모 HR 포털 응용 프로그램을 개발했습니다. 백엔드는 봄입니다. 그것은 모두 매우 잘 작동하며 UI는 사용자에 의해 매우 호평을 받았습니다. 매우 중요한 것은 새로운 기능을 추가하고 응용 프로그램을 유지하는 것이 쉽습니다. JavaScript 라이브러리를 사용하여 비교할 수 있고 관리 할 수있는 일을하는 것이 훨씬 더 어려울 것이라고 생각합니다.

당신은 일종의 클라이언트 측 프레임 워크가 필요하거나 결국 하나를 작성하게됩니다 (우리가했던 것처럼) : 우리의 앱은 구축되었습니다. GWT 포틀릿 (무료 및 오픈 소스).

우리는 다른 배포를 위해 앱을 스키닝하기 위해 HTML 조각을 사용하며 각 "페이지"의 레이아웃은 XML 파일에 저장됩니다.

이 Raible 비디오에서 그것에 대한 좋은 정보 : http://raibledesigns.com/rd/entry/my_drunk_on_software_interview

GWT 자체는 프레임워크가 아닌 UI 향상 라이브러리입니다.Google App Engine과 함께 사용하면 기본 프레임워크를 갖게 됩니다.(그것은 다른 이야기이고, 그것을 보면서 나는 그것을 우리 아키텍처에 포함하지 않기로 결정했습니다).

그것은 훌륭한 라이브러리입니다. 우리는 그것으로 몇 가지 놀라운 일을 해냈습니다.그러나 라이브러리이기 때문에 아키텍처가 허용하는 만큼만 우수합니다.

ANT가 진행되는 한 64비트 컴파일러에는 문제가 없습니다.

u003Cjava failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler" dir="${dir.GWTCompile}"> <-dir.gwtCompile은 GWT를 포함하는 디렉토리입니다.u003Cclasspath> 클래스 경로 u003C/classpath>u003Cjvmarg value="-${gwt.maxMem}"/>u003Carg value="@{gwt.baseModule}" />u003Carg value="DEBUG" />u003Carg value="-strict" />u003C/java>

생성된 코드까지 살펴보고 싶다면 전쟁에 필요한 모든 것이 있습니다.(오픈소스이기도 하니 거기서 보시면 됩니다.)

컴파일 프로세스 중에 GWT가 수행하는 작업은 다음과 같습니다.다양한 브라우저 세트에 대한 여러 JS 라이브러리 사본을 생성합니다(컴파일하는 데 몇 분이 걸릴 수 있는 이유 중 하나). 필요에 따라 이를 추가/제거할 수 있습니다.이렇게 하면 다운로드해야 하는 JS 패키지가 줄어들고 if(EI) this else if(FF) that이 필요하지 않으므로 속도가 향상됩니다.그러나 로컬 디버그를 수행할 때(적어도 Eclipse에서) 기다릴 필요가 없으므로 빌드 서버에 남겨 둘 수 있습니다(또는 수동으로 빌드하고 배포해야 하는 경우(네안데르탈인)).

GWT의 단점.(거의 순수하게) 자바스크립트 클라이언트 측이므로 이를 지원하지 않거나 버전 중 하나를 지원하는 경우에는 활용할 수 없습니다.따라서 iPad 및 iPhone과 같은 경우 mgwt와 같은 격차를 해소하도록 설계된 추가 라이브러리를 사용하지 않으면 몇 가지 문제가 발생할 수 있습니다.

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