문제

나는 이미 생산에 대한 일부 애플리케이션이있는 고객이 있으므로 이미이 다음 프로젝트에 대한 생산 환경에 대한 결정을 내 렸습니다.

  • Sun Iplanet 6.1 SP7 (w/ apache)
  • JDK 1.6
  • Oracle Weblogic 10 mp3
  • 오라클 10g
  • 1024 비트 SSL

또한 웹 앱에 대한 회사 표준도 있습니다.

  • 수코양이
  • 스트럿
  • Safari, Firefox, IE6, IE7과의 호환성

또한이 앱은 Java EE 5 환경 (아마도 웹 컨테이너 만)에 대한 전체가 필요하지 않을 것이라고 들었지만 클라이언트 EJB 등을 통해 별도의 Weblogic 인스턴스에서 호스팅 된 하나와 통신해야하며 다양한 웹을 수행해야합니다. 다른 기업 서비스에 대한 서비스 호출.

나는이 새로운 팀에 대한 우리의 개발 및 시험 환경이 어떻게 보일지에 대한 결정을 내리는 임무를 맡았습니다 (아마도 저를 포함하여 2 ~ 3 명의 사람들이지만 앞으로 몇 달 동안 성장할 수 있습니다). 나는 사람들이 사랑하는 IDE를 사용하고 LocalHost에서 좋은 개발 경험을 할 수있는 곳을 만들고 싶지만 여전히 테스트 환경에서 배포를위한 부드러운 경로를 가지고 있으며 다시 생산 환경으로 향합니다. 내 생각은 로컬 워크 스테이션에서 HTTP가 괜찮지 만 통합 테스트 서버는 프로덕션 서버와 똑같이 보이며 모든 트래픽이 HTTP 여야한다는 것입니다.

Devs 로컬 워크 스테이션이 매우 다양 할 것이며 로컬 워크 스테이션에서 Mac OS X 10.6 (Snow Leopard) 또는 Windows 7을 실행하고있을 수 있지만 일반적인 테스트 서버도 사양해야합니다. 지역 개발, 테스트 및 생산으로의 멋진 부드러운 경로?

편집 : 죄송합니다. 기술 스택이라고 말하면 ANT + JBOSS + TOMCAT + ORACLE XE vs. MAVEN + GERONIMO + DERBY를 의미합니다. 기본적으로 각 개발 머신 및 테스트 서버에 설치 해야하는 콘크리트 사양 구현 목록과 유연한 DEV 환경과 테스트 및 생산 환경으로의 원활한 전환을 제공합니다.

EDIT2 :이 앱이 정보를 전혀 지속해야한다면이 앱을 언급 할 가치가있을 것입니다 (저는 가정합니다. ~ 할 것이다 경우), 그것이 무엇이든 복잡하지 않을 것입니다. 아마도 그것은 기초 제품 데이터베이스와 유사 할 것입니다.

도움이 되었습니까?

해결책

나는 갈 것이다 :

  1. 허드슨 강 야간 빌드의 경우 (또는 모든 체크인)
  2. 수은제 또는 파괴 소스 제어 용 (Windows 및 Mac에서 모두 작동)
  3. 봄, 봄, 봄. 예, 진지합니다. 봄은 단순한 의존성 주입보다 더 많은 문제를 해결합니다. 보안, 배치 처리, 트랜잭션 처리, 시스템 통합과 마찬가지로.
  4. eclipselink ORM의 경우. 그것은 많은 고급 기능 (최대 절전 모드 부족)이 종종 저를 저장했습니다 (괜찮은 저장 프로 시저 지원).
  5. 가벼운 무게 컨테이너와 같은 부두, Tomcat 또는 수지. 당신은 당신이 Geronimo 또는 Jboss.
  6. Deltawalker 병합/diff 도구의 경우 (다시 모든 플랫폼에서 작동 함).
  7. 고급 데이터베이스 기능을 사용하려면 oraclexe (그리고 sqldeveloper). 둘 다 좋은 도구입니다. 그렇지 않다면 빛이 빛납니다 H2 또는 더비 괜찮습니다.
  8. 주니 (또는 testng) 그리고 모키토 단위 테스트/조롱 용.
  9. 사용하지 마십시오 스트럿. 진지하게, 적어도 함께 가십시오 struts2 또는 바람직하게는 같은 것입니다 JSF2, 줄무늬 또는 GWT.
  10. 괜찮은 버그 트랙커와 같은 Jtrac, 레드 민 또는 Fogbugz
  11. 셀렌 통합 테스트 용
  12. 소나 코드 품질

