RoR의 단점은 무엇입니까? [닫은]


39

현재 웹 개발을 위해 배우고 사용할 서버 측 언어를 결정하려고하는데 x, y 또는 z가 왜 좋은지에 대한 정보를 얻는 것이 상대적으로 쉽지만 각각의 단점을 파악하기가 더 어렵습니다. 그들의.

특히, 다른 언어 / 프레임 워크와 달리 Ruby on Rails를 배우거나 사용하는 데 어떤 단점이 있는지 궁금합니다.


5
ASP.NET을 많이 싫어했습니다. 그것은 내 일이었던 이후로 문제가되었습니다.
제레미

5
다른 사람들이 정교하게 만들고 싶을 경우를 대비하여 의견에 언급하면, RoR이 때때로 너무 "매직 적"일 수 있다는 것이 RoR이 될 수 있다는 것입니다. 웹 개발에 익숙하지 않다면 당연히 많은 것을 취할 것입니다. 물론 이것은 기본적으로 모든 고급 언어에 해당되며, 더 쉽고 빠르게 작업 할 수있게 해줍니다.
grautur

1
FRAW RoR을보고 있다면 ASP.NET MVC3와 Razor를 확실히 살펴보십시오. 그리고 솔직히 돈을 받고 싶다면 ASP.NET에서 개발 한 이유의 40 %입니다. 다른 60 %는 그것이 고통 지점을 가지고 있더라도 최고의 웹 플랫폼 기간이라고 생각합니다. 거의 모든 것이 Nuget으로 요약되었습니다.

RoR을 CRUD 앱용 도구로 생각하면 다른 작업을 수행 할 수 있지만보다 일반적인 작업의 경우 다른 언어 / 프레임 워크는 혼란없이 더 유연합니다.
alfa64

답변:


59

경험에서 말하면 : 단점은 Rails 프레임 워크에 너무 많이 의존한다는 것입니다. Rails "sweet spot"에 해당하는 단순하고 그린 필드 CRUD 앱만 작성하는 경우에 이는 훌륭하고 훌륭한 것입니다. 생산성이 급상승합니다. 그러나 그 스위트 스팟 밖에서 무언가를 해야하는 순간-기존 데이터베이스와 상호 작용하고, JSON 또는 XML API가 정의되어 있지 않은 다른 응용 프로그램과 이야기하고, 복잡한 워크 플로우를 구현하면 Rails가 적이됩니다. 그것은 이다Rails로 이러한 작업을 수행 할 수 있지만 "곡물에 대해"진행되므로 커뮤니티는 일반적으로 "그렇게하지 마십시오. Rails가 아닙니다. way "-기본적으로 Rails 프레임 워크를 해킹해야하므로 생산성이 떨어지거나 코드가 지저분합니다.

또한, 무언의 단점이 있습니다. 다른 모든 것들은 추악하고 어리석은 것처럼 보일 것입니다. 달콤하고 달콤한 감로를 맛보면 (여기서 조금만 복음을 전합니다 ...) 그 밖의 모든 것은 능숙합니다. Rails에서 PHP, ASP.NET WebForms 또는 Java로 돌아가는 것은 무성한 정원에서 놀란 후 손톱 침대 위를 걷는 것과 같습니다. 다른 언어 / 프레임 워크도 같은 관점에서 볼 수 없으며 여전히 감사 할 수 있지만 Rails의 사랑에 찬 포옹을 간절히 원할 것입니다.


11
다른 모든 프레임 워크와 마찬가지로 들리지만 상자에서 무언가가 필요한 순간에는 어려움이 따릅니다.
Nemanja Trifunovic 2016 년

12
그렇습니다. 그러나 전체 프레임 워크는 "바로 사용할 수있는"무언가를 필요로하지 않을 것이라는 생각을 바탕으로 구축 되었기 때문에 Rails에서는 조금 더 나쁩니다. PHP 용 Zend, ASP.NET MVC 또는 Python 용 Django와 비교하면 Rails보다 훨씬 유연하지만 프레임 워크의 이점을 제공합니다. 그러나 실제로 Rails에 대한 슬램은 아닙니다.
Wayne Molina

3
운 좋게도 RoR만이 루비 기반 웹 프레임 워크가 아닙니다. 나 자신도 Sinatra + Datamapper + Haml / Sass 또는 원시 SQL 경험을 위해 Sinatra + Sequel + Sequel + Haml / Sass를 선호합니다 ... RoR은 Java .NET 기반 솔루션에 비해 훌륭합니다. 그러나 다른 루비 기반 웹 프레임 워크와 비교할 때 무게가 큰 몬스터입니다.
Philip

4
Wayne이 RoR을 좋아하는지 싫어하는지 판단하기가 어렵습니다. 이 사랑 / 증오 관계는 대부분의 RoR 개발자들에게 공통적인가?
Phil

