백본과 같은 프레임 워크 사용


24

현재 http://proctors.org/tv 페이지 가 있으며 수많은 jQuery 및 해킹 된 JavaScript 스파게티가있는 여러보기와 첨부 파일로 구동되며 정리하고 싶습니다. 최신 자바 스크립트 "MVC"프레임 워크는 템플릿을 사용하며 jQuery와 마찬가지로 DOM에 모든 데이터를 엄격하게 저장하지는 않습니다.

Backbone이 전면에있는 서비스 및 / 또는 뷰와 같은 것을 백엔드로 사용한다고 생각합니다.

Backbone에 대한 Do 프로젝트가 있으며 DrupalCon Denver에 BoF 또는 세션이 있다는 것을 기억합니다.

새로운 프레임 워크에서 이것을 다시 작성하거나 내가 여기있는 것을 정리하는 것이 가치가 있는지 알아 내고 싶습니다.


4
질문은 정확히 무엇입니까? 질문이 "백본이나 Ember와 같은 Javascript 프레임 워크를 Drupal과 함께 사용하고 있습니까?" 그런 다음 설문 조사이므로 Stack Exchange 사이트에서는 환영받지 못합니다. 해당 JavaScript 프레임 워크 중 하나를 사용하는 데 대한 특정 질문이 있으면 해당 질문을하십시오.
kiamlaluno

2
그는 Drupal의 자체 자바 스크립트 프레임 워크와 충분히 잘 작동하여 MDF 자바 스크립트 프레임 워크가 있는지 스스로 물어 보는 것보다 더 적은 작업을 수행 할 수 있는지 묻고 있다고 생각합니다. 나에게 공정한 것 같습니다-Drupal과 함께 시작하면 아름답게 부드럽게 진행됩니다. 다른 사람들에게는 처음부터 다시 작성하는 것이 더 좋을 것입니다. 이미 시도한 사람들에게 물어 보는 것이 공정한 것 같습니다.
user56reinstatemonica8

백본 + drupal을 실행하는 빠른 자습서를 원한다면 내 블로그 게시물 pixelite.co.nz/article/…을
masterchief

이 사람은 백본과 Drupal pixelite.co.nz/article/에
Dan Walmsley

그 사람은 위의 답변 중 하나에서 @masterchief입니다
Ryan Price

답변:


18

나는 Drupal과 함께 Ember와 Backbone을 모두 사용했지만 당신이 생각하는 방식은 아닙니다.

Ember와 Backbone은 웹 응용 프로그램을 만드는 훌륭한 도구이지만 Drupal과 함께 사용하기에 좋은 도구는 아닙니다. 웹 앱을 만들 때 원하는 것은 가볍고 빠릅니다. 즉각적인 응답 시간이되면 사용자에게 빠른 느낌을 줄 수 있기를 바랍니다. 확장 성을 높이기 위해 가볍기를 원합니다. Drupal은 빠르지 않습니다. Drupal 부트 스트랩 전체는 웹 앱에 REST API를 제공하기 만하면 많은 다른 옵션과 비교하여 시간이 오래 걸립니다. Drupal은 PHP이므로 동시 사용자 수를 제한하는 RAM을 많이 사용합니다.

Drupal이 이렇게 나쁘면 왜 사용합니까?

Drupal의 탁월한 기능을 위해 Drupal을 사용해야합니다 (CMS). 과거에 웹앱이 필요한 프로젝트로 수행 한 작업은 Drupal을 사용하여 웹앱을 중심으로 CMS를 만드는 것입니다. 블로그, 컨텐츠 목록 및 좋아요와 같은 항목을 작성합니다. 또한 스키마 정의와 같은 백엔드 항목과 Drupal을 사용하는 것이 적합한 다른 항목을 정의하는 모듈을 개발하여 개발이 훨씬 쉬워졌습니다.

