2012-10-01 3 views
0

저는 약 7 개월 동안 Rails에서 프로그래밍을 해왔습니다. 주로 데이터베이스 관리에 대한 응용 프로그램입니다.Sinatra with Padrino 또는 Rails?

PHP로 작성된 데스크톱 프로그램과 대화하는 API가 있습니다. 우리는 이제 모든 것을 루비로 옮기고 싶어합니다. 이 API는 번개처럼 빨리 처리되어야하며 어떤 종류의 뷰나 HTML 페이지도 가지지 않습니다.이 API는 JSON을 통해 우리의 애플 리케이션과 통신하여 앱이 표시하고 사용할 데이터를주고받습니다.

그래서 기본적인 질문은 Sinatra와 Padrino (ActiveRecord 포함)를 배우고 API를 빌드하거나 레일스에서해야한다는 것입니다.

레일스를 사용하는 경우 모든 코드가 동일하거나 (데이터베이스가 동일하므로) 많은 코드를 유지하거나 기존 코드를 사용할 수 있으며 API에 대한 더 많은 메소드를 작성해야합니다.

나는이에 볼 수있는 단점

은 두 가지이다 :

  1. 그것은 코드가 관리하고 이제 우리는 API 비트와 모든 유지 보수 비트를 가지고 있기 때문에 읽기 어렵 의미한다.
  2. 동일한 Ruby 앱이 이중 작업을 수행하므로 API가 별도의 다른 Ruby 앱에서 실행되는 것처럼 빠르지 않을 것입니다.
  3. 이미 Rails 앱은 속도면에서별로 좋지 않지만 Rails 자체보다는 호스팅 솔루션과 관련이 있다고 생각됩니다.

학습 Sinatra와 Padrino는 더 많은 작업이 될 수 있지만 API와 Ruby는 별도의 코드로 분리되고 유지 보수를 위해 별도의 Ruby 앱이 필요합니다.

하지만 나는 Sinatra와 Padrino에 대해 아무것도 몰라, 족상과 속도는 입니다. 정말이 레일보다 좋습니다.

나는 실제로 이것에 Padrino와 함께 Rails와 Sinatra를 실제로 사용했던 사람들의 의견을 높이 평가할 것입니다.

건배.

답변

4

Sinatra와 Padrino는 자동으로 보다 짧습니다.은 Rails보다 빠릅니다. 그것들은 Rails보다 이 더 작고입니다 (더 작고 집중된 툴킷을 개발자에게 제공합니다). 응용 프로그램 속도는 주로 코드 (및 알고리즘)에 따라 다릅니다. 우아함, 유지 보수성 및 기타 측면에서도 마찬가지입니다.

레일스에서 ​​실행되는 유지 보수가 잘되는 코드를 사용하고 있다면 대부분 개선해야합니다. 좋은 호스팅/캐싱 솔루션으로 더 빨리 만들고 리팩토링으로 우아하고 유지할 수 있도록하십시오.

요즘 Rails와 Sinatra는 모두 RESTful 웹 서비스를 개발하고보다 일반적으로 UI가없는 API를 개발할 수있는 훌륭한 지원을 제공합니다. 레일스는 규모가 크고 길들여지기까지 더 많은 시간이 걸리지 만 다행히도이 모든 일을 연구하고 일을 끝내기 위해 사용할 필요가 없습니다. 레일스에서 ​​실행되는 애플리케이션은 Sinatra에서 실행되는 애플리케이션만큼 빠르고 우아 할 수 있습니다. Rails 요청을 처리하는 데 실제로 사용되는 레일스 서브 세트는 전체 Sinatra 프레임 워크만큼 작고 우아하기 때문입니다. 따라서 응용 프로그램 속도는 주로 코드와 호스팅/캐싱 선택에 따라 다릅니다.

다른면에서, 당신은 Sinatra와 Padrino를 어쨌든 배워야합니다.이 프레임 워크는 내가 본 중 가장 우아하고 매혹적인 두 가지 소프트웨어 중 하나입니다. 그들은 절대적으로 당신의주의를 끌 가치가있다. 혼자 사용되는 Sinatra는 일반적으로 UI가없는 RESTful API보다 복잡한 것은 아닙니다. 대부분 실제 웹 애플리케이션은 Padrino를 필요로합니다.

+0

감사합니다. Padrino와 Rails와 Sinatra 사이에 차이가 없다면 어디에서 다른 패드를 사용할 것입니까? – kakubei

+0

나는 보통 작업에 필요한 최소한의 프레임 워크 복잡성을 사용하려고합니다. "알몸"RESTful 웹 서비스 (UI 없음)를 위해 나는 Sinatra를 사용합니다. 작고 규칙적인 웹 사이트의 경우 Padrino를 선호합니다. 대규모의 기능이 풍부한 복잡한 웹 애플리케이션으로 프로젝트를 시작한 후에 만 ​​레일즈를 사용합니다. 이 외에도 Rails는 많은 미리 빌드 된 기능과 사용하기 쉬운 플러그인을 제공하므로 처음부터 모든 것을 다시 만드는 것보다 Rails를 사용하는 것이 더 쉽고 빠릅니다. – AlexBottoni

0

기존 Rails 앱이 이미있는 경우 rails-api에 이식하는 것이 더 쉽습니다. 기본적으로 Rails이지만 UI를 만드는 데 사용되는 모든 구성 요소가 제거되었습니다.

개인적으로 사용하지는 않았지만 몇 달 전에 프로젝트를 평가 중이었습니다.

+0

음 ... 흥미로워 보이지만, 단지 github Readme를 읽음으로써 Padrino를 사용하는 이점을 실제로 볼 수는 없습니다. 너는 할수 있니? – kakubei

+0

그것은 하나의 선호도로 내려갈 것입니다. 이미 레일스에 능숙하고 시간이 부족하다면, 지금은 새로운 것을 배우지 않는 것이 낫습니다. – dashmug

+0

저는 지금 3 개월 동안 프로덕션 환경에서 사용 해왔고, Rails-API가 정말 잘 작동하고 작업을 수행한다고 말합니다. – yagooar