2
@ 열 A를 조금, 열 B를 조금. 필자는 실제로 그것을 많이 모르지만 RoR을 좋아합니다. 정말 좋기 때문에 계속 배우려고 노력합니다. 그러나 다른 한편으로는 "실제"응용 프로그램에서 사용했으며 양식당 1-2 모델로 단일 데이터베이스와 통신하는 CRUD 응용 프로그램의 상자 밖으로 나가야 할 때 엉덩이에 물었습니다. 그게 다야.
Wayne Molina

30

첫 번째 서버 측 언어의 경우 RoR에 몇 가지 문제가 있다고 생각합니다.

  1. 언어를 배우는 것이 아니라 프레임 워크를 배우는 것입니다. 레일에 뛰어 들기 전에 평범한 오래된 루비로 놀아 보는 데 시간이 조금 걸릴 것입니다.

  2. 그것은 프레임 워크이며 그에 대한 '최종화 된'것이기 때문에 프레임 워크에서 모든 일이 진행되는 범위가 매우 제한적이라고 생각합니다.

전반적으로 Ruby on Rails는 볼 롤링을 시작하기에 좋은 출발점이 될 수 있지만 단일 프레임 워크에 너무 의존하여 웹 개발에 대해 배울 점이 많이 있습니다.


15

나는 RoR을 여러 번 배우려고 노력했으며 가장 큰 문제는 항상 패키지가 올바르게 작동하고 문서화되도록 노력하는 것입니다. 문서의 문제점은 항상 오래된 것 같습니다 (또는 매우 기본적 임). 나는 사이트에서 기본 사항을 얻었지만 그 이상으로 모든 것이 너무 오래되었습니다 (책을 사서 책을 반환하게되었습니다). 단점은 라이브러리 중 일부의 종속성과 Ben Coe가 언급 한 라이브러리와 다른 라이브러리와 충돌하는 방법 입니다.


나중에 생각하고 의견을 남기지 않고 대답을 편집하겠습니다. RoR은 루비를 망칠 수 있습니다. 나는 그것을 시도했을 때 "루비는 바보였다"고 생각하게 만들었습니다. 몇 달 후 나는 루비에게 언어를 전하고 언어를 사랑하기로 결정했다. 그것은 언어를 싫어하게 만드는 틀이었다. 나는 그것에 덤벼 들지 않았지만, 그렇게했을 때 나는 정말로 Sinatra를 즐겼다 . 나는 대부분의 사람들이 Sinatra에서 RoR을 얻는 기쁨을 얻었다 고 생각합니다.


+1 같은 경험을했습니다. Ruby on Rails를 배우려고했지만을 수행하여 오류가 발생했습니다 rake db:migrate. 반면에, Sinatra가 훨씬 단순하고 이해하기 쉽다는 것을 알았습니다. 어쨌든, 나는 내 방식대로 설정하는 것을 선호하며 레일스 앱의 기본 구조는 나에게 너무 복잡해 보였습니다.
Zhehao Mao 2016 년

@ Zhehao Mao-나는이 경험을 가진 유일한 사람이 아니라는 것을 기쁘게 생각합니다. 비록 DHH와 똑같은 방식으로 생각하는 한 복잡하지 않다고 생각합니다. 다른 유형의 사고 과정이있는 경우 RoR은 뒤쪽에 통증이 될 수 있습니다.
Jetti

복잡하지 않다고 생각합니다. 내 문제는 rails 앱을 만들려고 할 때마다 설명서에서 말한대로 상자에서 아무것도 작동하지 않는다고 생각합니다.
Zhehao Mao 2016 년

그 사실 때문에 나는 그것이 엄청나게 복잡하다는 것을 알았습니다. 내가 포기한 이유이기도합니다. RAD가 되려면 작동해야합니다. 솔직히 RoR을 시작하고 실행하는 데 발생한 모든 문제 (약간의 과장이지만 여전히 ...) 때문에 C ++에서 CR ++ 앱을 RoR보다 빠르게 만들 수 있다고 생각합니다.
Jetti

여러분이 올바른 문서를 읽었는지, 왜 도움을 요청하지 않았는지 잘
모르겠습니다

12

이것이 첫 번째 서버 측 언어라면 어느 것이나 좋습니다. 해야 할 일은 하나에 초점을 맞추고, 마스터했다고 느끼면 다른 사람들을 탐색하고 자신의 결론을 추론합니다.

나는 매일 RoR 및 ASP.NET과 함께 일하지만 이상하게도 ASP.NET 세계를 선호하지만 언어 나 아키텍처 자체와 관련된 것보다 개인적인 철학과 더 관련이 있습니다. (나는 약간의 제어 괴물이며 개인적으로 강력한 유형의 언어에 끌린다).

