2011-03-31 2 views
0

스프링 MVC를 사용하여 자바 웹 개발 작업을하고 기본적으로 나는 작은 변화를 많이 만들어야하는 Agile 타입의 개발을해야한다. 때때로 나는 매번 컴파일 할 때 많은 시간을 낭비하게된다. 변화를 일으킨다. (나는 신생 기업을 위해 일하고 단위 테스트 등을하기에 충분한 시간을주지 못했다. 이상적이지 않고 필자는 장기적으로 회사에 머물 계획이 아니라 단지 찾고있다. 그 순간 더 적응하기 쉬운 방법).Java, Groovy (Grails)를 사용하여 개발 중에 재 컴파일하지 않고 코드를 테스트 할 수 있습니까?

내가하고있는 앱은 빠르게 처리해야하며 대량의 데이터 처리 (검색 엔진이 아닌 웹 검색 엔진)를 많이해야하므로 프로덕션을 위해 정기적으로 컴파일 된 Java 여야합니다. 응용 프로그램하지만 Grails 또는 그와 유사한 Groovy를 일반 Java로 작성하고 다시 컴파일하지 않고 실시간으로 테스트 코드를 작성할 수 있다면 비슷한 용도로 사용했는지 궁금합니다. 나는 컴파일 된 자바처럼 작동하도록하기 위해 얼마나 많은 노력이 필요할지 궁금하다. 이것이 초보자 용 질문이라면 Grails에 대한 대부분의 것들이 내가 스크립팅 언어를 모방하는 방향으로 향하고있는 것처럼 보이기 때문에 어디에서 정보를 찾을지는 모르겠다.

+2

태그가 왜 scala 태그인지 궁금합니다 –

+1

"단위 테스트를 할 시간이 충분하지 않습니다."그래서, 당신은 그것을 바로 할 시간이 없지만, 그것을 반복 할 시간이 있습니까? 단위 테스트에는 시간이 걸리지 않으며 시간이 절약됩니다. – RHSeeger

답변

4

민첩성은 마음의 상태이며 프로그래밍 언어 나 프레임 워크와 관련이 없습니다. 나는 단위 테스트를하지 않을 충분한 시간을 갖지 못했다.

Java로 코딩하는 경우 Groovy가 아니라 Java로 코딩하십시오. Groovy는 Java의 (거의) 수퍼 세트이기 때문에 클래스를 Groovy에 이론적으로 작성한 다음 Java로 컴파일 할 수 있지만이 방법에는 여러 가지 문제가 있습니다.

1) 코드에서 미끄러지는 것이 매우 쉽습니다. 어떤 자바가 올바르지 않습니까? 클로저는 유용 할뿐입니다 :-) 2) Grails는 Spring MVC로 쉽게 변환 할 수 없으므로이 비트도 다시 작성해야합니다.

그래서 저는 개인적으로 Groovy/Grails를 사용하지 않을 것입니다.

컴파일 할 때 정말로 전쟁을 구축하고 다시 배포한다는 의미입니까? 대부분의 IDE (Eclipse, Intellij 등)는 파일을 저장할 때 클래스를 다시 컴파일하므로 지연이 발생하지 않습니다. 그런 IDE를 사용한다고 가정하면, Eclipse 내에서 (Tomcat) 서버를 실행할 수 있으며, 물건이 자동으로 재배포되며, 필요한 경우 Tomcat이 자동으로 재시작됩니다.

아직 충분히 빠르지 않은 경우 JRebel을 사용하는 것이 좋습니다. 라이센스를 얻기 위해 돈을 많이 벌었습니다. JRebel을 사용한다는 것은 사용자가 (보통) 재배포 할 필요조차 없다는 것을 의미합니다. IDE에서 Java 파일을 변경하면 재배포 할 필요없이 서버에서 변경이 발생합니다. 나는 그것을 매우 추천 할 것이다.

내가 할 수있는 다른 한 가지는 코드에 대한 단위 테스트를 작성하는 것입니다. 이를 확인할 필요는 없지만 생산성에 도움이되는 도구입니다. 내가 여기 어떻게 할 것인지

+0

글쎄, 자동 재 컴파일에 대해 알고있다. 실제로 제대로 작동하지 않는 문제에 부딪혔다.하지만 내가 쓴 스크립트를 재 컴파일 한 다음 다시 시작하면된다. 내 애플 리케이션은 적어도 다시 컴파일하고 재시작하는 데는 좋은 분이 걸릴 것이고 때때로 이것은 유료가 될 수있다. 그렇지만 단위 테스트가 좋을 것이라고 나는 동의한다. 지금은 내가 감당할 수없는 시점에있다. 과거에 많은 일을하지 않았기 때문에 단위 테스팅을 배우는 데 시간을 낭비했습니다. – Rick

+0

또한 JRebel에 대한 정보를 주셔서 감사합니다. 그걸 살펴볼 것입니다. – Rick

+0

JRebel은 정말 고마워요! – Rick

1

여기에 설명 된대로 자바 코드 내에서 그루비 스크립트를 삽입하는 것입니다 : 당신이 다시 컴파일 할 필요없이 그루비 코드를 변경할 수있는이 방법으로

http://groovy.codehaus.org/Embedding+Groovy

. 우리는 재 컴파일 및 설치에 10-15 분이 소요되는 마지막 레거시 앱에서이 기술을 사용했습니다.

Groovy는 JVM 내에서 실행되며 동적으로 바이트 코드로 컴파일되므로, "생산 가능성"에 대해 걱정할 필요가 없습니다.

관련 문제