2010-12-14 3 views
1

처음부터 프로젝트를 시작하고 싶습니다. 저는 수년간 자바 개발자입니다. 나는 재미를 위해 얼마 전에 내 자신의 mvc 프레임 워크를 작성했다. 이제는 사내 프레임 워크를 사용하는 회사에서 일하고 있습니다. 시간과 돈을 완전히 잃어버린 것 같습니다. 나는 대규모 프로젝트를 위해 다른 숙련 된 사람들과 팀을 이뤄야한다는 생각을 존중합니다. 프로젝트의 분리는 매우 중요합니다. 그래픽 사용자, 프런트 엔드 개발자, 소프트웨어 아키텍처, 소프트웨어 개발자, 데이터베이스 전문가 등. PHP와 같은 스크립팅 언어를 사용할 위험이 없습니다.대규모 자바 프로젝트 솔루션

최근에는 모든 측면에서 대규모 프로젝트를위한 자바 기술을 연구하고 있습니다. 제가 의미하는 바는 앞 부분에서 매우 유명한 기술을 접하게되었습니다.

  • 에서 MyFaces
  • 태피스트리
  • 구글 웹 툴킷
  • 코쿤
  • 그들 모두가 가장 빠른, 가장 간단한 것을 말한다

속도는 최신 기술 및 무엇이든. 물론 단 한 명만 진실을 담을 수 있습니다. Ajax, 고객/관리자 보안, 테마, 템플릿, 국제화, 정적 페이지 캐싱, 클러스터링 및 ejb 지원을위한 빠른 구현을위한 프런트 엔드 기술이 필요합니다. 또한 IDE 지원, 커뮤니티 지원, 풍부한 설명서 및 온라인 자습서가 있어야합니다. 아직도 나는 선택할 수있는 프레임 워크에 대한 경험이 없습니다. 어쩌면 더 좋은 것이 있을까요? 그리고 가장 중요한 것은 개발 제한이있는 기술을 시작하는 위험을 감수 할 수 없다는 것입니다. 이 레이어에 대한 제안 사항이 있습니까?

비즈니스 계층에 대해서는 EJB와 JPA가 확실합니다. 미래 확장을위한 상호 운용성을 위해이 레이어의 외관을위한 웹 서비스를 고려하고 있습니다. 그러나, 나는 여전히 웹 서비스 레벨에 적용될 수있는 레이어를 확보하는 것에 대해 전혀 모른다. 그것은 나에게 여전히 문제가된다. 응용 프로그램 서버의 경우 GlassFish를 고려하고 있습니다.

마지막 질문은 개발을 위해 선택해야하는 IDE입니다. 사용하게 될 모든 기술과 관련하여 IDE는 나를 위해 구성을 수행하거나 준비된 마법사로 구성 할 수 있도록 모든 단계에서 도움이 될 것입니다. 나는 IDE가 기술을 사용하기위한 적절한 플러그인을 가지고 있다고 가정한다.

나는 너무 많은 것을 원하지만, 미래 계획에 시간과 돈을 절약하는 데 도움이되는 기술의 조합에 대한 희망이 있습니다.

귀하의 답변, 더 큰 그림을위한 경험을 듣게되어 정말 기쁘게 생각합니다.

편집 : 궁극적 인 대답은 없습니다. 나는 지금 조언을하고있다. 어떤 대답이라도 감사합니다.

+2

* 당연히 하나만 진실을 담을 수 있습니다. 사실, 그들 중 아무도 진실을 가지고있을 수는 없습니다 :-) – JeremyP

+2

보통 그들은 모두 진리의 일부를 잡고 있습니다. – bezmax

+6

"프론트 엔드 기술이 필요합니다. for ... (...). IDE 지원, 커뮤니티 지원, 풍부한 문서 및 온라인 자습서도 있어야합니다. " - 이번 시즌은 정말 어울립니다. 불행하게도 산타 클로스는 프로그래밍 프레임 워크를하지 않습니다 :/ – Jules

답변

1

