"단일 페이지 웹앱"에 대한 아키텍처 지침


12

"단일 페이지"웹 응용 프로그램을 빌드하기위한 측면 프로젝트를 시작하겠습니다. 응용 프로그램은 실시간이어야하며 변경이 발생할 때 클라이언트에 업데이트를 보냅니다.

이러한 종류의 응용 프로그램을위한 아키텍처에 대한 모범 사례 접근 방법에 대한 유용한 자료가 있습니까? 지금까지 찾은 최고의 리소스는 trello 아키텍처 기사입니다. http://blog.fogcreek.com/the-trello-tech-stack/

나에게이 아키텍처는 매우 섹시하지만 비슷한 요구 사항이 있지만 특정 요구 사항에 맞게 과도하게 엔지니어링되었을 수 있습니다. 서버 측에서 서브 / 펍을 귀찮게 해야하는지 궁금합니다. 무슨 일이 발생했을 때 (예 : 클라이언트가 서버에 업데이트를 보낼 때, 업데이트를 db에 쓰는 경우) 서버에서 업데이트를 푸시 할 수는 없습니다. 클라이언트에 업데이트를 보냅니다).

기술 측면에서는 아키텍처 지침이 어느 정도의 기본 서버 기술에도 적용되지만 Node.JS 또는 Ruby에서이를 구축하려고합니다.

답변:


5

Backbone.js와 같은 클라이언트 측 MVC를 명확하게 살펴볼 것입니다. 매우 가볍지 만 응용 프로그램에 필요한 구조를 많이 제공합니다. 백본에 대해 더 많이 배우는 가장 빠른 방법으로 Peepcode 스크린 캐스트를 적극 권장합니다.

이와 같은 클라이언트 측 MVC의 좋은 아키텍처 이점은 구조화 된 JSON (JSON over REST)과 같이 서버 측으로 데이터 를 보다 쉽게 ​​교환 할 수 있다는 사실입니다 .

Backbone.js는이를 즉시 지원합니다. 클라이언트와 서버간에 모델을 JSON으로 직렬화 할 수 있으므로 요청 / 응답 측면에서 생각하지 않아도됩니다.

서버 측의 Node.js와 같은 것이이 모델에 호소력을 발휘합니다.이 모델에서는 데이터를 푸시하고 가져 오기 위해 단기적으로 잠재적으로 비동기적인 요청이 많이있을 수 있습니다.

하나의 대안 .... Comet 과 같은 모델은 웹 펍 / 서브를 달성하는 간단한 방법 일 수 있으며이를 지원하는 서버 측 프레임 워크가 있습니다.


건배, 나는 클라이언트 측에 MV * FW를 사용할 생각을하고 있었고 Backbone에 대해 배우고있다. 좋은 팁.
Matt Roberts

1

프론트 엔드 용 MV * 자바 스크립트 프레임 워크를 사용할 것입니다. 나는 단일 페이지 웹 응용 프로그램을 만들고 있으며 많은 솔루션을 조사한 후 Backbone.js로 끝났습니다. 이 솔루션이 기본 기능을 최대한 제공하지는 못했지만 처음부터 핵심 기반을 제공했으며 내가 본 다른 솔루션보다 훨씬 유연합니다.

다른 인기있는 솔루션으로는 Ember.js와 Knockout.js가 있습니다.이 기능은 기본 기능을 더 많이 제공하지만 기능을 사용하려면 규칙을 따라야합니다 (작동하지 않을 수도 있습니다).


1

이것은 더 똑똑한 IMO입니다. 프론트 엔드의 AngularJS는 훌륭하기 때문에. 펍 / 서브의 장점과 최소한의 소란으로 역동적이고 섹시한 백엔드를위한 NodeJS / express / SocketIO. 그리고 보너스로, 앞면과 뒷면에 하나의 언어를 사용할 수 있습니다!

예를 들어 동일한 https://github.com/hackify/hackify-server 구현을 확인하십시오.

한 가지주의 사항, 일부 사람들은 sockjs라는 socketio의 NodeJS 대안을 권장하지만이를 확인하지 않았으므로 권장하지 않습니다.


0

당신이보고있는 것 같은 사운드는 아파치 2.2PHP 또는 톰캣 애플리케이션 서버 간단한 서블릿 핸들 요청과 함께. 목수의 망치와 못에 해당합니다. 복잡한 것은 없지만 작업이 완료됩니다. 기능을 확장해야한다면 Tomcat이 jsp와 jsf를 지원할 수 있기 때문에 항상 그렇게 할 수 있습니다.

프론트 엔드와 관련하여 jQuery ( $ .post , $ .load , $ .ajax ) 를 사용하는 것이 편안 합니다 .jQuery UI 와 함께 페이지에 기능을 추가하는 수단으로 두 배 편리합니다.


0

실시간 클라이언트 업데이트를 원하는 경우 장기 차단 "AJAX"호출을 구현하거나 최신 웹 소켓을 사용하는 것이 좋습니다. 이를 통해 약간의 자바 스크립트로 처리 할 연결된 클라이언트로 업데이트를 푸시 할 수 있습니다.

현재의 최신 기술 (또는 최신 유행)은 Google의 AngularJS입니다. SPA를보다 쉽게 ​​작성할 수 있도록 부분적으로 설계되었습니다.


0

반응 해야하는 단일 페이지 응용 프로그램을 빌드하기 위해 평균 스택 (node.js, mongo ...)에 가까운 것을 원하면 meteor을 선택 합니다. 특히 프로토 타입을 제작하고 처음부터 시작하는 경우에 특히 그렇습니다.

앵귤러 프론트 엔드가있는 레일은 괜찮은 선택이지만, 특정 젬을 설치하고, 긴 폴링 또는 sockjs 라이브러리를 함께 연결해야하기 때문에 "변경이 발생할 때 클라이언트에 업데이트를 전송하는"시간이 더 어려워집니다. .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.