저는 .NET 개발자이며 이번 주말에 Ruby on Rails를 사용할 수있었습니다.
.NET에서는 별도의 클래스 라이브러리 프로젝트를 작성하여 애플리케이션 계층을 분리합니다. 디자인 패턴 관점에서 우리는 Rails에서도 그렇게해야합니까, 아니면 모든 것이 포함 된 하나의 전체 프로젝트입니까?
저는 .NET 개발자이며 이번 주말에 Ruby on Rails를 사용할 수있었습니다.
.NET에서는 별도의 클래스 라이브러리 프로젝트를 작성하여 애플리케이션 계층을 분리합니다. 디자인 패턴 관점에서 우리는 Rails에서도 그렇게해야합니까, 아니면 모든 것이 포함 된 하나의 전체 프로젝트입니까?
답변:
Rails 앱 은 단일 저장소로 시작 한다는 것을 알 수 있습니다. 더 성공적인 것 (Twitter, Square, 다른 많은 것)은 그 요구에 따라 여러 코드베이스로 나뉩니다. 이러한 추가 코드베이스는 데몬 , 서비스 , gem, Rails 엔진 또는 다른 것입니다.
YAGNI 이므로 여러 프로젝트로의 리팩토링은 필요한 것으로 입증 될 때까지 수행되지 않습니다 . 1 일째 프로젝트를 분기하면 프로토 타이핑 시간이 느려지고 프로토 타이핑 속도는 Ruby와 Rails의 주요 강점입니다. 루비에서 클래스를 만들거나 클래스를 만드는 것은 비용이 많이 들지 않으며, 잘 정의 된 클래스를 분리하는 것과 마찬가지로 비용이 거의 들지 않습니다. 귀하의 순수 루비 코드는 대부분에서 살 것이다 /app/
( app/models
, app/views
app/controllers
, app/helpers
)와 /lib/
. 정적 자산, 계층화 된 JS / Coffee 포함 및 CSS / Sass / etc 포함은에 있습니다 /app/assets
.
Ruby 클래스를 분리하는 것이 왜 쉬운 지 이해 하려면 오리 타이핑에 대한 약간의 독서와 Ruby의 인터페이스가 덜 역동적 인 환경에서 익숙하지 않은 것에 대한 이해가 필요합니다.
관심을 가질만한 몇 가지 링크는 다음과 같습니다.
오리 타이핑에 대한 간단한 설명 ( Yehuda Katz blogpost )
이해하기, 읽기 간단하고, 변화 (OO 프로그램을 설계하는 방법과 이유에 헤아릴 수없는 샌디 메츠 2시간 루비 도적 팟 캐스트 ) ( 그녀의 환상적인 책 )을
자산 파이프 라인에 관한 Rails 제작자 David Heinemeier Hansson과 개선 된 코드 레이아웃 문제 ( RailsConf 기조 연설 비디오 )
나만의 보석 만들기 ( Rubygems.org HOWTO )
프로젝트와 함께 행운을 빕니다!
Ruby 라이브러리에서는 gem이라고하며 http://www.ruby-lang.org/en/libraries/를 참조 하십시오 . .NET 클래스 라이브러리와 거의 같은 방식으로 사용됩니다.