2014-12-09 2 views
2

우리는 GWT를 주요 프런트 엔드 기술로 사용하고 있습니다.GWT 연속 통합

우리는 Build Server & GIT를 소스 코드 관리 도구로 사용하고 있습니다.

우리의 응용 프로그램은 매우 거대하며 다른 모듈로 나뉩니다. 그러나 여전히 4GB RAM을 갖춘 로컬 개발자 컴퓨터에서 컴파일하는 데는 많은 시간이 걸립니다.

질문은 다음과 같습니다

는 지속적인 통합의 일환으로, 우리는 지역 개발자 기계 여부에 GWT 코드를 구축해야 하는가? 그렇다면 빌드 프로세스를 고정하기 위해 취해야 할 접근 방법은 무엇입니까? 개발자 용 GWT 엔터프라이즈 응용 프로그램을 빌드하는 모범 사례는 무엇입니까?

미리 도움을 주셔서 감사합니다.

안부, Niraj Salot

답변

2

1 .- 우리는 지역 개발자 기계 여부에 GWT 코드를 구축해야 하는가? 그것은 하나의 순서로 모든 시스템에 구축 할 수있는 한, 나는 등 ant build, mvn package을 실행 의미하므로

은 네, 프로젝트는 (빌드 시스템에 따라 다름)를 설정해야합니다. 이를 통해 모든 개발자는 자신이 선호하는 OS에서 프로젝트를 구축하고 실험 할 수 있으며 CI 시스템은 통합 및 생산 산출물을 테스트하고 구축 할 수 있습니다.

2- 그렇다면 빌드 프로세스를 고정하기 위해 취해야 할 접근 방법은 무엇입니까?

CI 서버에서 작성한 아티팩트 만 프로덕션 환경으로 이동할 수 있도록 환경을 구성해야합니다. 프로젝트 빌드는 특정 IDE 또는 OS 구성에 의존하지 않으므로 특별한 것은 없지만 팀에 규칙과 규칙이 적용됩니다.

3-개발자 용 GWT 엔터프라이즈 응용 프로그램을 빌드하는 모범 사례는 무엇입니까?

GWT는 Java 프로젝트를 위해 읽은 일반 연습은 GWT에 적용 할 수 있습니다 : 안정적인 빌드 시스템, 코드에 대한 품질 코드 도구 실행, 결함을 조기에 실현하기위한 CI 사용 및 많은 테스트. 클라이언트 코드가 느린에 대한 테스트를 실행하기 때문에, 테스트와 관련

4 개 .- 다른 권고

, 당신은 그래서 거의 응용 프로그램 코드가 모델 및 발표자 수업에하는 MVP 패턴을 사용하는 것이 좋습니다 당신은 실행할 수 있습니다 JVM의 단위 테스트. 그런 다음 잘 테스트 된 위젯을 신뢰하여 뷰를 구현하므로 단위 테스트를 수행 할 필요가 없습니다. 자신 만의 위젯을 만들려면 UIbinder를 사용하여 다른 위젯을 기반으로 한 컴포지션 또는 평범한 HTML을 고려하십시오. Java 코드가 많은 위젯의 경우 GWTTestCase를 사용하여 위젯을 테스트해야합니다. JVM 테스트는 매우 빨라야 개발자가 모든 상호 작용에서이를 실행하므로 GWTTestCases 및 통합 테스트는 CI로 실행할 수 있습니다.

페어 프로그래밍을하지 않으면 gerrit, IMO와 같은 검토 코드 시스템을 설치하는 것이 좋습니다. 코드 검토는 기본입니다. 코드 검토를 통해 패치를 마스터하기 전에 테스트 할 수 있습니다.

개발자주기와 관련하여 gwt-2.7.0의 수퍼 dev-mode를 사용해보십시오.개발자에게 Chrome에서 클라이언트 코드를 디버깅하는 방법 (소스 맵을 완벽하게 지원함)을 가르치고 다른 브라우저에서 디버그 제한 사항을 알려 다른 브라우저에서만 모든 플랫폼에서 앱이 작동하는지 확인하십시오. 단종 된 이후로 고전적인 모드를 사용하지 마십시오. 새 SDBG 플러그인을 사용하여 수퍼 - 개발자 모드를 Eclipse 디버거와 통합 할 수 있습니다.

+0

감사합니다. 따라서 개발자는 CI 서버가 픽업 될 주요 레포에서 뭔가를 푸시 전에 로컬 컴퓨터에서 소스 코드를 먼저 작성해야합니다. 그러나 문제는 GWT의 성능 문제를 해결할 수있는 방법에 관한 것입니다. GWT 2.6 및 수퍼 dev 모드로 시도했지만 너무 느린 .. 여기에 어떤 제안? GWT 2.7 서버 개발 모드는 성능 문제를 해결하는 것이 좋습니다? –

+0

예, 2.7이 훨씬 빠릅니다. 레. 푸시하기 전에 로컬로 빌드 : 선택 사항이지만 클리닝 커밋 기록을 보장합니다. 가능하다면 CI를 플러그인하여 코드 검토를 작성하십시오 (커밋/병합 전에 검토하면 IMO 여야 함). 그래서 devs는 전용 분기로 검토/푸시 할 수 있으며 변경 전의 CI 서버가이를 빌드합니다. 'master' /'trunk'에 합병되었습니다. 이 시간 동안 devs는 다른 작업에 대한 작업을 시작할 수 있으며, 빌드가 실패한 경우 (다른 개발자가 아직 병합되지 않았으므로 영향을주지 않고) 이전 작업으로 다시 전환 할 수 있습니다. 실제로 GWT에만 적용되는 것은 없습니다. –

+0

내 말은 개발자가 로컬에서 모든 JVM 테스트를 실행해야하며 앱 코드의 70 ~ 80 %가 작동 함을 보장합니다. 하지만 대부분의 개발자는 브라우저에서 응용 프로그램을보고 싶어하므로 토마스가 2.7에서 매우 빠르다고 말했듯이 슈퍼 데브 모드에서 실행할 수 있습니다. UI를 새로 고치면 처음으로 몇 초 안에 큰 응용 프로그램을 다시 컴파일해야합니다 그래도. 그러나 그들은 전쟁을 일으키거나 현지에서 JS를 최적화 할 필요가 없습니다. –