6

Ruby on Rails에 소셜 네트워킹 사이트를 구축해야합니다. 사이트의 기능은 때때로 변경 될 수 있습니다. 그래서 우리는 쉽게 기능을 추가/제거해야 할 것입니다. 또한 다른 소셜 네트워킹 사이트를 구축 할 수도 있습니다. 이러한 이유 때문에 우리는 RoR의 소셜 네트워킹 사이트를위한 기본 프레임 워크를 프레임 워크에 대한 확장 기능을 설치하거나 제거하는 기능으로 구축하려고합니다.Ruby on Rails에서 어떻게 플러그인 아키텍처를 사용할 수 있습니까?

이전에 Joomla!에서 작업했습니다. 확장 기능을 추가/제거하기위한 CMS와 아키텍처는 내가 바라는 유형입니다. 줌라! 설치에는 확장자를 추가/제거/사용자 정의 할 수있는 관리자 쪽이 일반적으로 있습니다.

저는 RoR을 처음 사용하고 있으며이를 수행하는 방법을 결정하기가 거의 어렵습니다. 어떤 도움을 주시면 감사하겠습니다. UPDATE 2015

+0

레일은 Joomla보다 약간 낮은 레벨입니다 ...인프라 스트럭쳐를 직접 구축하거나 기존 Rails 애플리케이션을 사용해야 할 수도 있습니다. –

+0

@ 토비 - 댓글을 달았을 때 아마 업데이트 중이었습니다. 나는 레일즈가 분명히 낮은 레벨이라는 것에 동의한다. @Shree - 특별히 할 수있는 일의 몇 가지 예를 보라 Redmine과 ADVA CMS – Spasm

답변

15

:이 많은

을 변경 2009 년 대답했다

플러그인이 보석 모든 정보는 엔진 로 대체 된 당신은 엔진에 필요 http://guides.rubyonrails.org/engines.html

엔진은 레일 애플 리케이션을위한 캡슐화되고 재사용 가능한 코드를 빌드하는 환상적인 방법. 개발 측면 레일 엔진 및/또는 플러그인에

참조에 대한

원래 대답은 당신이 찾고있는 것을 아마.

소셜 네트워킹 응용 프로그램이 위키, 블로그, 채팅방 등을 가지고 말 예를 들어 Rails Engines are small subsets of an application that can be dropped into any of your Rails applications and handle common parts of the application from scratch.

당신 것 가능성이 위키 엔진, 블로그 엔진과 채팅방 엔진을 만들려면보다.

엔진을 사용하면 다른 응용 프로그램에서 이러한 기능을 다시 사용할 수 있으므로 반복 할 필요가 없습니다. GitHub의에 대해 말하기를 사람들이 엔진을 사용한 방법을 볼 나는 또한 일부 공공 사업에서 살펴 보는 것이 좋습니다 http://rails-engines.org/

Some support for ‘engine’ plugins has been merged into the Rails core codebase in Rails 2.3.

:

는에서 살펴 보자.

일부 엔진에서보세요 :

기타 유용한 링크를

기능 측면에서 여전히 즉 특정 기능을 활성화 할 수있는 관리 영역을 가질 수있다. 사용자가 권한/역할 시스템을 통해 해당 영역에 액세스 할 수 있도록 허용하여 블로그 또는 위키를 보호하십시오.

당신은 워드 프레스 또는 줌라처럼 확장의 어떤 종류를 지원하는 CMS를 구축하려는 경우, 당신은 그것을 만들고적인 지침을 제공 중 하나를해야합니다 또는 적어도 사용자 관점에서 Engines/Plugins을 업로드/설치하는 방법을 살펴보십시오. 이

Redmine의 보안 문제에

확실하지 그들의 멋진 응용 프로그램에 이러한 종류의 기능을 걸었다. 당신은 Adva_CMS 기본적으로이 방식을 채택하고 그들의 CMS 응용 프로그램

HTH

a number of Engines을 만든 마지막 팁과 단서

source code 주위를 발굴 할 수 있습니다

4

엔진은 아직까지 꽤 단단한 방법 새로운 정보를 얻을 수있는 위치는 여기에 있습니다 : http://guides.rubyonrails.org/engines.html

하지만 필요한 것은 응용 프로그램에 따라 다릅니다. 많은 응용 프로그램이 시간이 지남에 따라 이러한 것들을 유기적으로 개발합니다. 그들은 수작업으로 이들 중 몇 가지를 만든 다음 소프트웨어 디자인 패턴과 일치하는 패턴을 찾아 플러그인 프레임 워크를 개발할 때까지 주기적으로 다시 팩터링합니다.

최종 사용자에게 인터페이스를 공개하겠습니까? 제 3 자 개발자에게? 이 플러그인이 애플리케이션의 어떤 부분을 제어합니까? 프레젠테이션 계층일까요? 데이터 모델에 영향을 줍니까? 어떤 종류의 외부 인터페이스를 게시 할 때 명예를 맺어야하는 계약을 개발하고 있다는 사실을 고려하십시오.

다음 디자인 패턴을 확인할 수 있습니다 : http://en.wikipedia.org/wiki/Software_design_pattern. 그들은 당신이 당신의 개발 프로세스를 관리하는 방법을 이해하도록 도와 줄 것입니다. 내부 용 플러그인을 사용하고 있다면, 그 플러그인의 실제 목적은 무엇입니까? 모듈이 모듈과 다른 점은 무엇입니까?

관련 문제