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 디버거와 통합 할 수 있습니다.
감사합니다. 따라서 개발자는 CI 서버가 픽업 될 주요 레포에서 뭔가를 푸시 전에 로컬 컴퓨터에서 소스 코드를 먼저 작성해야합니다. 그러나 문제는 GWT의 성능 문제를 해결할 수있는 방법에 관한 것입니다. GWT 2.6 및 수퍼 dev 모드로 시도했지만 너무 느린 .. 여기에 어떤 제안? GWT 2.7 서버 개발 모드는 성능 문제를 해결하는 것이 좋습니다? –
예, 2.7이 훨씬 빠릅니다. 레. 푸시하기 전에 로컬로 빌드 : 선택 사항이지만 클리닝 커밋 기록을 보장합니다. 가능하다면 CI를 플러그인하여 코드 검토를 작성하십시오 (커밋/병합 전에 검토하면 IMO 여야 함). 그래서 devs는 전용 분기로 검토/푸시 할 수 있으며 변경 전의 CI 서버가이를 빌드합니다. 'master' /'trunk'에 합병되었습니다. 이 시간 동안 devs는 다른 작업에 대한 작업을 시작할 수 있으며, 빌드가 실패한 경우 (다른 개발자가 아직 병합되지 않았으므로 영향을주지 않고) 이전 작업으로 다시 전환 할 수 있습니다. 실제로 GWT에만 적용되는 것은 없습니다. –
내 말은 개발자가 로컬에서 모든 JVM 테스트를 실행해야하며 앱 코드의 70 ~ 80 %가 작동 함을 보장합니다. 하지만 대부분의 개발자는 브라우저에서 응용 프로그램을보고 싶어하므로 토마스가 2.7에서 매우 빠르다고 말했듯이 슈퍼 데브 모드에서 실행할 수 있습니다. UI를 새로 고치면 처음으로 몇 초 안에 큰 응용 프로그램을 다시 컴파일해야합니다 그래도. 그러나 그들은 전쟁을 일으키거나 현지에서 JS를 최적화 할 필요가 없습니다. –