レールから外れたルビー


114

私の会社がRuby on Railsではなく、Rubyを使用している世界で唯一の会社であると感じていることがあります。

これは本当のことではないと思いますが、Rails以外のRubyの使用法についての話を聞くのは楽しいでしょう。

回答:


51

Rubyの大きな利点の1つは、DSLを非常に簡単に作成できることです。Rubyでは、通常、ビジネスアナリストが使用するのに十分簡単な自然言語の方法で「ビジネスルール」を作成できます。この目的のために、Web開発以外の多くのRubyアプリが存在します。

私はいくつかの優れた読書のためにグーグル "ruby dsl"を強くお勧めしますが、特に1つの投稿を残しておきたいと思います。Russ OlsenがDSLに関する2部構成のブログ投稿を書きました。私は彼がDSLについてプレゼンテーションをするのを見ました、そしてそれはとても良かったです。これらの投稿を読むことを強くお勧めします。

Obie FernandezによるRuby DSLに関するこの素晴らしいプレゼンテーションも見つけました。強く読んでください!


4
Rubyのデジタル加入者線?

5
ドメイン固有言語
Sixty4Bit

18

私の仕事ではRubyを多用しており、どれもRails(またはWeb)ベースではありません。

私のドメインは通常、クライアント側のWindowsアプリケーション(wxRuby GUI)とスクリプトであり、Excel、Internet Explorer、SQL Serverクエリ、およびレポート生成(win32ole COMオートメーション)を自動化しています。また、さまざまなデータの変更とグラフ生成タスクのために、sqlite、pdf-writer、およびgruffライブラリを使用しています。

Railsの成功はRubyにとって素晴らしいものでしたが、Railsが非常に注目を集めており、Webを超えたRubyの価値がしばしば見過ごされていることに同意します。


17

私たちは主にC ++ショップですが、Rubyが非常に有用であることがわかっているいくつかの領域を見つけました。ここにいくつかあります:

  • コード生成-単一の入力ファイルからC ++ / Java / C#コードを生成するためにいくつかのDSLを構築
  • ビルドサポート
    • Visual StudioプロジェクトファイルからUNIX用のMakefileを生成するスクリプト
    • プロジェクトを構築し、Cruise Controlの出力をフォーマットするためのスクリプト
    • 単体テストを実行し、Cruise Controlの出力をフォーマットするためのスクリプト
    • コマンドラインからVisual Studioプロジェクトとソリューションを操作するためのスクリプト
  • 統合テスト-Rubyを使用すると、C ++よりもはるかに迅速でクリーンなテストを実行できます。
  • QAのテストスイート全体はRubyで作成されています

Rubyは基本的に、意味のある場所に行くためのツールです。そして、それは多くの場所で理にかなっています。


1
CMakeを使用してUnix(Makefile)とWindows(Visual Studio)の両方のビルドファイルを生成することを真剣に検討する必要があります。
JesperE 2008年

13

Google SketchupはRubyを埋め込みスクリプト言語として使用しています。これを使用して、あらゆる種類の3Dモデリングおよびインポート/エクスポートタスクを実行できます。スクリプトは無料バージョンで動作し、まともなドキュメントもあります


うーん、面白い。Sketchupをいじる時間を確保するように心がけるべきです。
JesperE 2009

9

C ++で記述された自作の拡張機能を備えたRubyは、私の写真処理のためのすべての重いピクセルプッシュを行います。私はPython + numpyを使用していましたが、芸術的なことをするときは、Rubyの方が楽しいです。また、優れた画像処理ライブラリが比較的不足しているか、成熟度が低いため、ホイールを再発明しているような気分になりません。私はそれについて聞いたことがないのとは別に、Railsについては無知です。





6

RubyCocoaおよびMacRuby。Railsなしで完全なCocoaベースのGUIアプリを作成することができます。そして、Interface Builderも使用できるようになります。


6

