루비 오프 더 레일


114

때때로 우리 회사가 Ruby를 사용하는 세계에서 유일하게 Ruby on Rails를 사용하지 않는 회사라는 느낌이들 때가 있습니다. Rails가 Ruby와 거의 동의어가 될 정도입니다.

이것이 사실이 아니라고 확신하지만 레일스가 아닌 Ruby 사용에 대한 이야기를 들으면 재미있을 것입니다.

답변:


51

Ruby의 큰 장점 중 하나는 DSL을 매우 쉽게 만들 수 있다는 것입니다. Ruby를 사용하면 일반적으로 비즈니스 분석가가 사용하기에 충분히 쉬운 자연어 방식으로 "비즈니스 규칙"을 만들 수 있습니다. 웹 개발 이외의 많은 Ruby 앱이 이러한 목적으로 존재합니다.

나는 훌륭한 읽기를 위해 인터넷 검색 "ruby dsl"을 강력히 추천하지만, 특히 하나의 포스트를 남기고 싶습니다. Russ Olsen은 DSL 에 대해 두 부분으로 된 블로그 게시물 을 작성했습니다 . 나는 그가 DSL에 대한 프레젠테이션을하는 것을 보았고 그것은 매우 좋았다. 이 게시물을 읽는 것이 좋습니다.

또한 Obie Fernandez의 Ruby DSL에 대한훌륭한 프레젠테이션을 발견했습니다 . 적극 추천하는 독서!


4
Ruby의 디지털 구독자 라인?

5
도메인 특정 언어
Sixty4Bit

18

나는 내 작업에서 Ruby를 광범위하게 사용하고 있으며 Rails (또는 웹) 기반이 아닙니다.

내 도메인은 일반적으로 클라이언트 측 Windows 응용 프로그램 (wxRuby GUI) 및 스크립트이며 Excel, Internet Explorer, SQL Server 쿼리 및 보고서 생성 (win32ole COM 자동화)을 자동화합니다. 또한 다양한 데이터 정리 및 그래프 생성 작업을 위해 sqlite, pdf-writer 및 gruff 라이브러리를 사용합니다.

Rails의 성공은 Ruby에게 큰 도움이되었지만, Rails가 웹을 넘어선 Ruby의 가치가 종종 간과 될 정도로 많은 관심을 받았다는 데 동의합니다.


17

우리는 주로 C ++ 상점이지만 Ruby가 매우 유용한 것으로 입증 된 여러 영역을 발견했습니다. 다음은 몇 가지입니다.

  • 코드 생성-단일 입력 파일에서 C ++ / Java / C # 코드를 생성하기 위해 여러 DSL 구축
  • 빌드 지원
    • Visual Studio 프로젝트 파일에서 Unix 용 Makefile을 생성하는 스크립트
    • 프로젝트를 빌드하고 Cruise Control의 출력 형식을 지정하기위한 스크립트
    • 단위 테스트를 실행하고 Cruise Control의 출력 형식을 지정하는 스크립트
    • 명령 줄에서 Visual Studio 프로젝트 및 솔루션을 조작하기위한 스크립트
  • 통합 테스트-C ++보다 Ruby를 사용하여 훨씬 빠르고 깔끔하게 테스트를 진행할 수 있습니다.
  • QA의 전체 테스트 스위트는 Ruby로 작성되었습니다.

Ruby는 기본적으로 그것이 의미있는 곳을위한 도구입니다. 그리고 그것은 많은 곳에서 의미가 있습니다.


1
CMake를 사용하여 Unix (Makefiles) 및 Windows (Visual Studio) 용 빌드 파일을 생성하는 것을 진지하게 고려해야합니다.
JesperE

13

Google Sketchup 은 Ruby를 포함 된 스크립팅 언어로 사용합니다. 이를 사용하여 모든 종류의 3D 모델링 및 가져 오기 / 내보내기 작업을 수행 할 수 있습니다. 스크립팅은 무료 버전에서 작동하며 괜찮은 문서도 있습니다.


흠, 흥미 롭군요. 저는 Sketchup을 가지고 놀 수있는 시간을 갖도록 노력해야합니다.
JesperE

9

C ++로 작성된 홈브류 확장 기능이있는 Ruby는 내 사진 처리를위한 모든 무거운 픽셀을 처리합니다. 나는 Python + numpy를 사용하고 있었지만 예술적인 일을 할 때 Ruby가 더 재미 있습니다. 또한 좋은 이미지 처리 라이브러리가 상대적으로 부족하거나 덜 성숙하기 때문에 바퀴를 재창조하는 것처럼 느껴지지 않습니다. 나는 들어 본 것 외에는 Rails에 대해 전혀 모르고, 그것이 무엇인지 모호하고, 실제로 그것에 대한 책을 가지고있다 (미개봉)


