나는 StackExchange를 처음 사용하지만 도움이 될 것이라고 생각했다.
레거시 JSP 솔루션을 대체하여 새로운 Java Enterprise 애플리케이션을 작성하고 있습니다. 많은 변경으로 인해 UI와 비즈니스 로직의 일부가 완전히 다시 생각되고 구현 될 것입니다.
우리의 첫 생각은 Java EE의 표준이기 때문에 JSF였습니다. 처음에는 좋은 인상을 받았습니다. 그러나 지금은 기능적 프로토 타입을 구현하려고하는데 사용에 대해 심각한 우려가 있습니다.
우선, 내가 본 것 중 최악의 가장 복잡한 잘못된 의사 HTML / CSS / JS 믹스를 만듭니다. 그것은 웹 개발에서 배운 모든 규칙을 위반합니다. 또한 레이아웃, 디자인, 논리 및 서버와의 통신과 같이 긴밀하게 결합되어서는 안되는 요소가 함께 제공됩니다. CSS로 스타일링하거나 UI 캔디 (구성 가능한 핫키, 드래그 앤 드롭 위젯 등) 추가 또는 기타로이 출력을 어떻게 편안하게 확장 할 수 있을지 모르겠습니다.
둘째, 너무 복잡합니다. 복잡성이 뛰어납니다. 당신이 저에게 묻는다면, 그것은 기본 웹 기술의 불완전한 추상화입니다. 어떤 혜택이 있습니까? 당신이 생각한다면 수백 개의 구성 요소? 수천 개의 HTML / CSS 스 니펫, 수천 개의 JavaScript 스 니펫 및 수천 개의 jQuery 플러그인도 볼 수 있습니다. 실제로 많은 문제를 해결합니다. JSF를 사용하지 않으면 없을 것입니다. 또는 전면 컨트롤러 패턴.
마지막으로 2 년 후에 다시 시작해야한다고 생각합니다. 첫 번째 GUI 모형을 모두 구현할 수있는 방법을 모릅니다 (단, 팀에는 JSF 전문가가 없습니다). 어쩌면 우리는 어떻게 든 그것을 해킹 할 수 있습니다. 그리고 더있을 것입니다. 우리 해킹을 해킹 할 수 있다고 확신합니다. 그러나 어느 시점에서 우리는 갇힐 것입니다. 서비스 계층 위의 모든 것이 JSF를 제어합니다. 그리고 우리는 다시 시작해야 할 것입니다.
JAX-RS를 사용하여 REST API를 구현하는 것이 좋습니다. 그런 다음 클라이언트 측 MVC를 사용하여 HTML5 / Javascript 클라이언트를 작성하십시오. (또는 일부 MVC의 맛.) 그런데; 우리는 부분적으로 안드로이드 프론트 엔드를 개발하고 있기 때문에 어쨌든 REST API가 필요합니다.
JSF가 오늘날 최고의 솔루션이라는 것은 의심의 여지가 있습니다. 인터넷이 발전함에 따라 우리가 왜이 '레이크'를 사용해야하는지 알 수 없습니다.
이제 장단점은 무엇입니까? JSF를 사용하지 않겠다는 요점을 어떻게 강조 할 수 있습니까? 내 제안에 JSF를 사용하는 장점은 무엇입니까?