어쨌든, 나는 그것을 간다. RoR은 작업하기에 좋은 환경이지만 Rails로 바로 들어가기 전에 언어로 Ruby에 익숙해 지십시오. 루비는 웹 컨텐츠 외에도 * nix 박스를 관리해야하는 시간을 절약 할 수있는 멋진 스크립트 언어입니다.


4
제어 괴물 +1 나도 그 행진이 조금 있습니다. 강력한 유형뿐만 아니라 나에게 실제로 가정하는 규칙보다는 실제로 구성과 같은 방식으로 (자세한 내용이 있음).
바비 테이블

@Bobby Tables, Ditto!
Marlon

6

최근에 Rails를 배우고 취미로 상업용 등급 개발에 사용한 적이없는 사람이 이미 JEE와 ASP.NET에서 일한 적이 있기 때문에 Wayne M 의 대답은 매우 사실이었습니다.

어쨌든, 아직 언급하지 않은 미묘한 측면이 있지만, 구성 에 대한 관례에 대한 강한 의지 인 Rails에 약간의 신경을 쓰게되었습니다 .

기본적으로 새로운 코드 기반으로 "파일에서 찾기"중심의 방향에 익숙한 경우 CoC는 Rails를 선택할 때 성 가실 수 있습니다. Rails 방식으로 정확하게 수행되는 간단한 CRUD 그린 필드에는 훌륭하지만 (Wayne M이 말한 것처럼) 더 독특하고 복잡한 모든 경우에는 배관에 어떻게 연결되어 있는지 확인하기 위해 파일에 넣습니다.

비록 Rails에 대해 더 많은 경험이 있다면이 문제는 나쁘지 않을 것입니다. 매우 복잡한 구성 흐름에 익숙한 oldskool Java / .NET 웹 개발에서 온 누군가에게 문제가 있음을 분명히 알 수 있습니다.


1
처음에는 조금 귀찮았지만 더 이상은 아니 었습니다. 데이터베이스 마이그레이션을 작성하여 새 열을 만든 다음 별도의 매핑 단계없이 비즈니스 논리를 새 데이터에 연결할 수있어 좋았습니다.
케빈 클라인

@kevincline RoR에서 어떻게 달성합니까? Java 및 .NET 세계에서 AOP를 사용하여 수행 할 수 있습니다.
호감

@crush : 비즈니스 로직이 사용하는 데이터베이스의 모든 열에 대해 매핑 된 클래스에서 속성을 명시 적으로 생성하고 매핑해야하기 때문에 Java 및 .NET에서 어려움이 있습니다. 열을 추가한다는 것은 여러 클래스를 변경하는 것을 의미합니다. RoR은 이러한 모든 작업을 규칙에 따라 런타임에 수행합니다. 데이터베이스 스키마를 수정 한 다음 비즈니스 로직과 프리젠 테이션 계층을 변경하여 새 열을 사용하십시오.
케빈 클라인

5

나와 함께 가장 큰 문제는 첫 번째 X를 배우는 것입니다 (귀하의 경우 X는 서버 측 웹 언어 / 프레임 워크입니다). 다른 문제가 보이면 즉시 X를 적용하기를 원합니다. 최선의 선택이 아닐 수도 있습니다. 나는 이것을 더 잘 얻었지만 여전히 강한 경향입니다.

Ruby on Rails는 시작하기에 좋은 선택입니다. 좋은 커뮤니티, 많은 문서 및 튜토리얼이 있습니다. 그러나 특히 웹 개발을 더 많이 시작할 경우 대안을 염두에 두어야합니다. RoR은 일부 문제에 대해서는 과잉이며 다른 문제에 대한 부적절한 솔루션 및 다른 세트에 대한 최선의 선택 일 수 있습니다. 강점, 약점 및 도구 사용법을 알고 있어야합니다.


4

내 조언은 완료하려는 프로젝트를 명확하게 파악한 다음 빌드를 시작하는 것입니다. 문제가 발생하면 결국 모든 올바른 도구를 얻게됩니다. 간결한 문제를 기반으로 의사 결정을하기 때문에이 방법이 좋습니다.

해야 할 또 다른 일은 책을 사는 것입니다. 인터넷 튜토리얼은 내 경험으로는 그것을 자르지 않습니다. 그들은 또한 산만하게하기 위해 많은 공간을 열어 둡니다. 책이 있으면 발행인은 리뷰가 좋지 않으면 돈을 잃을 수 있으므로 가치를 제공해야합니다. 약간의 돈을 쓰면 많은 시간을 절약 할 수 있습니다.


