Nice programing

시나트라 대 레일스

nicepro 2020. 11. 15. 11:44
반응형

시나트라 대 레일스


Sinatra 및 Rails 샘플 중 일부를 검토했지만 어떤 기능이 어떤 기술에 속하는지 파악하는 데 어려움을 겪고 있습니다.

Sinatra / Rails를 사용하면 구체적으로 무엇을 얻을 수 있습니까? 그냥 ActionPack / ActionView입니까? 내가 틀렸다면 정정하십시오.하지만 Webrick / Mongrel을 사용하고 .erb 파일을 올바르게 제공 할 수 있습니까? 그리고 그 파일에서 ActiveRecord 기술을 사용하고 여전히 포스트 변수, 세션 상태 및 쿼리 문자열 변수에 액세스 할 수 있습니까?

그래서 제가 여러분들에게 부탁하는 것은 위의 PHP와 같은 시나리오로 시작한다면; Webrick + ERB + ActiveRecord, Sinatra를 사용하면 무엇을 얻을 수 있습니까? 그리고 Rails를 사용하면 무엇을 더 얻을 수 있습니까?


Sinatra의 경우 랙 주변의 래퍼와 거의 같습니다. 따라서 먼저 Rack의 요점이 무엇인지 물어봐야합니다. Rack은 기본적으로 프레임 워크가 결과를 반환하는 방법에 대한 사양이며, Rack이 지원하는 모든 웹 서버와 함께 반환 된 것을 사용할 수 있습니다. 따라서 함께 작동할지 여부에 대한 걱정없이 프레임 워크 / 서버 조합을 마음대로 선택할 수있는 정말 호환성 계층입니다. 프레임 워크가 랙과 호환되는 경우 랙을 통해 거의 모든 서버에 배포 할 수 있어야합니다.

이제 문제는 Rack이 매우 낮은 수준입니다. Sinatra와 같은 프레임 워크는 멋진 라우팅, 도우미, 전후 필터 등을 제공합니다. 당신은 당신이 얻을 수있는 것을 확인하기 위해 문서를 살펴보기 만하면됩니다. Rails는 훨씬 더 기능적이며 여러면에서 "마 법적"입니다. 즉, Rails에서 한 줄을 작성하여 상당히 많은 작업을 수행 할 수 있습니다. 일부에게는 좋은 일이고 일부에게는 너무 마법적인 일입니다. 저는 개인적으로 이러한 이유로 Sinatra를 선호합니다. 적어도 Rails 내부를 제대로 이해하기 전에 말입니다.


Rails의 이득은 ActionView / ActionPack입니다. 그러나 Mongrel / Erb로 대체 할 수 있습니다. 뭔가 다릅니다.

name_route 또는 양식의 오류 관리와 같은보기에서 볼 수있는 것은 모두 herlper입니다. 모든 리소스 관리 및 InheritedResources와 같은 모든 플러그인입니다. Rails의 장점.

이 모든 도우미를 사용하는 데 도움이되는 Padrino 환경과 같은 도구가 있습니다. 그러나 모든 플러그인이 활성화 된 후에는 정말 더 빨라졌습니다. 나는 그렇게 생각하지 않는다.

Rails 3에서 Rails는 많은 RackMiddleware가 포함 된 완벽한 랙 애플리케이션입니다. 응답을 높이기 위해 일부 미들웨어를 삭제할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/3989438/sinatra-vs-rails

반응형