私は去年、Rubyをたくさん使った美術館プロジェクトに取り組みました。(http:// http://ourspace.tepapa.com/home

私がほとんどの時間を費やした部分は、インタラクティブなフロアマップでした。床のマップにはセンサーが付いているので、人が歩くとライトがトリガーされ、壁のディスプレイに画像またはビデオとオーディオトラックが再生されます。

展示のこの部分の制御コードはすべてルビーです。私はルビーラッパーを使用してCインターフェースを記述し、フロアセンサーや照明コントローラーと通信しました。システムは、表示するメディアファイルをMYSQLデータベースに照会し、壁のコンピューターにUDP経由でメディアを再生するよう指示します。

展示全体の中で最も信頼できる部分です。

展示の他の主要部分であるウォールにはRubyが使用されましたが、私はそれとはあまり関係がありませんでした。ほとんどのグラフィックは、OpenGL、Cocoaの一部、および物理ライブラリーへのインターフェースを使用してRubyでプロトタイプ化された後、純粋なObj-Cに移植されました。


6

人形とシェフ:DevOps

人形シェフについての言及はありませんでした到着する前の30の回答には、。Rubyは、クラウドオートメーションにおける現在の作業を支配しているようであり、これら2つの大手企業のベース、拡張、およびテンプレート言語です。これらは主に、サーバーアレイと一般的なITワークステーションの管理のためにシステムとアプリケーションの構成情報を配布するために使用されます。

DevOpsチームのフィールドはかなりRubyの認識です。今日、Perlには競合相手がいます。本当に単純なスクリプトは、依然としてsh(1),複雑なタスクのためにしばしば直接書かれているかもしれませんが、今ではPerlではなくRubyで行われるかもしれません。


5

私が仕事でRubyを使って行った唯一のサイトはRailsを使用していますが、Merbを試してみたいと思います。

それ以外にも、Rubyで多くの小さなユーティリティプログラムを実行しています。たとえば、RSSフィードを読み取り、新しい投稿をデータベースにインポートするアプリです。

それは楽しいので、それがとても速いからといって、私はいくつかのばかげたものも書きます。昨日、モンティホールの問題を 10万回再生するアプリを書いて、友人が教授に切り替えが正しい戦略であることを説得できるようにしました。


1
ねえ、教授はこのゲームの背後にある純粋な論理を理解できなければならず、シミュレーションは必要ありません。
vava

あなたのアルゴリズムを見てみたいです。
マセック

私が正しく理解していれば、MerbはRails 3にかなり吸収されています-または少なくともクロス受精、またはあなたがそれを呼びたいものは何ですか
Andy

4

ルビーはレールのことだと、私はほとんど侮辱します。CGIが最新のトレンドであり、perlを知っているならCGIアプリをプログラムしたからといって、それをしなければならないと誰もが思ったときのようです。Rubyは私にとっては単なるスクリプト言語ですが、Pythonほど成熟していないので、そのフープと最近の変更のいくつかを飛ばさなければならなかったことを少し後悔していますが、それでも気に入って使用しています。私はJavaショップで働いているため、スクリプト言語にはgroovyが理想的ですが、自宅ではルビーを使用し、職場で共有する必要のないスクリプトを捨てます。

私はあらゆる話題からRoRに入るのを検討していましたが、それがどれほど速く/簡単であるかを考えていましたが、レールを調べた後他のどの開発よりも驚くべき、または少し革新的であるか、開発が急速に進んでいるものは何もありませんでしたフレームワーク。私が見た唯一の利点はルビーでコーディングできることでしたが、それは良いことですが、初期設定、サーバーのメンテナンス、スケーリングがより困難であり、ルビーでのコーディングの楽しさを再相殺しました。


4

ラックベースのWebアプリケーションについて説明するために、プレゼンテーション(偶然にもOff The Railsという名前)を作成しました。

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

gitリポジトリには、Markdown形式のスライドとサンプルコード(実行中のアプリケーションとミドルウェアの形式)が含まれています。ここに要約があります:

Ruby on Railsは、Rubyで最も人気のあるWebアプリケーションフレームワークです。しかし、それだけではありません!Railsが大きすぎる、または独断的すぎる、または何でもあると思われる場合は、Rack上に構築されたいわゆるマイクロフレームワークの新世代について学ぶことができます。また、Rails 3はそれ自体がRackアプリであるため、SinatraルートやGrape APIのメリットを得るためにRailsをあきらめる必要はありません。

そしてここにいくつかの参照があります:

お役に立てば幸いです。


4

私は主にWeb開発者であり、RubyでRailsを使用することを学びましたが、JRubyとMonkeybarsを使用してRubyでデスクトップSwingアプリケーションの開発を始めたので、この言語が好きです。私はJavaに長けていますが、それを使うのはあまり好きではなく、Swing APIは恐ろしいので、Rubyを上に置くことは大きな勝利でした。


3

私たちは主にRailsを使用していますが、他の多くのRails以外のRubyのものもあります。たとえば、ユーザーを集中認証するためのスタンドアロン認証デーモンのものや、任意の数のRubyプロセスを実行して並列に画像を処理する「画像処理サーバー」などです。

ああ、古き良き熊手を忘れないでください:-)


3

Rubyはデスクトップアプリケーションにも使用されます。特に、JRubyを使用したSwingデスクトップアプリケーションの開発。


3