8

우리는 Watir (Ruby 라이브러리)를 사용하여 .net 웹 애플리케이션을 테스트합니다.


Watir는 매우 유용합니다. 때때로 Ruby를 통해 Selenium을 사용합니다.
Swanand

7

초보 프로그래머를 대상으로 한 Ruby에서 GUI를 구축하기위한 간단한 API 인 Shoes를 확인하십시오 .



6

RubyCocoa 및 MacRuby. Rails없이 완전한 Cocoa 기반 GUI 앱을 만들 수 있습니다. 그런 다음 Interface Builder도 사용하게됩니다.


6

작년에 루비를 많이 사용하는 박물관 프로젝트에 참여했습니다. ( http : // http : //ourspace.tepapa.com/home )

제가 대부분의 시간을 보냈던 부분은 인터랙티브 플로어 맵이었습니다. 바닥에있는지도에는 센서가있어 사람들이 걸을 때 조명이 켜지고 벽에있는 디스플레이에 이미지 나 비디오 및 오디오 트랙이 표시됩니다.

전시회의이 부분에 대한 모든 제어 코드는 루비입니다. 바닥 센서 및 조명 컨트롤러와 통신하기 위해 루비 래퍼로 C 인터페이스를 작성했습니다. 시스템은 표시 할 미디어 파일을 MYSQL 데이터베이스에 쿼리 한 다음 벽에있는 컴퓨터에 UDP를 통해 미디어를 재생하도록 지시합니다.

전체 전시회에서 가장 신뢰할 수있는 부분입니다.

Ruby는 전시회의 다른 주요 부분 인 Wall에 사용되었지만 그와 관련이별로 없었습니다. 대부분의 그래픽은 순수 Obj-C로 이식되기 전에 OpenGL, 약간의 Cocoa 및 물리 라이브러리에 대한 인터페이스를 사용하여 루비로 프로토 타입되었습니다.


6

Puppet 및 Chef : DevOps

꼭두각시 또는 요리사에 대한 언급을 보지 못했습니다. 도착하기 전 30 개의 답변에서 에 . Ruby는 클라우드 자동화의 현재 작업을 지배하는 것으로 보이며이 두 대기업의 기본, 확장 및 템플릿 언어입니다. 주로 서버 어레이 및 일반 IT 워크 스테이션 관리를위한 시스템 및 응용 프로그램 구성 정보를 배포하는 데 사용됩니다.

개발 운영의 필드는 매우 루비 알고있다. 오늘날 Perl에는 경쟁자가 있습니다. 정말 간단한 스크립트는 종종 sh(1),복잡한 작업을 위해 직접 작성 될 수 있지만 이제는 Perl이 아닌 Ruby로 수행 될 수 있습니다.


5

Ruby로 작업 한 유일한 사이트는 Rails를 사용하는 것 입니다. 하지만 Merb 를 사용해보고 싶습니다 .

그 외에는 Ruby에서 많은 작은 유틸리티 프로그램을 수행합니다. 예를 들어 RSS 피드를 읽고 새 게시물을 dabase로 가져 오는 앱입니다.

재미있어서 너무 빠르기 때문에 멍청한 글도 써요. 어제 플레이 할 앱을 썼어요 몬티 홀 문제를 10 만 번 친구가 전환이 올바른 전략이라고 교수를 설득하도록 돕습니다.


1
교수님은이 게임의 순수한 논리를 이해할 수 있어야합니다. 시뮬레이션이 필요하지 않습니다.
vava

당신의 알고리즘을보고 싶습니다.
maček

내가 올바르게 이해한다면 Merb는 Rails 3에 거의 흡수되거나 적어도 교차 수정되거나 당신이 부르고 싶은 것이 있습니다.
Andy

4

나는 루비가 가로장이라는 것을 거의 모욕한다. CGI가 최신 트렌드 였고 모두가 Perl을 안다면 CGI 앱을 프로그래밍했기 때문에 그렇게해야한다고 생각했던 것과 같습니다. Ruby는 저에게 스크립팅 언어 일뿐입니다. 비록 파이썬만큼 성숙하지는 않았기 때문에 몇 가지 후프와 최근 변경 사항을 건너 뛰어야하는 것을 다소 후회하지만 여전히 좋아하고 사용합니다. 내가 자바 상점에서 일하기 때문에 그루비는 스크립팅 언어에 이상적인 선택이지만, 여전히 집에서 루비를 사용하고 직장에서 공유 할 필요가없는 스크립트를 버리는 데 사용합니다.

나는 모든 버즈와 그것이 얼마나 빠르고 / 간단한 지에서 RoR에 들어가는 것을 고려하고 있었지만 레일을 살펴본 후에는 다른 어떤 것에 비해 그 개발에 대해 놀랍거나 혁신적이거나 빠른 속도를 전혀 보지 못했습니다. 뼈대. 내가 본 유일한 이점은 루비로 코딩 할 수 있다는 것이 었는데, 이는 좋겠지 만 초기 설정, 서버 유지 관리 및 확장이 더 어렵 기 때문에 루비 코딩의 즐거움을 다시 상쇄했습니다.


4

저는 랙 기반 웹 애플리케이션을 논의하기 위해 우연히 Off The Rails라는 프레젠테이션을 만들었습니다.

https://github.com/alexch/Off-The-Rails

git repo에는 Markdown 형식의 슬라이드와 샘플 코드 (실행중인 애플리케이션 및 미들웨어 형태)가 포함되어 있습니다. 초록은 다음과 같습니다.

Ruby on Rails는 가장 널리 사용되는 Ruby 용 웹 애플리케이션 프레임 워크입니다. 그러나 그것은 유일한 것이 아닙니다! Rails가 너무 크거나 너무 독단적이라고 생각한다면 Rack에 구축 된 차세대 마이크로 프레임 워크에 대해 기뻐할 것입니다. 그리고 Rails 3는 자체적으로 Rack 앱이기 때문에 Sinatra 경로 또는 Grape API의 이점을 얻기 위해 Rails를 포기할 필요가 없습니다.

다음은 몇 가지 참고 자료입니다.

도움이 되었기를 바랍니다.


4

저는 주로 웹 개발자이고 Ruby를 사용하여 Rails를 사용하는 방법을 배웠지 만 언어가 너무 좋아서 JRuby와 Monkeybars를 사용하여 Ruby로 데스크톱 Swing 애플리케이션을 개발하기 시작했습니다. 저는 Java에 능숙하지만 사용하는 것을별로 좋아하지 않으며 Swing API가 끔찍하기 때문에 Ruby를 맨 위에 놓는 것이 큰 승리였습니다.


3

우리는 주로 레일을 사용하지만 레일이 아닌 루비가 많이 있습니다. 예를 들어, 사용자의 중앙 집중식 인증을위한 독립형 인증 데몬과 이미지를 병렬로 처리하기 위해 임의의 수의 루비 프로세스를 실행하는 '이미지 처리 서버'가 있습니다.

아, 그리고 좋은 오래된 레이크를 잊지 마세요 :-)