그러나 railscasts.com을 잊지 마십시오. 그는 약 10 분 안에 주제 / 개념에 대한 개요를 제공하는 뛰어난 일을합니다. 나는 주말 내내 Sunspot을 작동 시키려고 노력한 다음 10 분 동안 Railscast를보고 패싯 검색을 구현하는 방법을 보았으며 1 시간 이내에 실행했습니다. 월 $ 9 가치가 있습니다.
Kyle Carlson

1

나는 정원에서 산책하는 루비 온 레일즈 (Ruby-on-Rails)가 무엇인지 시적으로 왁싱하는 사람들을 솔직히 이해할 수 없다. 경험 많은 ASP.NET-MVC, Java, PHP, Python 개발자로 와서 가장 끔찍한 시간 낭비였습니다! 온라인 Google 답변의 90 %가 잘못되었거나 불완전합니다. 왜? 매년마다 그렇게 많이 바뀌 었습니까? 아니면 아무도 실제로 코드를 작성하는 것에 신경 쓰지 않습니까? 단순한 일을하는 데 엄청난 시간이 걸렸습니다. 예를 들어 C # / ASP.NET-MVC에서 필요한 것보다 훨씬 더 큽니다. 내 오리지널 기술을 배우기 위해 그렇게 오래 걸리지 않았습니다. 물론 ROR은 간결합니다. 그것이 당신에게 중요하다면. 그러나 작업을 수행하는 코드를 만드는 방법이 거의 없다는 것을 알았습니다. 개인적으로 저는 20 초 동안 키보드로 타이핑하여 확실히 작동하는 코드를 작성하려고합니다. 간결한 Ruby 코드를 2 초 동안 입력하는 대신 명확하고 따라갈 수 있지만 밤새 일어나서 실제로 작동하게하는 방법을 찾기 전까지는 작동하지 않습니다. 그것은 끔찍하고 악취가 나는 dodo 더미입니다. 왜? 그것은 무료 소스와 같은 오픈 소스 코드입니까, 양질의 도구가 될 인센티브를 제공하지 않습니까? 수정본과 펌핑 버전이 너무 많거나 문서가 잘못되어 있습니까? 모르겠어요 그러나 마침내 첫 번째 Ruby-Rails 프로젝트를 피할 수 있었을 때 나는 다시는 그런 혼란에 빠지지 않을 것이라고 맹세했습니다! 품질 도구로 만드는 인센티브를 제공하지 않습니까? 수정본과 펌핑 버전이 너무 많거나 문서가 잘못되어 있습니까? 모르겠어요 그러나 마침내 첫 번째 Ruby-Rails 프로젝트를 피할 수 있었을 때 나는 다시는 그런 혼란에 빠지지 않을 것이라고 맹세했습니다! 품질 도구로 만드는 인센티브를 제공하지 않습니까? 수정본과 펌핑 버전이 너무 많거나 문서가 잘못되어 있습니까? 모르겠어요 그러나 마침내 첫 번째 Ruby-Rails 프로젝트를 피할 수 있었을 때 나는 다시는 그런 혼란에 빠지지 않을 것이라고 맹세했습니다!


이 게시물은 읽기 어렵습니다 (텍스트의 벽). 더 나은 형태로 편집 하시겠습니까 ?
gnat

이 답변은 유쾌합니다. Rails는 가장 객관적으로 시간을 절약 해줍니다. 이에 대한 불만은 순전히 새로운 것이며 처음 몇 주 안에 모든 것이 클릭되기를 기대하기 때문입니다. 데이터베이스 마이그레이션만으로 Rails로 전환 할 가치가 있습니다.
sergserg


0

RoR에 대한 위의 답변 중 일부에 동의합니다. 지난 2 년간 RoR로 응용 프로그램을 개발해 왔습니다. 간단한 응용 프로그램 인 CRUD (만들기, 읽기, 업데이트 및 삭제) 작업은 매우 효과적이며 간단한 응용 프로그램을 개발하는 데 도움이되지만 제한 사항이기도합니다. 많은 보석이 있지만 다양한 장점과 사용 편의성을 제공하지만 기본적으로 보석입니다. 즉시 사용하지 않으면 응용 프로그램이 모두 왜곡됩니다.

RoR을 사용하여 응용 프로그램을 작업하는 대규모 팀의 경우 업무 위임을 쉽게 처리 할 수 ​​없습니다.


가끔 놀랍게도 한 가지 사실은 RoR과 독립적 인 것처럼 보이는 많은 보석들이 RoR과 함께 사용되는 것이지 독립형이 아니라는 것입니다. 왜 그런지 궁금합니다. 추신 : 저는 루비 프로그래머가 아니기 때문에 잘못된 인상을 받았을 것입니다. 그러나 나는 이것을 몇 번 우연히 발견했다. 슬프게도 현재로서는 예가 없습니다 .
Htbaa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.