단일 페이지 애플리케이션을 구축하기위한 JavaScript 프레임 워크 [닫힘]
내 목표는 기존 웹 애플리케이션을 RESTful SPA ( 단일 페이지 애플리케이션 )로 마이그레이션 하는 것입니다 . 현재 여러 Javascript 웹 애플리케이션 프레임 워크를 평가하고 있습니다.
내 요구 사항은 다음과 가변적입니다.
- RESTful 데이터 레이어 (예 : ember-data)
- MV * 구조
- 동적 경로
- 테스트 지원
- 관례에 의한 코딩
- SEO 지원
- 브라우저 기록 지원
- 좋은 (API) 문서
- 생산 준비
- 공동체 공동체
등뼈
현재 응용 프로그램은 backbone.js
. 전반적으로 backbone.js
좋은 프로젝트이지만, 어디에서 일어나야하고 어떻게 구현 해야하는지 결정하는 잘 정의 된 구조가 없습니다. 변화하는 개발자와 함께 더 큰 팀에서 일하면 구조화되지 않은 코드, 유지 관리 및 이해가 어렵습니다. 이것이 제가 이미이 모든 것을 정의하는 프레임 워크를 찾고있는 이유입니다.
타다 남은 것
나는 ember.js
마지막 날을 들여다 . 접근 방식은 나에게 매우 유망 해 시청합니다. 그러나 불행히도 코드는 거의 매일 변경됩니다. 그래서 나는 그것을 생산 준비라고 부르지 않을 것입니다. 그리고 불행히도 버전 1.0이 될 때까지 기다릴 수 없습니다. 하지만 저는이 프레임 워크 스테이션있는 아이디어가 정말 마음에습니다.
모난
Angular.js
Google에서 관리하는 널리 퍼진 프레임 워크이기도합니다. 하지만 앵귤러에 익숙해지지는 않습니다. 나에게는 구조가 다소 불분명 해 보이며 프레임 워크의 각 부분에 대한 전반적인 책임에 대한 설명이 생략 구현이 회로처럼 느껴집니다. 똑바로하기 위해서 : 이것은 단지 나의 개인적인 인상 일 뿐이며 지식이 부족한 것에 근거 할 수 있습니다.
배트맨 과 유성
내가 이해했듯이 두 프레임 워크에는 서버 부분도 필요합니다. 그리고 우리는 RESTful 백엔드를 원하기 때문에 언어, 기술 또는 소프트웨어에 관계없이 원하는 것이 아닙니다. 또한 백엔드 API가 이미 존재합니다 (RoR).
녹아웃 , CanJS 및 척추
나는이 세 후보에 대해 더 깊이 들어 가지 않았다. 아마도 이것이 나의 다음 단계가 될 것입니다.
그래서 지금 내 질문 :
- 좋은 SPA 프레임 워크를 놓치고 있습니까?
- 어떤 프레임 워크를 제안 / 권장 하시겠습니까?
- 언급 된 프레임 워크를 피 하시겠습니까?
- 더 큰 SP 애플리케이션에 대한 경험은 무엇입니까?
추신 : 저는 Steven Anderson (Knockout.js의 핵심 개발자)의 "Throne of JS"컨퍼런스 (2012 년) 및 일반적인 자바 펼쳐 프레임 워크에 대한 훌륭한 블로그 게시물 을 추천하고 싶습니다 .
PS : 예, 이미 질문이 알고 있습니다. 그러나 SPA는 개발이 너무 빠르기 때문에 이미 구식입니다.
저는 최근에 프로젝트에서 JavaScript SPA 프레임 워크도 결정해야했습니다.
-
Ember를 일찍 봤고 당신과 말 생각을 했어요-정말 마음에 들었지만 아직 사용하기에는 너무 이르다고습니다 ... 제가 읽은 튜토리얼의 약 절반은 최근에 뭔가가 있었기 때문에 현재 버전에서 작동하지 않습니다. 템플릿 작동 방식이 변경되었습니다.
-
Backbone은 우리가 진지하게 본 첫 번째 프레임 워크였습니다. 왜 "잘 정의 된 구조"가 생각하는지 잘 모르겠습니다. Backbone은 Model과 View 코드를 나누는 방법에 대해 매우 명확합니다. 어떤 종류의 앱 템플릿이 준비일까요? 어쨌든 Backbone은 모델 / REST 바인딩 부분에 실제로 사용을 제안하지만 실제로 뷰 바인딩에 규정하지 않습니다. 모델 바인딩이 중요하고 Rails를 사용하고 권한이있는 작업을 쉽게 수행 할 수 있습니다. 안타깝게도 내 앱의 웹 서비스가 실제로 발생하고 모든 것에 대해 내 자신
.sync
과.parse
방법 을 작성해야 합니다. Model과 View 코드의 분리는 훌륭했지만 모든 바인딩을 처음부터 작성해야했기 때문에 그럴 가치가 없었습니다. -
Knockout은 Yin to Backbone의 Yang과 가변적입니다. Backbone이 모델에 늘어날 맞추는 곳에서 Knockout은 MVVM 프레임이 점점 늘어나고 맞추고 있습니다. 그것은 HTML에 바인드 속성에 대한 속성을
observable
사용data-bind
하여 래퍼를 사용 합니다. 결국 뷰 바인딩은 주로 앱에 필요한 것이었기 때문에 Knockout을 사용했습니다. (... 추가로, 나중에 논의 되는대로 ...) Knockout의 뷰 바인딩과 Backbone의 모델 바인딩이 마음에 드는 두 프레임 워크를 결합하는 KnockBack 도 있습니다 . -
Knockout 이후에 이것을 보았습니다. 불행히도 Knockout이 뷰 바인딩을 수행하는 방법에 대해 우리 모두는 꽤 만족스러워 보였습니다. 녹아웃보다 들어가는 것이 훨씬 더 복잡하고 어려웠습니다. 그리고 그것은 바인딩을하기 위해 많은 사용자 정의 HTML 속성을 사용합니다. 제가 좋아하는 것은 아닙니다. 나중에 Angular를 다시 살펴 보겠습니다. 프레임 워크를 정말 좋아하는 여러 사람을 만났기 때문입니다. 이 프로젝트에 너무 늦게 보았습니다.
-
이것들 중 하나를 너무 자세히 보지 않았습니다. Spine이 명시적인 Controller 개체를 사용하는 Backbone과 유사한 프레임 워크라는 것을 알고 있지만 CoffeeScript로 작성되었습니다.
후기
앞서 언급했듯이 프로젝트에서는 뷰 바인딩에 중점을 두는 것이 더 중요했기 때문에 Knockout을 사용하게되었습니다. 우리는 또한 사용하여 종료 RequireJS를 모듈화를위한 교차로 및 심부름 군 , 라우팅과 역사를 처리 할 수 재스민 뿐만 아니라, 테스트를위한 JQuery와 , 트위터 부트 스트랩 및 Underscore.js은 (그리고 아마도 더 라이브러리 나는 순간에 잊고있어).
Javascript 앱 개발은 Rails 에코 시스템보다 Java 에코 시스템과 비슷합니다. Rails는 모든 앱 (Rails 프레임 워크)에 사용할 견고한 핵심 요소를 제공하며 커뮤니티는 그 위에 많은 사용자 정의 (보석)를 제공합니다. 자바는 ... 언어를 제공합니다. 그런 다음 Java EE 또는 Spring 또는 Play 또는 Struts 또는 Tapestry를 선택할 수 있습니다. 그리고 JDBC 또는 Hibernate 또는 TopLink 또는 Ibatis를 선택하여 데이터베이스와 통신하십시오. 그런 다음 Ant 또는 Maven 또는 Gradle을 사용하여 빌드 할 수 있습니다. 그리고 그것을 실행하는 톰캣이나 부두 또는 보스 또는 WebLogin을 선택합니다. 그래서 당신이 필요로하는 무엇을 선택하는 것보다 함께 작동 선택에 더 중점있다 사용하는 프레임 워크를.
수많은 SPA가 포함 된 클라우드 서비스 프로젝트 개발을 시작한 지 1 년이 지났기 때문에 RESTful 아키텍처 요구 사항을 충족하기 위해 UI에 사용할 자바 스크립트 프레임 워크를 사용하는 것은 큰 결정이었습니다. 그리고 많은 연구 끝에 우리는 Dojo 프레임 워크를 사용하게되었습니다 .
당신이 좋아할 주요 기능 :
- 교육받은 커뮤니티와 완벽한 디자인 패턴을 생각 해낸 팀. 훌륭한 규칙과 모듈 식 / 객체 지향 아키텍처. CrossBrowser 프로그래밍 태도로 :)
- MV * 구조. 외부 .htm 템플릿으로 UI 위젯을 빌드하고 프로덕션을 위해 모든 자바 스크립트 및 템플릿을 하나의 축소 된 작은 .js로 빌드합니다.
- 상속으로 클래스를 빌드하십시오. 속성 설정자, 많은 기능 도구.
- 발행 / 구독 메커니즘 (dojo에서 이름이 지정된 주제)
- 유효성 검사 양식 컨트롤, 대화 상자 / 툴팁에서 기능이 풍부하고 사용자 정의가 가능한 (가벼운) 차트 및 데이터 그리드 솔루션에 이르기까지 많은 UI 컨트롤이 있습니다.
- DOH라는 좋은 단위 테스트 시스템입니다. 또한 마우스 / 키보드 동작을 재현하는 로봇이 있습니다.
- 모든 jquery 기능과 많은 플러그인을 포함하는 NodeList라는 쿼리 도구 (예 : JQuery).
- 훌륭하지만 완전하지는 않습니다. REST 서비스와 함께 사용할 JsonRest 모듈이 있습니다. 편리한 도구이지만 많은 기능이 부족합니다.
이러한 문제를 극복하기 위해 AJAX 폴러, 오류 처리 및 범용,로드 및 알림 솔루션을 개발했습니다. 우리는 dojo 프레임 워크 규칙 및 구조를 사용하여 매우 쉽게 수행했습니다. 그렇게하고 싶지 않다면 아마도이 부분에 대해 다른 프레임 워크를 사용해야 할 것입니다.
웹에서 훌륭한 SPA를 살펴보면 모든 SPA가 사용자 정의되고 여러 프레임 워크를 사용하고 있음을 알 수 있습니다. 그러나 Dojo에 대한 우리의 경험은 환상적이었습니다. 따라서 모든 프레임 워크가 SPA에 대해 불완전하므로 다른 프레임 워크를 생각하지 않는 것이 좋습니다. 그러나 궁극적으로 다른 옵션도 있습니다 (권장하지 않으며 세부 정보가 없음). 자동으로 UI 및 자바 스크립트를 생성하여 SPA를 구축 할 수있는 JAVA 프레임 워크를 사용합니다.
참고 URL : https://stackoverflow.com/questions/14336450/javascript-frameworks-to-build-single-page-applications
'IT' 카테고리의 다른 글
Java에는 잘못된 잘못된 데이터에 예외가 발생하지 않는 것이 있습니까? (0) | 2020.08.18 |
---|---|
최대 동시 Socket.IO 연결 (0) | 2020.08.18 |
JSON 값에 여러 줄 다수가 있습니까? (0) | 2020.08.18 |
주어진 쿠폰에서 가장 긴 회문을 반환하는 함수 작성 (0) | 2020.08.18 |
C는 이니셜 라이저에서 [N… M]은 무엇을 의미하고 있습니까? (0) | 2020.08.18 |