글쎄, 우선, 당신의 질문은 좋지 않습니다. 모든 기술에는 밝은면과 어두운면이 있습니다. 특정 기술을 선택하려면 프로젝트에서 발생할 수있는 문제를 예측하는 데있어 모두 경험이 필요합니다. 귀하의 정의가 주어진다면 : fast implementation for ajax, customer/administrator security, themes, templates, internationalization, caching static pages, clustering and a support of ejb - 프레임 워크의 90 %는 직접 또는 일부 플러그인을 사용하여 프레임 워크를 모두 지원합니다.

또한 다양한 기술이 다양한 요구에 맞게 최적화되어 있습니다. 완벽한 기능을 갖춘 올인원 슈퍼 프레임 워크를 가질 수 없으며 가능한 모든 최선을 다합니다.프레임 워크가 매우 확장 가능하고 빠르다는 것을 감안할 때 (예 : 스프링 및/또는 포틀릿) 일부 작은 작업을 구성하기가 어렵습니다.

제가 권장 할 수있는 유일한 점은 "Java Web Framework Comparison"이라는 Google을 사용하는 것이 가장 좋습니다.

IDE와 관련하여 IntelliJ Idea와 Eclipse라는 두 가지 선택 만 볼 수 있습니다. 다시 말하지만 명확한 승자가 없으므로 아직 Google에서 얻을 수있는 유일한 정보 출처입니다.

추가 : 복잡한 프로젝트는 다시 특정 프로젝트의 필요를 돕기 위해 여러 부분을 동시에 사용합니다. 그러나이를 효과적으로 수행하려면 - 혼합 된 모든 기술에서 전문가가되어야합니다.

+0

모든 프레임 워크가 어떻게 든 모든 것을 지원한다는 것을 알고 있습니다. 더 짧은 시간에 개발하는 것이 가장 큰 관심사이며 신뢰할 수있는 프레임 워크를 사용하면 발생할 수있는 가장 일반적인/특정 문제에서 나를 구할 수 있습니다. 나는 예술 웹 프레임 워크의 상태를 찾고있다. –

+0

모두가 좋아하는 '예술'이 없다. 각 종류의 '예술'은 자신 만의 독자입니다. 같은 '예술의 상태'프레임 워크에 간다 :) – bezmax

+0

의미 간단하고 강력한 =) –

1

누군가가 실제로이 질문에 대답 할 수있는 방법은 거의 없습니다. 프론트 엔드 기술 측면에서 볼 때, 프레임 워크 중 하나는 당신을 위해 작동하고 다른 것들은 그렇지 않을 것입니다. 그것은 모두 당신에게 의미있는 것에 달려 있습니다. 내 제안은 그들을 모두 밖으로 시도하고 당신이 가장 편안하다고 느끼는 것들을 선택하는 것입니다.

그렇게 말하면서 몇 가지 제안 사항이 있습니다. 먼저, Java 사용으로 제한하지 마십시오. 그것이 나 였다면 jRuby에서 실행되는 Ruby on Rails를 프론트 엔드로 사용할 것입니다. 사용 된 웹 애플리케이션을 개발하는 가장 빠른 프레임 워크이기 때문입니다. jRuby에서 실행하면 Java에 연결하여 Java 및 해당 라이브러리가 백 엔드에서 무거워지게 할 수 있습니다. ReST를 사용하여 웹 서비스를 중단하고 구현할 것입니다.

IDE의 관점에서 보면 IntelliJ IDEA와 꼭 같이 사용하십시오. 익숙해지기까지 약간의 시간이 걸릴 수 있지만, 시장에서 가장 빠른 IDE입니다. 그러나 이클립스와 넷빈은 모두 자바에 매우 좋으며 비용도 저렴하다.

다시 한 번 대답은 "달라집니다"입니다.

+0

나는 그것을 확인하기 위해 내 손을 루비에 더러운거야. 한 가지, jRuby가 java 또는 jvm 또는 ws-rpc (즉, 비즈니스 계층)와 정확히 통신하는 방법은 무엇입니까? –

+0

Ruby와 관련이 없지만 Ruby on Rails와 유사한 개념을 사용하여 만든 Grails (Groovy on Rails)가 있으며 완전히 자바입니다. – bezmax

