2009-08-30 8 views
5

저는 (꽤) 경험 많은 프로그래머이지만 Ruby와 Ruby on Rails에 완전히 새로운 사람입니다.Ruby on Rails의 마지막 20 %

의 RoR은 CRUD 작업에 신속하게 작업을 얻을 특별히 자동 화면 생성 멋지다.

정말 정말 생산성이 좋아집니다.

질문은 내가 내 응용 프로그램을 완료해야하는 작업의 마지막 20 %로한다. RoR 컨벤션이 방해가되지 않습니까? 모든 사용자가 모든 데이터베이스 테이블을 사용할 수있는 것은 아니며 모든 사용자가 모든 열 및/또는 모든 행을 편집 할 수있는 것은 아니므로보기가 내 사이트의 디자인과 느낌에 맞게 조정되어야합니다.

RoR은 실제 현장에서 성공적으로 사용되었지만, 첫 번째 단계가 끝난 후 중력을 피하기 위해 RoR에서 얼마나 정확하게 속도를 얻습니까?

+7

적어도 내 경우를 보면 판단 할 때 "나와 함께하지 마십시오"라고 혼란 스러울 것 같습니다. (사이트의 모양과 느낌을 반영하기 위해 뷰를 디자인해야만 하는가? 레일의 예가 어떻게 진행되고 있는가?) – Chuck

+0

좋은 지적, Chuck. –

답변

7

나는 비계가 당신에게 80 %를 줄 것으로 생각하지 않습니다. 스캐 폴딩 (Scaffolding)은 레일스 조각들이 어떻게 조화를 이룰 수 있는지를 보여 주지만, 스캐 폴딩 코드를 사용하지는 않는다. 이제는 비계에 깊은 인상을 받았으므로 모든 것을 잊어 버리는 것이 가장 좋습니다. :)

레일즈가 실제로 내 마음 속에서 비추는 곳은 database migrations이며, ActiveRecord가 얼마나 동적인지, 그리고 플러그인 생태계인지는 awesomeness입니다.

레일스를 결정할 때는 많은 것을 배워야합니다. 새로운 언어, 새로운 프레임 워크 및 새로운 플러그인이 있습니다. 그러나 이러한 것들을 배우는 데 시간을 할애한다면 Rails를 사용하면 매우 생산적 일 수 있습니다.

+6

오, 이런, 농담 아냐. 스캐 폴딩 (Scaffolding)은 완전한 응용 프로그램 근처에서 당신을 데려다 줄 의미가 아닙니다. +1 – Chuck

+0

저는 발판을 사용하지만 사용자 정의 된 발전기 만 사용합니다. –

1

는 RoR에 규칙 제 방해하지 않을까요? 하지 모든 데이터베이스 테이블은 모든 사용자가 사용할 수 있어야합니다, 그리고 모든 사용자, 모든 열을 편집 및/또는 모든 행을하고, 전망이 내 사이트의 모습에 적응해야하며 느낄 수 있기 때문에 등

이것은 약간의 연속입니다. Rails는 실제 응용 프로그램에서 해제 된 프레임 워크입니다. 이러한 애플리케이션은 모든 이슈뿐만 아니라 아직 생각하지 못했던 다른 문제를 처리해야했습니다. 일반적으로 컨벤션은 일단 배우면 삶을 더 편하게 만듭니다.

또 다른 요지는 규칙은 단지 규칙에 불과하다는 것입니다. 당신은 그들을 따라갈 필요가 없습니다. 당신은 모든 것을 위해 RoR을 사용할 필요조차하지 않았습니다. 아직 내가하지 못했던 /하지 못했던 것을 찾지 못했지만, 가능한 한 많은 것을 DB 나 캐시 레이어에 밀어 넣으려고합니다.

5

저는 꽤 오랫동안 레일에서 루비를 해왔습니다. 80/20 문제는 레일에 고유하지 않습니다. 일반적으로 전 세계에 적용됩니다. 또한 비즈니스 로직을 수행 할 수있는 프레임 워크에 대해서도 잘 모르고 있습니다.

귀하의 특정 질문에 답변하십시오. 20 %를하는 동안 협약은 여러분의 입장에서 설 수 없습니다. 대신 협약을 통해 20 % 더 빨리 달성 할 수 있습니다.

개인적으로 사용자 인증을 위해 Authlogic을 사용합니다. 사용자 인증을 위해 고객의 필요에 따라 Lockdown 또는 Authorization 플러그인을 사용합니다.

는 또한 컨트롤러 코드를 단순화하기 위해 내 대부분의 프로젝트에서 inherited_resource를 사용합니다. 이것이 국제 대회의 또 다른 힘입니다.

개발의 속도를 높이려면 Rails를 알아야 할뿐만 아니라 보석을 다시 설치해야 할 필요가없는 보석/플러그인을 선적합니다. 또한 Ruby 언어가 80 % 이상으로 빠르게 개발되어야한다는 것을 알고 있어야합니다.

Ruby Toolbox은 특정 도메인을 대상으로하는 일반적인 레일 프로젝트에서 가장 많이 사용되는 보석 및 플러그인 중 일부를 제공합니다. 관련 카테고리를 살펴보고 대부분의 사람들이 사용하는 것을 알 수 있습니다. (그리고 아마도 잘 유지 된 인기있는 보석을 사용하는 것이 좋습니다)

TDD/BDD 스타일 개발은 또한 당신이 장기적으로 속도를 높이는 데 도움이 될 것입니다.

마지막으로 경고 : 레일 관례에서 벗어나면 일반적으로 고통스러운 시간을 갖게됩니다.

P. 나는 전에 Merb를 사용했다. 제 생각에 컨벤션은 당신을 머로 (merb)에서 도와 주지만, 머블에서 그들을 따라 가지 않으면 너무 많은 벌을받지는 않을 것입니다. 그러나 Rails에 대한 필자의 경험에 따르면 레일 애플리케이션을 개발하는 동안 레일 규칙을 따르지 않기로 결정한 경우, 한 가지 방법으로 또는 다른 방법으로 여러분을 물으려 고합니다. 그래서 레일 컨벤션에서 벗어나려고했을 때 두 번 생각해보십시오. (이것은 내 경험에서 얻은 것입니다. 물론 주관적입니다. 그러나 경고로 생각할 수는 있습니다 ...)

0

나는 그렇지 않습니다. Rails 규칙에 심각한 문제가있을 것이라고 생각합니다. 규칙을 고수하고 RoR 시스템을 신뢰하십시오. Rails를 사용하는 사람들은 일반적인 사용 시나리오의 99 %를 지원하기 위해 이러한 규칙에 많은 노력을 기울였습니다.

관습 밖에서 실제로해야 할 일이 있으면 결국에는 상당히 복잡해집니다. 그러나, 당신은 혼자가 아닙니다. 그물에는 도움이되는 많은 훌륭한 자료들이 있습니다 (예를 들어 StackOverflow 커뮤니티).

을 요약하면 :