Drupal을 사용하여 웹 애플리케이션에 필요한 REST API를 작성하는 대신 Node.js를 사용하여 실제 REST API를 작성하고 웹 애플리케이션에 필요한 AJAX 호출을 확인했습니다. Node.js는이 작업을 수행하는 데 탁월합니다. 매우 빠릅니다 (물건 목록의 경우 30ms의 낮은 응답 시간). 서버의 JavaScript는 비동기 동작을 사용하기 때문에 매우 가볍습니다. Node.js 서버는 일반적으로 PHP가 100을 처리 할 수있는 수천 명의 동시 사용자를 처리 할 수 ​​있습니다. 또한 Node.js는 JavaScript이므로 많은 것을 재사용 할 수 있습니다 코드 서버 및 클라이언트 측 JavaScript에서 클라이언트 측과 PHP에서 서버 측을 모두 구현하지 않고 문자 그대로 동일한 유효성 검사 코드를 작성할 수 있습니다. 몇 주 안에 뮌헨의 Drupal con에 가려면 node.js 프레젠테이션을 시청하는 것이 좋습니다..

따라서 개발자 인 경우 비슷한 설정을 수행하는 것이 좋으며 Drupal을 실제로 잘 사용하는 데만 사용하십시오. 간단한 웹 응용 프로그램을 만들고 싶지만 많은 사용자를 기대하지 않는 경우 Drupal을 백엔드로 사용하면 개발 시간에 도움이 될 수 있습니다.


Drupal 8 업데이트

Drupal 8이 출시되면서 위의 내용 중 일부는 여전히 유효하지만 이전과 동일하지는 않습니다. Drupal 8은 Node.js, Rails, Django 등과 같은 경량 툴이 아닌 Drupal 7과 같습니다. JavaScript 앱은 주로 다양한 서비스를 사용하므로 Drupal이이를위한 최고의 툴인지 여전히 고려해야합니다.

Drupal 8에서는 많은 것들이 개선되었습니다. 서비스는 훨씬 기본적이며 Symphony는 요청 / 응답을 주도합니다. Drupal 8은 고급 캐싱과 모든 훌륭한 기능을 통해 많은 흥미로운 가능성을 가지고 있습니다. 그러나 Drupal 8의 모든 장점에도 불구하고 여전히 경량 응용 프로그램보다 훨씬 무겁습니다. Drupal 8이 빠른 웹 서비스 제공 업체로 얼마나 성공적으로 사용될 수 있는지 말하기는 어렵습니다.

그럼에도 불구하고 모든 것이 말되고 행해지면서 나의 일반적인 추천은 동일하게 유지됩니다. Drupal 개발자이기 때문에 Drupal은 익숙하기 때문에 모든 것에 쉽게 사용할 수 있습니다. 안전하다고 느끼고 Drupal 거의 모든 용도로 사용할 있습니다. Drupal을 어떤 용도로든 사용할 수 있지만 그것이 모든 것에 가장 적합한 도구라는 것을 의미하지는 않습니다. 건전한 분석을 수행하고 IT 프로젝트에 사용하려는 도구의 강점과 약점을 이해하면 항상 큰 도움이 될 것이며 기대에 미치지 못하는 결과로 교착 상태에 빠지지 않도록 도울 수 있습니다. .


재미있는 접근법. drupal.org/project/nodejs 를 사용하고 있습니까, 아니면 Drupal DB에 자신의 인터페이스를 사용하고 있습니까?
mpdonadio

@ googletorp, phusion 승객과 함께 일했으며 캐싱 및 서버 최적화 없이는 성능을 향상시킬 수 없으며 모든 서버 측 스크립팅 언어 (js 제외)에는 상당한 양의 차단 문제가 있습니다. 사실 저는 오픈 소스 커뮤니티에서 일부 전용 성능 지원과 매우 사용하기 쉽기 때문에 루비에서 PHP로 전환했습니다. Nodejs는 다른 언어에 비해 항상 더 빠릅니다.
Minty

어쨌든 요점은 Drupal이 훌륭한 서비스 모듈 프레임 워크를 제공하기 때문에 클라이언트 측에서 데이터 처리, 특히 세션 및 자료 처리에 대한 지식을 공유 할 수 있다고 생각했습니다.
Minty

@Minty Nodejs에는 Drupal과의 통합을위한 헬퍼 패키지가 있습니다 : github.com/mikl/node-drupal 실제 세션 처리는 수행 방법 / 작업에 따라 다릅니다. CORS 등이지만 보통 Drupal session_id를 쿠키 또는 요청 헤더에 보냅니다.
googletorp

방금이 멋진 백본 문서 github.com/kjbekkelund/writings/blob/master/published/…를 읽었 으며 man backbone은 JavaScript를 구성하고 라우팅 시스템을 통해 AJAX 콜백과 함께 사용하는 좋은 방법입니다. Drupal은 동일한 라우팅 특성에 의존하기 때문에 Drupal과 결합하지 않겠습니까?
AlxVallejo