0

위의 모든 프로젝트는 간단한 아이디어로 시작되었습니다. 그들이 견인력을 얻었을 때, 그들 모두는 일부에 유용하지만 반드시 전부는 아닌 이웃 기능을 추가했습니다. 즉, 완벽한 프레임 워크를 선택하려면 심층 분석을 수행해야합니다.

당신은 모든 사람들의 마음이 완벽하게 일치 적 있다고 가정하면, 당신은 단지 특정 프레임 워크에 일하는 사람들의 수십로 같은 마음으로 될 일이하지 않는 완벽한 이상형을 찾을하지 않을 수 있습니다. 유일한 "완벽한"적합은 당신이 직접 작성하는 것이고 심지어 프레임 워크를 개발하는 데 시간과 노력이 제한되므로 완벽하지는 않습니다. 결국, 당신은 프로그램을 작성해야하고, 프레임 워크 개발 시간은 프로그램 개발 시간과 경쟁합니다.

IDE에 관한 한, 맛과 스타일에는 차이가 있습니다. 필자는 Netbeans과 Eclipse의 오래된 스탠드 사이를 끌어 당기는 경향이 있으며 다음 IDE는 IntelliJ Idea가 될 것입니다. 기억해야 할 점은 대부분의 사람들이 하나의 IDE로 커밋 한 다음 나머지는 명예를 훼손한다는 것입니다. 따라서 좋은 비교를 얻을 수 없습니다. IDEs는 정직한 편견을 줄 수있는 사람을 배우는 데 너무 많은 시간을 필요로합니다. 좋은 후보 IDE "X"는 어떤 눈에서는 최악이고 다른 사람들에서는 최고가 될 것입니다.

+0

먼저 해답을 가져 주셔서 감사합니다. 나는 궁극적 인 답을 찾지 못한다. 나는 개인의 의견만을 찾고 있었다. –

0

다른 답변이 어떻게 보이는지 감안할 때, 나는 가장 큰 나머지 요소는 당신과 당신의 팀을위한 학습 곡선 말할 것입니다. 역할 분리에 대한 설명을 감안할 때, 주요 관심사는 Spring과 같은 가장 중요한 프레임 워크를 선택해야합니다. 여기에서, 데이터베이스 사람들은 (어떤, 최대 절전 모드, JDBC) 데이터 지속성에 대해 원하는 당신의 GUI의 사람이 그들의 프런트 엔드 (태피스트리, JSF 등) 원하는대로 선택할 수 있습니다 무엇이든 선택할 수 있습니다.

내가 역할의 뚜렷한 구분을 할 때 주된 관심사는 팀에서의 의사 소통 일 것입니다. 인터페이스 디자인에 대해 논의 할 때, 특히 프로젝트의 성공 또는 실패에서 필수적이므로 (특히 Spring을 선택하는 경우) 인터페이스 디자인에 대해 토론 할 때 높은 수준의 개방형 의사 소통인지 확인하십시오.

IDE에 관한 한 개인적인 취향입니다. 다른 게시물 (이클립스 및 IntelliJ)에서 언급 한 두 가지는 제가 가장 많이 듣는 것입니다. 이클립스는 지난 4 ~ 5 년 동안 표준 IDE였습니다. IntelliJ에 익숙하지 않지만 Spring, Hibernate 및 다른 프레임 워크와 ORM 솔루션을 지원하는 플러그인이 Eclipse에 있다는 것을 알고 있습니다. 또한 Ruby 및 PHP와 같은 다른 언어도 지원하는 플러그인이 있습니다.

3

글쎄, 나는 질문에 답할 수 있다고 생각하기 때문에 사지에 나가 구체적인 권고를 할 것이다.

난 그냥 내 스택을 권 해드립니다.

내 스택은 프런트 엔드의 경우 줄무늬, 백 엔드의 경우 Glassfish/Java EE 5입니다.

