2009-11-05 4 views
4

Apps/Script 용 Ruby MVC 프레임 워크에 대해 들어 본 사람이 있습니까?Ruby App MVC 프레임 워크 (웹이 아님)

레일즈가 출현 한 것은 웹 개발자들에게 MVC를 가져다 주었기 때문에 한번은 혁명적 인 도구 였고, 한번은 디자인 패턴과 규칙을 사용하도록 강요했다. 나는 그런 것을 찾고 있지만, cron이나 사용자에 의한 평범한 관리 작업을 스크립팅하기 위해 : 업데이트, 백업, 관리 도구 상자 등. 이제는 모든 사람들이 자신 만의 설정 방법을 가지고 있다고 확신합니다. 애플 리케이션 및 도구 상자,하지만 일을 MVC 방법이 있는지 궁금 해서요. 디자인 패턴과 규칙을 사용하게 만드는 무언가 (나는 다른 사람들이 가끔씩 단축키를 사용한다고 확신하는 것처럼 유죄입니다.)

이제 narf와 bowline을 시도해 보았습니다.하지만 narf는 버려졌고 bowline은 GUI를 목표로하고 초기 알파 상태입니다.

피드백을 바탕으로 새 웹 응용 프로그램을 시작할 때 - 아무리 작아도 루비 또는 머블을 사용하거나 분주하게 사용할 수 있습니다. 이러한 프레임 워크의 모든 장점과 모범 사례를 사용하려면이 작업을 수행하십시오. 물론 당신은 당신의 작은 서버와 하나의 파일 웹 어플리케이션을 작성할 수 있습니다,하지만 왜? 그래서 애플 리케이션/스크립트를위한 프레임 워크가 있는지 궁금하네요.

누구에게 추천이 있습니까? @Michael :


아래 몇 가지 의견에 대한 언급을 둘 다 잘하지만, 전에 요리사와 꼭두각시로보고 - 그들은 응용 프로그램을 작성하지, 설치 작업을 자동화에 대한 더 많은입니다.

@ 만수 : 나는 Cron이나 Scheduled Tasks를 교체하고 싶지 않습니다. 이미 잘하고 있습니다. MVC 스크립트를 실행하기 만하면됩니다.

@Robert : Anvil은 버려진다고 소리를냅니다. 마지막 업데이트는 2007 년부터이며 GUI 프레임 워크로 조정되었습니다. 나는 이것이 과잉이라고 생각하지 않는다 - 그리고 그 이유는 바로 지금 약 40 개의 스크립트가 사용되어 (고객 CSV에서 MySQL로 데이터를 업데이트하고, 백업을 실행하고, FTP에서 스크립트를 실행하는 등), 나는 그것을 확신한다. 자랄거야 내가 깨닫게 된 사실은 내 스크립트 중 일부가 같은 일을한다는 것입니다. 즉, CSV에서 MySQL로 데이터를 업데이트하는 것과 같이 설정 파일을 사용하는 공통 라이브러리를 사용하도록 코드를 리팩토링했습니다. 그래서 나는 과잉 생각하지 않습니다. 나는 이미 이것에 대한 기본 틀이 있는지 궁금해하고 있었다.

@mereghost : RuGUI는 GUI 관점에서 매우 흥미로 우며 더 많은 조사가 필요합니다. 적극적으로 유지 관리되는 것 같습니다. 내가 그것을 사용할 수 있는지, 아니면 내가 그걸 기초로 무언가를 발전시킬 수 있는지 알게 될 것이다.

@bantic : 어떻게 내가 thor를 놓쳤는 지 확신하지 못한다. 나는 때때로 Katz의 블로그를 체크 아웃한다. 그것은 내가 찾고있는 것과 다소 비슷하지만, 여러 가지 옵션, 즉 copy 명령을 사용하는 방법에 관한 params를 가진 copy 명령을 사용하여 하나의 도구를 개발하는 것이 중요하지는 않습니다. 나는 많은 일을하는 앱이 더있는 곳에서 뭔가를 원한다.

@ Chuck : 척, 나는 DB를 업데이트하는 스크립트를 작성하기 전까지 거의 같은 생각을하고있었습니다. 그래서 그 의미에서 볼 수 없다면 M 부분의 MVC가 있습니다. 당신은 잠재적으로 하나의 뷰를 가지고 있다고 주장 할 수 있습니다 - 콘솔, 또는 심지어 여러개 - 내 스크립트가 매일 실행해야하고 공유에있는 일부 .xls 파일을 업데이트해야한다고 말하면서 csv로 그리고 아마도 tsv 파일로 출력하고, 클라이언트 서비스에 의해 소비되기 위해 XML을 수행 할 수 있어야합니다. 파일 유형으로의 변환 (레일즈의 포맷터라고도 함)은 컨트롤러에서 발생하지만 데이터의 실제 레이아웃 (일부 필드를 굵게 표시하고 .xls에서 파란색으로 표시하고 다시 정렬하려는 경우)이 View에서 발생해야합니다.필자는 필자가 복잡한 것을 끝내고 있다고 느낀다. 그러나 다른 한편으로는 PHP 개발자들이 Rails가 PHP가 정상적으로 작동 할 때까지 프레임 워크에 대해 말했던 것이다. :-)

