문제

나는 레일을 배우고 있으며 Sinatra & Merb에 대한 아이디어가 거의 없습니다. Merb/Sinatra를 사용할 상황이 궁금합니다.

의견에 감사드립니다!

도움이 되었습니까?

해결책

Sinatra는 레일보다 훨씬 작고 가벼운 웨이트 프레임 워크입니다. 몇 가지 URL에서 파견되어 간단한 콘텐츠를 반환하는 무언가를 빨리 실행하려는 경우 사용됩니다. 살펴보십시오 시나트라 홈페이지; 그것이 "안녕하세요, 세계"를 올라 가고 실행하는 데 필요한 전부입니다. 레일에서는 전체 프로젝트 구조를 생성하고 컨트롤러와보기를 설정하고 라우팅을 설정해야합니다 (나는 그렇지 않았습니다. 한동안 Rails 앱을 작성 했으므로 "Hello, World"가 얼마나 많은 단계인지 정확히 알 수는 없지만 Sinatra보다 확실합니다). Sinatra는 또한 레일보다 의존성이 훨씬 적으므로 설치 및 실행이 더 쉽습니다.

우리는 현재 우리가 쓰고있는 일부 웹 클라이언트 라이브러리의 빠른 테스트 웹 서버로 Sinatra를 사용하고 있습니다. 하나의 단일 파일을 작성하고 해당 파일에 모든 논리를 포함시킬 수 있고 종속성이 거의 없다는 사실은 Rails 앱이있는 경우보다 작업을 수행하고 실행하는 것이 훨씬 쉽다는 것을 의미합니다.

메르브 레일에 합병되고 있습니다, 너무 빨리 곧 다른 하나를 사용해야 할 이유는 없어야합니다. 원래는 약간 가벼운 무게로 디자인되었으며 레일보다 더 분리되었습니다. Rails는 ActiveRecord를 사용할 것이라는 가정을 더 많이 내장했습니다. 그러나 두 가지를 병합 할 때 레일을 비슷한 방식으로 분리하고 있으므로 이미 레일을 배우고 있다면 아마도 그 문제를 고수하고 발전을 따르는 것이 좋습니다.

다른 팁

나는 Merb에 대해 많이 말할 수 없지만 Sinatra는 작거나 가벼운 솔루션에 매우 효과적입니다. 많은 코드로 작업하지 않거나 거대한 웹 사이트가 필요하지 않은 경우, Rails보다 빠르거나 두 배 빠른 Sinatra로 매우 효과적인 사이트를 코딩 할 수 있습니다 (내 의견으로는).

Sinatra는 또한 애플리케이션의 단편적인 조각 (예 : 프론트 엔드 통계 패키지)에 탁월합니다. 또는 같은 것 errcount, 이것은 정말 간단한 히트 카운터입니다.

따라서 Sinatra를 사용할 때 가볍고 빠르며 매우 단순한 웹 애플리케이션 (복잡성이 선택하지만)에 대해 생각해보십시오.

일이 진행되는 방식, 곧 질문이 될 것입니다.

이미 언급했듯이 MERB 2.0 및 Rails 3.0도 같은 것이 될 것입니다. 새로 공동체 된 MERB 및 RAILS 핵심 팀은 이미이를 달성하기 위해 일하고 있습니다. 나는 그들이 여전히 5 월에 Railsconf의 출시 (아마도 베타)를 계획하고 있는지 모르겠지만 올해는 확실히 일어나고 있습니다.

예를 들어, ActiveRecord 이외의 ORM을 사용하는 것으로 정해진 경우 Merb로 시작하여 2.0 (Rails 3.0)이 선박을하면 업데이트 할 수 있습니다. 현재 MERB는 일반적으로 레일보다 다양한 구성 요소를 다양한 프레임 워크를 제공하는 것으로 인정됩니다.

Sinatra는 MERB/Rails의 경우보다 낮은 인터페이스 복잡성이 낮고 모델 수준 코드가 다소 낮은 웹 앱의 훌륭한 솔루션처럼 보입니다. 간단한 RESTFUL API를 구현하는 것은 하나의 큰 사용입니다. HTML의 양이 관여 할 때 그 가치에 대해 덜 확신하지 못합니다.

다시 말하지만, 레일 (그리고 곧 Merb)이 랙 위에 앉아 있는데, 베이비 시나트라 앱을 솔루션에 포함시키지 않을 이유가 없습니다. 그들은 함께 살 수 있습니다. 거기 있습니다 바로 그 개념을 논의하는 블로그 게시물

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top