4

최근 유스 케이스를 기반으로 레일 앱을 구조화하는 방법에 대한 Robert Martin (Bob Uncle Bob) 기조 연설을 보았습니다. 나는 이것을 매우 흥미롭게 발견했다. 여기 비즈니스 로직에서 ActiveRecord를 분리하는 레일 애플리케이션

는 기조 연설에 대한 링크입니다 : 물론이 있다면 궁금 해서요 Guru Watch

: 여기

Architecture: the Lost Years 그 구조 샘플 프로젝트 기조 연설에서 로버트 마틴에 의해 언급 된 원칙을 기반으로 응용 프로그램 (유스 케이스 주도 접근법/엔티티 - 컨트롤 - 경계 아키텍처/프런트 엔드에서 백엔드 분리)

+1

http://blog.firsthand.ca/2011/10/rails-is-not-your-application.html – apneadiving

+0

매우 흥미로운 읽기, 감사합니다! – Karan

+0

이게 도움이 될만한가요? http://stackoverflow.com/questions/8743937/practical-example-of-architecture-using-ebc –

답변

1

글쎄, 코드를 공유 할 수 없다. 그러나 나는 어떤 방향으로 가리킬 수있다. 우리는이 응용 프로그램에서이 보석을 사용했습니다 : https://github.com/collectiveidea/interactor.

저는 마틴의 기조 연설에서 크게 영향을 받았으며,이 응용 프로그램의 개발은 꽤 잘되었습니다. :) ActiveRecord와 Business Logic 분리의 경우 다음을 수행했습니다.

우리 비즈니스 로직의 각 클래스는 DatabaseEntity 대응 물을 가지고 있습니다. 이 클래스는 다른 클래스 인 ActiveRecord에 대한 어댑터를 사용하고있었습니다. 해당 ActiveRecord 모델을 쿼리하고 ActiveRecord 인스턴스를 비즈니스 로직 클래스의 인스턴스로 변환했습니다.

결국 대부분의 코드는이 어댑터에 집중되었습니다.

+0

해당 솔루션을 구현하는 것이 얼마나 어려운지 알 수 있습니까? 그리고 당신에게 그 클래스의 작업에 대한 디자인에 대한 추가 부담과 어플리케이션의 핵심 로직을 쉽게 이해하고 리펙토링 할 가치가있었습니다. – cllamach