私は仕事でRubyを使用しました

  • バイナリ出力からcsvファイルを生成するデータエクストラクター。
  • シンプルな構文を反復的な.ini形式に変換する.iniファイルジェネレーター。
  • テスト中に顧客のシステムの代理として機能する単純なTCP / IPサーバー。

3

Rubyを使用してテスト自動化ソフトウェアを実装します。これには、Selenium RC、WATIR、AutoITのテストフレームワークとドライバーコードが含まれます。

Rubyは、SeleniumやWATIRなどのテストツールとやり取りできる包括的なアプリケーションを作成すると同時に、データファイルからの読み取り、リモートのWindows UIとの対話、およびほぼ透過的なネットワーク通信の実行に十分強力です。すべてWindowsまたはLinuxで実行中。

整然とした構文は、初心者および未経験のプログラマーが読むのに理想的です。その完全なオブジェクト指向の性質により、同じプログラマーが最初から優れた(最近学んだ)オブジェクト指向の手法を簡単に適用できるようになります。

Rubyの構文の柔軟な性質により、DSLの使用と作成もはるかに簡単になります。これにより、技術にあまり詳しくない人でも、独自のテストを実行したり、読んだり、場合によっては作成したりできます。


すべての宝石がWindowsでうまく動作するわけではありません。Linuxは、私の経験上、rubyを実行するのにはるかにスムーズな環境です。
ゾンビ

3

要件が不安定なプロジェクトで、C#およびT-SQLストアドプロシージャのコード生成にRubyを使用しました。データモデルはYAMLファイルにエンコードされ、クラスとストアドプロシージャには.erbテンプレートが使用されました。また、コードジェネレーターで繰り返しコードを単一のメソッドに分解できるため、ストレートC#で可能なものよりもはるかに多くのDRYソリューションが可能になります。


3

私が働いている場所では、Rubyを使用してさまざまな1回限りのバッチジョブを実行しています。その1つの例は、AmazonのS3サービスとやり取りするジョブです。当時、Ruby S3ライブラリはおそらく、短時間で起動して実行するのに最も簡単なライブラリでした。


3

私は注文処理エキスパートシステム(DSLの回答も参照)を作成し、10万行の顧客固有のperlを数万の顧客を処理する約10k行のルビーに変換しました。Webコンポーネントは一切なく、Railsもありません。


3

私はwebdriverユーザーです。rubyは、rakeのおかげでビルドプロセスを自動化するためにwebdriverによって使用されます。詳細については、http://code.google.com/p/webdriver/を参照してください


3

ええ、素晴らしい質問です。

パイロット用のアプリを作成しているときに、Rubyを使用してExcelスプレッドシートの空港施設データをAndroid電話プラットフォーム用のsqlite3に変換しました。


3

RubyとRailsよりもはるかに簡単なSinatraを使用しています。私はRailsを使用しましたが、RailsはJavaで使用可能なWebフレームワークと比較してまだ素晴らしいですが、それが少し怪物に変わっていることに気づきました。

ただし、Rubyの主な機能は「eval」と「method_missing」です。これは、Railsが実際にたとえばActiveRecordで使用しているため、驚くべき「find_by-field-name-」クエリを使用できます。


3

Rubyをバックエンドコードの多くに使用したのは、それを実行するように任された唯一の人物であり、非常に生産性が高く、保守しやすいコードを記述できる素晴らしいクリーンな言語が必要だったからです。Rubyを使用すると、PerlやPythonよりも簡単にそれを実行できます。他の人の走行距離はそれで異なるかもしれませんが、それは私にとってはうまくいきます。

それ以外にも、SequelとNokogiriの動作が気に入っています。Railsとは別にActiveRecordをしばらく使用しました。



2

Rubyを専門的に使用して、ファイルのシャッフルなどの簡単なスクリプトを作成しました。Railsに触れる前に、最初にRubyを使用していたのと同じです。


2

ボルダーには、毎月会う優れたRubyユーザーのグループがありました。この点は、RubyはRailsでの使用以外にも存在するということです。単純なRubyユーザーは存在し、注意を求めており、見栄えの良いものを持っていて、ユーザーグループ会議でお互いを見つけることができます。

彼らはまた、その月の同じ日に会ったPythonグループよりも良いピザを食べました。1つだけ選択できます...


1
うん、でもPythonグループはPyの方がいい!(冗談、私は知っている、私は知っている...)
dguaraglia '09 / 09/30

私は笑うことを忘れてしまったので、面白いです!8P
DarenW 2008年

2

私たちはいくつかのRailsアプリを稼働させていますが、かなり集中的な非Web作業にもRubyを使用しています。

メッセージをキューからプルして配信するSMS配信デーモンと、他のアプリが呼び出すことができるクレジットカード処理デーモンがあり、中央の監査証跡があることを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.