3

Ruby는 데스크톱 응용 프로그램에도 사용됩니다. 특히 스윙 데스크톱 애플리케이션을 개발하기 위해 JRuby를 사용합니다.


3

직장에서 Ruby를 사용했습니다.

  • 바이너리 출력에서 ​​csv 파일을 생성하는 데이터 추출기.
  • 간단한 구문을 반복적 인 .ini 형식으로 바꾸는 .ini 파일 생성기.
  • 테스트 중에 고객의 시스템을위한 스탠드 인 역할을하는 간단한 TCP / IP 서버.

3

테스트 자동화 소프트웨어를 구현하기 위해 Ruby를 사용합니다. 여기에는 Selenium RC, WATIR 및 AutoIT에 대한 테스트 프레임 워크 및 드라이버 코드가 포함됩니다.

Ruby는 Selenium 또는 WATIR과 같은 테스트 도구와 인터페이스 할 수있는 포괄적 인 응용 프로그램을 만들 수있을만큼 강력하며 동시에 데이터 파일에서 읽고 원격 Windows UI와 상호 작용하며 거의 투명한 네트워크 통신을 수행합니다. Windows 또는 Linux에서 실행되는 동안 모두 가능합니다.

깔끔한 구문은 새롭고 경험이없는 프로그래머가 읽기에 이상적입니다. 완전히 OO 특성으로 인해 동일한 프로그래머가 처음부터 좋은 (최근에 배운) OO 기술을 쉽게 적용 할 수 있습니다.

Ruby 구문의 유연한 특성으로 인해 DSL을 훨씬 쉽게 사용하고 만들 수 있습니다. 이를 통해 기술 수준이 낮은 사람들이 자신의 테스트를 호출하고 읽고 만들 수 있습니다.