다른 IDE를 사용하려는 경우 Maven 각 IDE를 pom.xml에서 구성 할 수있게되므로 좋은 생각 일 수 있습니다 (Intellij/netbeans에서 잘 작동합니다). 그러나 내가 당신에게 줄 수있는 최고의 조언은 이것입니다.

  • 이미 알고 있고 경험이있는 것과 함께 가십시오. 스트럿에서 JSF2로 밤새 통과하지 않습니다.
  • 당신이 얻을 수있는 최고의 도구를 얻으십시오.

행복한 해킹

다른 팁

"기술 스택"이라고 말할 때 정확히 무엇을 요구하는지는 확실하지 않습니다. 서버, 라이브러리, 도구 빌드를 의미합니까? 어쨌든, 다음은 몇 가지 Flippant 권장 사항입니다.

  • 지속적인 통합을위한 허드슨
  • 당신이 정말로 필요하지 않는 한 Maven을 피하십시오. 그것은 구성에 대한 선언적 의존성과 협약에 대한 약속으로 사이렌처럼 당신을 유혹하지만, 이론과는 매우 다릅니다.
  • 표준 Java SE/Java EE API를 선호하는 경우 스프링을 사용하십시오. 더 간단한 API 외에도 SaterJ와 직접 작업하는 것보다 훨씬 쉬운 테스트 가능성 및 AOP 기능을 용이하게합니다. 물론 느슨한 커플 링을 지원하는 의존성 주입도 제공합니다.
  • ORM의 최대 절전 모드 또는 지속성 요구 사항이 매우 간단한 경우 Spring-JDBC가 충분할 수 있습니다.

테스트 환경은 생산을 정확하게 복제해야합니다. 테스트 환경에서 성능 테스트를 수행하십시오. 하드웨어가 우려이고 클러스터의 서버 수를 제한 해야하는 경우 테스트 중에 서버 수를 적게 만듭니다. 그러나 IPLANET (APACHE)에서와 동일한 ENV를 복제하십시오. ) + Weblogic + Oracle DB So on ....

로컬 환경에 관한 한 Tomcat (웹 컨테이너 만 필요)을 사용할 수 있으며 EJB 클라이언트의 경우 항아리를 묶고 원격 통화를 할 수 있습니다 (원격 앱으로 원격 호출을하는 경우). 로컬 EJB를 통해 현지 전화를 걸고 있으면 현지 박스에서 개발에 Weblogic을 사용해야합니다.

동일한 IDE를 사용해보십시오 (대부분 개발자 선택 문제) OS에 관한 한, 호환되는 IDE를 사용하는 경우 코드를 구축 할 수 있기 때문에 문제가되지 않습니다.

또한 IDE가 Debug 모드에서 코드를 실행하기 위해 Tomcat (사용하는 경우) 또는 Weblogic을 단단히 부부하는지 확인하십시오.

매우 중요한 것은 먼저 코드 구조를 결정한 다음 버전 제어에서 확인하여 모든 IDE에서 동일한 구조로 확인 / 체크 아웃을 통해 모든 개발자간에 동일한 구조가 공유됩니다. 모든 릴리스에서 CVS 또는 버전 제어로 코드를 분기 한 다음 헤드에서 체크 아웃합니다. 단일 빌드 파일을 사용하고 로컬 박스에 환경을 구축하기 위해 설정 문서를 유지하십시오. 또한 사용하는 프레임 워크와 관련하여 코딩 및 유지 보수에 가장 편한 것을 선택합니다.이 방법은 코드의 버그 수를 줄입니다. 대부분의 사람들은 스프링/최대 절차 조합을 사용하지만 프로젝트에 적합한 지 여부에 따라 달라집니다. 도움이 되었기를 바랍니다.

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