6

최근에 첫 번째 백본 + drupal 응용 프로그램을 개발하기 시작했으며 실제로 즐기고 있습니다. 서비스, ​​서비스 뷰 및 필수 라이브러리와 함께 백본 모듈 사용 프로젝트는 매우 간단합니다. 다양한 콘텐츠를 표시하는 추가 뉴스 슬라이더와 함께 다양한 데이터를 표시하는 6 페이지의 콘텐츠 관리 회전식 슬라이드 쇼를 만듭니다. 이 페이지는 사용자 상호 작용없이 다양한 화면에 표시되므로 브라우저를 새로 고치지 않고 프런트 엔드 컨텐츠를 업데이트 할 수 있어야합니다. Drupal이 콘텐츠를 관리하고 백본을 제어하고 db와 동기화하는 Drupal + Backbone 앱에 완벽하게 적합하다고 생각했습니다. 나는 멋진 API를 가지고 있으며 MVC 스타일의 코딩에 잘 맞는 jquery.cycle 2에 통합되었습니다 .

나는 왜 사람들이 Drupal을 백엔드 프레임 워크로 사용할 때 코를 찌를 수 있는지 알 수 있지만 Drupal과 같은 작은 응용 프로그램 에서는 가볍고 빠릅니다 . 최소한의 설치로 시작하여 contrib 및 코어 모듈을 신중하게 선택하여이를 달성했습니다. 나는 지금 백본에 대한 150 줄의 커스텀 JS 코드로 약 50 개의 모듈을 사용하고 있으며 거의 ​​끝났습니다.

결국 뷰를 컬렉션 등으로 사용하는 방법을 보여주는 예제가 없으므로 백본 모듈에 대한 예제로 이것을 다시 커밋하려고합니다.

결론적으로:

프로젝트가 잘 일치한다면 이것으로 살펴볼 가치가 있습니다. 내 생각에, Drupal의 무거움으로 인한 성능 문제는 Varnish와 같은 캐싱 메커니즘을 사용하거나 부스트 또는 코어 페이지 캐싱을 통해 쉽게 해결할 수 있습니다. Drupal을 사용한 유연성과 개발 속도는 나에게 부정적인 영향을 미칩니다.


5

기본적인 대답은 그렇습니다, 어떤 사람들은 그것을 사용하고 있습니다. 나는 그것을 직접 사용하지는 않았지만 (아직 좋은 프로젝트 일치를 찾지 못했음) 현재 Drupal 그룹 이 있으며 Drupal 8 Initiatives 중 하나 인 Web Services 및 Context Core Initiative 에도 적합합니다. . DrupalCon Munich 2012 의 Frontend에있는 Backbone.js 세션도 있습니다 .

프라임 타임에 아직 준비가되었는지 모르겠지만 내 의견으로는 이점을 얻을 수 있고 구현이 아닌 인터페이스에 JS 측을 설계 할 수 있는지에 대한 개념 증명을 만들 가치가 있습니다. . 어떤 이유로 든 Drupal을 구제하기로 결정한 경우 백엔드 변경 사항을 격리하는 데 도움이됩니다.


1
본질적으로 : Stackexchange는이 시점에서 특별한 경우 이므로이 질문에 대한 잘못된 장소입니다. gdo
paul-m

그룹과의 연결에 대한 MPD 감사합니다. 나는 아마 거기에 따라갈 것이다. 나는 사용자 그룹에 대해 물어 보았습니다. 누가 거기에 있는지에 달려 있습니다. 여전히 Stack Exchange에서 질문을 시작해야하는 시점을 파악하려고합니다. 나는 이것이 하나 이상의 정답을 가질 것이라고 생각했기 때문에 맞는 것처럼 보였다.
Ryan Price

3

이것이 유용하다는 것을 알 수 있습니다. JQuery 기반 스크립트를 백본 스크립트로 변환하는 예를 보여줍니다. 분명히 drupal_add_js를 사용하거나 모듈을 사용하여 라이브러리로 backbone.js를 가져와야합니다.

https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/


안녕하세요 크레이그, 링크 주셔서 감사합니다. Drupal과 관련하여 구체적으로 사용되는 리소스가 있습니까? 감사합니다
Minty
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.