모든 보석이 창문에서 잘 작동하는 것은 아닙니다. Linux는 내 경험상 Ruby를 실행하기에 훨씬 더 부드러운 환경입니다.
Zombies

3

요구 사항이 불안정한 프로젝트에서 C # 및 T-SQL 저장 프로 시저의 코드 생성에 Ruby를 사용했습니다. 데이터 모델은 YAML 파일로 인코딩되었으며 .erb 템플릿은 클래스 및 저장 프로 시저에 사용되었습니다. 또한 반복 코드가 코드 생성기에서 단일 메서드로 팩터링 될 수 있기 때문에 직선 C #으로 가능했던 것보다 훨씬 더 많은 DRY 솔루션을 허용했습니다.


3

제가 일하는 곳에서는 Ruby를 사용하여 다양한 일회성 유형의 일괄 작업을 수행합니다. 한 가지 예는 Amazon의 S3 서비스와 상호 작용하는 작업입니다. 당시 Ruby S3 라이브러리는 우리가 짧은 시간에 시작하고 실행할 수있는 가장 쉬운 라이브러리였습니다.


3

주문 처리 전문가 시스템 (DSL 답변 참조)을 작성하여 10 만 줄의 고객 별 펄을 수십 명의 고객을 처리하는 약 10 만 줄의 루비로 변환했습니다. 웹 구성 요소가 전혀없고 Rails도 없습니다.


3

저는 웹 드라이버 사용자입니다. ruby는 rake 덕분에 빌드 프로세스를 자동화하기 위해 webdriver에서 사용됩니다. 자세한 내용은 http://code.google.com/p/webdriver/ 를 참조하세요.


3

헤, 좋은 질문입니다.

저는 Ruby를 사용하여 Excel 스프레드 시트 공항 시설 데이터를 Android 전화 플랫폼 용 sqlite3로 변환하면서 조종 사용 앱을 만들었습니다.


3

저는 Rails보다 훨씬 간단한 Sinatra와 함께 Ruby를 사용합니다. Rails를 사용했지만 Rails는 Java에서 사용할 수있는 웹 프레임 워크에 비해 여전히 놀랍지 만 약간 괴물로 변했다는 것을 알았습니다.

그러나 내가 좋아하는 Ruby의 주요 기능은 "eval"및 "method_missing"입니다. Rails는 실제로 예를 들어 ActiveRecord에서 사용하여 놀라운 "find_by-field-name-"쿼리를 사용할 수 있습니다.


3

저는 많은 백엔드 코드에 Ruby를 사용했습니다. 그 이유는 제가 작업을 맡은 유일한 사람이고 매우 생산적이고 유지 관리하기 쉬운 코드를 작성할 수있는 깔끔한 언어가 필요했기 때문입니다. Ruby를 사용하면 Perl과 Python보다 쉽게 ​​할 수 있습니다. 다른 사람들의 마일리지는 그에 따라 다를 수 있지만 저에게는 잘 작동합니다.

그 외에도 Sequel과 Nokogiri의 작동 방식이 마음에 듭니다. 또한 Rails와 별도로 ActiveRecord를 잠시 사용했습니다.


2

파일 조작을 위해 일부 Ruby를 사용하지만 아직 레일을 통합 할 수 없습니다.


2

파일 셔플 링과 같은 빠른 스크립트를 위해 Ruby를 전문적으로 많이 사용했습니다. Rails를 만지기 전에 Ruby를 먼저 사용했던 것과 같은 방식입니다.


2

Boulder에는 매달 만난 훌륭한 Ruby 사용자 그룹이있었습니다. 이 요점은 Ruby가 Rails에서 사용하는 것 외에 존재한다는 것입니다. 평범한 루비 사용자는 존재하고, 관심을 구걸하고, 깔끔한 것을 보여주고, 사용자 그룹 회의에서 서로를 찾을 수 있습니다.

그들은 또한 같은 날에 만난 파이썬 그룹보다 더 좋은 피자를 먹었습니다. 하나만 고를 수 있습니다 ...


1
네,하지만 파이썬 그룹은 더 나은 Py를 가졌습니다! (절름발이 농담, 알아, 알아 ...)
dguaraglia

너무 재밌어 나는 웃기는 것을 잊었다! 8P
DarenW

2

작업중인 Rails 앱이 여러 개 있지만 상당히 집약적 인 비 웹 작업에도 Ruby를 사용합니다.

대기열에서 메시지를 가져온 다음 전달하는 SMS 전달 데몬과 다른 앱이 호출 할 수있는 신용 카드 처리 데몬이있어 중앙 감사 추적이 있는지 확인합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.