또한이 예제를 계속 진행합니다. 다양한 스크립트에서 사용되는 ClientData라는 모델이 있다고 가정 해 봅니다. 일부는 해당 테이블에 쓰고 그 중 일부는 데이터를 가져옵니다. 지금 당장이 테이블의 여러 부분을 사용하여 csv를 가져 오거나 내보낼 수있는 4 개의 스크립트가 있으며 DBI :: MySQL을 사용하여 쿼리를 작성하고 실행합니다. 문제는 그 모델 (표)을 변경 한 후에 열 이름이나 그 밖의 변경 사항을 반영하기 위해 4 개의 스크립트를 모두 업데이트해야한다는 것입니다. 지금은 스크립트로드시 필요한 객체 및 구성 파일의 작은 lib가있는 것에 의지했습니다. 그러나 나는 Jerry-rigged solution보다는 이것을하기위한 적절한 틀을 사용하기를 바랬다 :-) 이것은 또한 웹 어플리케이션을위한 것이 아니다. 나는 웹 인터페이스가 필요 없다. - 이것에 접근 할 수있는 유일한 2 명은 나 자신과 다른 시스템 관리자 다. 잠재적으로 사용자에게 일종의 액세스 권한을 제공해야 할 수 있습니다. 권한이 부여 된 사용자가 특정 스크립트를 실행하도록 할 수는 있지만 필수 사항은 아니며 Sinatra를 부트 스트랩하여이를 수행 할 수 있다고 말합니다.

답변

1

레일 애플리케이션의 모든 구조를 원하는 것처럼 보이지만 관리자 작업에이 기능을 사용하는 것처럼 들리는 문제가 있습니다. 한 가지 해결책은 레일 자체를 사용하여 mvc, 테스트 및 많은 지원 소프트웨어를 얻는 것입니다. 대신 script/console을 실행하여 웹 응용 프로그램을 시작하는 대신 script/runner를 사용하여 레일스 프로젝트에서 루비 코드를 실행하십시오.이것은 당신이 오류없이 실행 얻을 골격입니다

마이그레이션 :

레일 CD 모델 백업을 레이크 DB를 생성/ 스크립트를 명령을 명령한다. 그런 다음 모델에 몇 가지 기능을 추가 : 끝 끝

데프 백업 데프 데이터베이스 넣어 "백업 데이터베이스 내부"및 스크립트/러너

스크립트/러너 "Backup.new으로 실행() .do_database "

그리고 웹 앱으로 만들기로 결정했다면 코드를 옮길 필요가 없습니다. 재사용 할 코드가 있으면 기존 웹 앱에이 아이디어를 추가 할 수도 있습니다.

+0

Joe, 재미있는 제안을 살펴 봐야 할 것입니다. 나는 그것이 내가 찾고 있었던 것에 가장 가깝다고 생각한다. 그리고 그것이 작동하지 않는다면 나는 항상 새로운 해결책을 개발할 수 있습니다. :-) – konung

0

저는 cronedit과 같은 라이브러리를 보았습니다.이 라이브러리를 사용하면 루비를 사용하여 cron 작업을 실행할 수 있습니다. 그러나 아직 생산 품질의 라이브러리를 보지 못했습니다. 하나를 쓰고 저희에게 알려주는 것이 좋습니다.

1

이것이 정확히 무엇인지 모르겠지만 상당히 균일 한 방식으로 관리 작업을 해결하는 데 도움이되는 chef framework을 고려해야합니다.

청구서에 정확하게 부합하지 않을 수도 있지만 영감을 줄 수도 있습니다.

1

GUI 응용 프로그램의 경우 RuGUI (또는 이와 비슷한)라는 "프레임 워크"가있었습니다.

스크립트의 경우 스크립트입니다. = p MVC 디자인 패턴을 작성할 수 있습니다. 실제로 프레임 워크가 필요하지 않습니다.

0

내 의견은 MVC는 sysadmin 작업과 관련하여 일종의 낭비라고 생각합니다. 따라서 실제로 모델이나 뷰가 없기 때문에 실제로 MVC를 원하지 않는다고 추측합니다. 컨트롤러와 결과 동작이 실제로 있습니까?

하지만 제대로 이해하고 있다면 관례를 원하며, 이런 식으로 꼭두각시는 아마도 정답 일 것입니다. 스크립팅 작업을위한 커뮤니티 지원 방법이며 cron 또는 원하는대로 실행할 수 있습니다.

사람들이 cPanel과 같은 관리 작업을 실행할 수 있도록 webapp를 원할 경우 rails/sinatra를 사용하여 지연된 작업 또는 그와 비슷한 작업을 수행 할 수 있습니다.

하나의 마지막 명령 줄 옵션은 서버 전체의 레이크 인 사케를 사용하고 그런 식으로 작업을 정의하는 것입니다.

내 가정이 정확합니까?

+0

내 의견을 남기려면 충분한 공간이 없습니다. 질문에 대한 답변을 참조하십시오. – konung

관련 문제