레일즈에 MVC 접근법이 있다는 사실은 의존성 주입이 있다는 것을 의미합니까?레일스에 종속성 삽입이 있습니까?
또는 Rails에서 종속성 삽입에 대해 언급하지 않는 이유가 있습니까?
레일스에 의존성 삽입이있는 경우 어떻게 구성됩니까?
레일즈에 MVC 접근법이 있다는 사실은 의존성 주입이 있다는 것을 의미합니까?레일스에 종속성 삽입이 있습니까?
또는 Rails에서 종속성 삽입에 대해 언급하지 않는 이유가 있습니까?
레일스에 의존성 삽입이있는 경우 어떻게 구성됩니까?
루비에서는 일반적으로 의존성 주입이 필요하지 않습니다. Jamis Buck blogged extensively 이유에 대해. 읽기 좋은 가치가 있습니다.
Jamis는 실제로 Java와 함께 사용되는 무거운 수동 DI 프레임 워크가 필요 없다고 말하고있었습니다. 그는 Ruby에서 불필요하다고 말하지 않았습니다. 반대로 DI는 루비에서 결합을 줄이고 테스트 가능성을 향상시키는 데 사용할 수 있습니다. 그것은 단지 필요한 것은 아닙니다. – scottburton11
블로그 작성자는 DI 프레임 워크가 아니라 매일 DI를 사용한다고 말합니다. –
멋진 기사였습니다. Ruby를 사용하는 모든 사람들을 읽어야합니다. – Flavia
종속성 삽입은 패러다임이므로 모든 객체 지향 언어에 존재합니다.
루비 DI 프레임 워크가 있는지 여부 - 확인이 this question
당신이 루비 그런 일을 필요로하지 않는다는 것을 말하고 싶지만 ...하지만 당신이 정말로 원하는 경우, 어떤 사람들은 workarounds 있습니다.
내 웹 프레임 워크에서이 IoC https://github.com/alexeypetrushin/micon을 사용합니다. 대부분의 경우 숨겨진 상태로 유지되며 수동으로 해결해야하는 종속성 및 구성 요소 초기화 문제를 자동으로 해결합니다.
여기에서 실제로 볼 수 있습니다. http://ruby-lang.info (이 사이트는 Rad에서 제공됨, 내 웹 프레임 워크 https://github.com/alexeypetrushin/rad_core).
IoC는 큰 해머이지만 DI는 Ruby/Rails에서 매일 발생합니다. 언제든지 :
def initialize(model_klass)
@model_klass = model_klass
end
이것은 DI입니다. 이 패러다임은 Rails 소스 코드의 여러 곳에서 사용된다. 예를 들어, Railties
보석 자체는 대부분 DI 엔진입니다. ORM, 다양한 플러그인 구성 및 생성기를 주입 할 수 있습니다.
종속성 주입에는 크고 무서운 이름이 있지만 실행 시간 동안 종속성을 주입하는 방법으로 클래스 종속성을 분리하는 것만으로 충분합니다.
행동/코드를 어딘가에 연결해야하는 경우 사용하는 언어는 중요하지 않으며 아마도 사용하고있을 것입니다.
아주 좋은 질문입니다. 대답을 읽으면 많은 것을 배웠습니다. – Phil