줄무늬는 작지만 강력하지만 음성 커뮤니티가있는 간단한 액션 (또는 MVC, 보트를 떠 다니는 모든 것)입니다. JPA와 (플러그 인을 통해) 긴밀하게 통합되어 있으며, 주제에 관한 아주 훌륭하고 최신의 프린터 책은 물론 훌륭한 참조 문서도 있습니다. 주요 렌더링 기술은 JSP 태그와 EL이있는 JSP입니다.

JSF/MyFaces와 같은 구성 요소 프레임 워크가 아니므로 구현이 더 간단하며 라이프 사이클이 더 간단합니다. Ajax와 잘 작동합니다.

Stripes의 핵심 요소는 HTTP 요청주기를 기반으로하기 때문에 대부분의 작업을 처리하지만 매우 가볍습니다. 선택하고 이해하기 쉽습니다. 기본 Stripes 앱을 만드는 것은 web.xml과 두 개의 jar (한 가지는 log4j)에서 몇 줄입니다. HTTP로 생각하면 Stripes가 적합합니다.

백엔드에서는 단순히 EJB와 GlassFish를 사용합니다. Java EE 6 및 GFv3은 언젠가 출시되었습니다. Java EE 5에 비해 많은 새로운 기능을 제공하며 GlassFish는 사용하려는 대부분의 웹 서비스 기술을 제공합니다. Java EE 6과 Spring은 글 머리 기호 기준으로 글 머리 기호 기준으로 거의 동일합니다. GF를보고 있으므로 상자가 통합되어 있기 때문에 EJB를 사용할 수도 있습니다. Tomcat을 사용한다면 Spring이 좋은 선택이 될 것입니다.

그리고 그게 전부입니다. 그게 전부입니다 (나는 Velocity를 원했던 것을 망설이지 만 원할 경우 쉽게 추가 할 수 있습니다.하지만 개인적으로 페이지에 사용하지 않을 것입니다. 현대 JSP가 훨씬 더 좋습니다).

Glassfish는 웹 서비스를 보호하고 Java EE 보안을 웹 응용 프로그램과 함께 사용할 수 있으며 백엔드 EJB와 웹 응용 프로그램 및 웹 서비스 간의 논리를 공유 할 수 있습니다. Stripes를 실행하기 위해 15 분간의 설정만으로도 모두 작동합니다.

NetBeans를 사용하지만 다른 IDE도 모두 작동합니다. NetBeans는 Glassfish와 통합되기 때문에 좋습니다. 구성 할 일이 하나 더 적습니다. 그것을 다운로드하고, 발사하면 작동합니다.

사용하지 않는 NetBeans 용 Stripes 플러그인이 있습니다. 나는 필요성을 보지 못했다. web.xml에 몇 줄을 추가하고 웹 사이트에서 잘라내어 붙여 넣으면 줄무늬가 다시는 보이지 않습니다. 거기에서 모든 간단한 주석이 있습니다.

구성 요소 프레임 워크의 모든 복잡성과 학습 곡선을 필요로하지 않는 한 Stripes보다 뛰어나지 않으며 GF w/Java EE 6에는 필요한 모든 것이 있습니다.

요약하면 www.stripesframework.org의 스트라이프 배포판, netbeans.org의 NetBeans 다운로드 및 stripes-stuff.sourceforge.net의 스트라이프 스트리 스트입니다. 어디서나 가져갈 수있는 견고한 기초입니다.

#stripes의 freenode에있는 Stripes IRC에 오셔서, 궁금한 점이 있으면 답해 드리겠습니다 (또는 메일 링리스트에 올랐을 때).

+0

귀하의 답변을 너무 기쁘게 생각합니다. 자세한 답변을 부탁드립니다. 그것은 정말로 유망한 것처럼 들린다! –

0

"나는 재미있는 시간 전에 내 자신의 mvc 프레임 워크를 작성했습니다."- 하루가 끝날 때, 당신이 그것에 머물지 않았다는 것을 후회할 수도 있습니다. 실제로 현재 "유명한"것보다 더 나은 기술은 아마도 나중에 조금은 유명해질 것입니다. 귀하의 목록의 절반은 이미 "유명"해졌습니다.

관련 문제