Рубин с рельсов

Иногда мне кажется, что моя компания - единственная компания в мире, использующая Ruby, но не Ruby on Rails, до такой степени, что Rails почти стала синонимом Ruby.

Я уверен, что это не совсем так, но было бы неплохо услышать некоторые истории об использовании Ruby без использования Rails.

Ответ 1

Одним из огромных преимуществ Ruby является возможность создания DSL очень легко. Ruby позволяет создавать "бизнес-правила" на естественном языке, который обычно достаточно прост для использования бизнес-аналитиком. Для этого существует множество приложений Ruby за пределами веб-разработки.

Я очень рекомендую googling "ruby dsl" для отличного чтения, но я хотел бы оставить вас с одним сообщением, в частности. Russ Olsen написал двухчастный пост в блоге в DSLs. Я видел, как он представил презентацию на DSL, и это было очень хорошо. Я настоятельно рекомендую прочитать эти сообщения.

Я также нашел эту . Очень рекомендуемое чтение!

Ответ 2

Я использую Ruby в своей работе, и ни одна из них не основана на Rails (или даже на веб-сайте).

Мой домен обычно является клиентским Windows приложениями (wxRuby GUI) и скриптами, автоматизирующими запросы Excel, Internet Explorer, SQL Server и генерация отчетов (автоматическая автоматизация COM). Я также использую библиотеки sqlite, pdf-writer и gruff для различных задач сбора данных и создания графиков.

Успех Rails был отличным для Ruby, но я согласен с тем, что Rails так много внимания уделяет тому, что значение Ruby за пределами Интернета часто пропускается.

Ответ 3

Мы в основном магазин С++, но мы нашли несколько областей, где Ruby оказался весьма полезным. Вот несколько:

  • Генерация кода. Построено несколько DSL для генерации кода С++/Java/С# из отдельных файлов ввода.
  • Поддержка сборки
    • скрипты для создания Makefile для unix из файлов проекта Visual Studio
    • скрипты для создания проектов и форматирования вывода для Cruise Control
    • для запуска наших модульных тестов и форматирования вывода для Cruise Control
    • скрипты для управления проектами и решениями Visual Studio из командной строки
  • Интеграционные тесты. Мы можем проверять тесты намного быстрее и чище с помощью Ruby, чем С++.
  • Полный комплект тестирования QA написан на Ruby

Ruby - это, в основном, мой инструмент, где это имеет смысл. И это имеет смысл во многих местах.

Ответ 4

Google Sketchup использует Ruby как встроенный язык сценариев. Вы можете использовать его для выполнения всех видов 3D-моделирования и задач импорта/экспорта. Сценарии работают со свободной версией и там даже достойная документация.

Ответ 5

Ruby с внутренним расширением, написанным на С++, делает все тяжелые пиксельные нажатия для моей обработки фотографий. Я использовал Python + numpy, но при выполнении artsy stuff, Ruby просто веселее. Также относительное отсутствие или меньшая зрелость, хорошие библиотеки обработки изображений заставляет меня чувствовать себя меньше, как я изобретаю колеса. Я не знаю о Rails, кроме того, что я слышал об этом, имеет нечеткое представление о том, что это такое, и на самом деле есть книга на нем (нераскрытая)

Ответ 6

Мы используем Watir (библиотека Ruby) для тестирования нашего веб-приложения .net.

Ответ 7

Отъезд Обувь - простой API для создания GUI в Ruby, предназначенный для начинающих программистов.

Ответ 8

Или вы можете использовать Ruby для создания музыки ala Giles Bowkett Archeopteryx. Эта презентация Giles о Archeopteryx является одной из лучших презентаций. Я очень рекомендую.

Ответ 9

RubyCocoa и MacRuby. Возможно создание полнофункциональных графических приложений Cocoa без Rails. И тогда вы также сможете использовать Interface Builder.

Ответ 10

В прошлом году я работал над музейным проектом, который использовал много Ruby. (http://http://ourspace.tepapa.com/home)

Частью, которую я провел большую часть своего времени, была интерактивная карта. Карта на полу имеет датчики, поэтому, когда люди ходят по ней, зажигаются и отображаются в изображениях на стенах или видео и звуковых дорожках.

Весь управляющий код для этой части экспоната - рубин. Я написал C-интерфейсы с рубиновыми обертками для связи с датчиками пола и контроллерами освещения. Система запрашивает базу данных MYSQL для отображения файлов мультимедиа, а затем сообщает компьютерам на стенах, чтобы они воспроизводили медиа через UDP.

Это самая надежная часть всего экспоната.

Ruby использовалась для большей части экспоната, Wall, хотя я не имел к этому никакого отношения. Большая часть графики была прототипирована в рубине, используя интерфейсы для OpenGL, немного Cocoa и библиотеку физики, прежде чем портироваться на чистый Obj-C.

Ответ 11

Кукольный и шеф-повар: DevOps

Я не видел упоминания Puppet или Chef в 30 ответах который предшествовал моему приезду. Ruby, похоже, доминирует над текущей работой в облачной автоматизации и является базовым, расширением и шаблоном языка этих двух крупных игроков. Они используются в основном для распространения информации о конфигурации системы и приложений для серверных массивов и для управления общей ИТ-службой.

Поле DevOps вполне соответствует Ruby. Сегодня у Perl есть конкурент. Хотя действительно простой script часто может быть написан непосредственно для sh(1),, сложная задача теперь может быть выполнена в Ruby, а не в Perl.

Ответ 12

Единственный сайт, который я сделал с Ruby на работе, - это использование Rails, но я бы хотел попробовать Merb.

Кроме этого, я делаю много небольших служебных программ в Ruby - например, приложение, которое читает RSS-каналы и импортирует новые сообщения в dabase.

Это весело, поэтому я также пишу немного тупой вещи, потому что это так быстро. Вчера я написал приложение, чтобы воспроизвести проблему Монти Холла 100 000 раз, чтобы помочь другу убедить своего профессора в том, что переключение является правильной стратегией.

Ответ 13

Я почти оскорбляю, что рубин - вещь рельсов. Это похоже на прошлое, когда CGI была последней тенденцией, и все решили, что если вы знаете perl, вы должны делать это только потому, что запрограммировали приложения CGI. Ruby - это всего лишь скриптовый язык для меня, хотя и не такой зрелый, как python, поэтому я несколько сожалею о том, что вам нужно перепрыгнуть через некоторые из его обручей и последние изменения, мне все равно нравится и использовать его. Хотя я работаю в java-магазине, и поэтому groovy является идеальным выбором для языка сценариев, я по-прежнему использую Ruby дома и забрасываю скрипты, которые не нужны для совместного использования.

Я подумывал о том, чтобы попасть в RoR из всего жука и как быстро/просто, но после просмотра рельсов я вообще ничего не видел, что было потрясающе или даже наименее инновационным или быстро развивалось по сравнению с его разработкой для любой другой структуры. Единственное преимущество, которое я видел, это то, что я мог бы закодировать в рубине, что было бы неплохо, но первоначальная настройка, обслуживание и масштабирование серверов сложнее, тем самым повторно компенсируя удовольствие от кодирования в рубине.

Ответ 14

Я создал презентацию, совпадающую с именем Off The Rails, для обсуждения веб-приложений на стойке:

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

Репо git включает слайды в формате Markdown и пример кода (в виде запущенных приложений и промежуточного программного обеспечения). Здесь реферат:

Ruby on Rails - самая популярная структура веб-приложений для Ruby. Но это не единственный! Если вы считаете, что Rails слишком велик или слишком упрям, или что-то еще, вы можете быть счастливы узнать о новом поколении так называемых микрокатегорий, построенных на Rack. И поскольку Rails 3 - это приложение Rack, вам не нужно отказываться от Rails, чтобы получить преимущество от маршрутов Sinatra или API Grape.

И вот несколько ссылок:

Надеюсь, вы сочтете это полезным!

Ответ 15

Я в основном веб-разработчик, и я изучил Ruby для использования Rails, но мне так нравится язык, что я начал разрабатывать настольное приложение Swing в Ruby, используя JRuby и Monkeybars. Я компетентен в Java, но мне не очень нравится использовать его, и Swing API ужасен, поэтому включение Ruby на вершине стало большой победой.

Ответ 16

В основном мы используем рельсы, но у нас есть много других рубиновых вещей без рельсов - например, автономная проверка подлинности для централизованной аутентификации пользователей и "сервер обработки изображений", который запускает произвольное количество рубиновых процессов для обработки изображений параллельно.

О, и не забывайте, старый добрый Rake: -)

Ответ 17

Ruby также используется для настольных приложений. Особенно использование JRuby для разработки настольного приложения Swing.

Ответ 18

Я использовал Ruby для работы

  • Вывод данных, генерирующий csv файлы из двоичного вывода.
  • Генератор файлов .ini, превращая простой синтаксис в повторяющийся формат .ini.
  • Простой сервер TCP/IP, действующий как stand-in для системы клиентов во время тестирования.

Ответ 19

Мы используем Ruby для реализации нашего программного обеспечения для автоматизации тестирования. Это включает в себя тестовую структуру и код драйвера для Selenium RC, WATIR и AutoIT.

Ruby достаточно мощный, чтобы создавать комплексные приложения, которые могут взаимодействовать с инструментами тестирования, такими как Selenium или WATIR, и в то же время читать из файлов данных, взаимодействуя с удаленным пользовательским интерфейсом Windows и осуществлять прозрачную сетевую связь. Все работает в Windows или Linux.

Незаряженный синтаксис делает его идеальным для новых и неопытных программистов для чтения. В то время как его полностью OO-природа облегчает для тех же самых программистов применение хороших (недавно выученных) методов OO с самого начала.

Гибкий характер синтаксиса Ruby также упрощает использование и создание DSL. Это позволяет менее техничным людям получать призывы, читать и, возможно, создавать собственные тесты.

Ответ 20

Я использовал Ruby для генерации кода хранимых процедур С# и T-SQL в проекте с нестабильными требованиями. Модель данных была закодирована в файле YAML, и для классов и хранимых процедур использовались шаблоны .erb. Это также позволило использовать гораздо более DRY-решение, чем было бы возможно с прямым С#, поскольку код повторения мог бы быть вычислен в один метод в генераторе кода.

Ответ 21

Где я работаю, мы используем Ruby для выполнения нескольких разных одноразовых пакетных заданий. Одним из примеров этого является работа, которая взаимодействует с сервисом Amazon S3. В то время библиотека Ruby S3 была, пожалуй, самой легкой из них, чтобы мы могли быстро встать и работать в течение короткого промежутка времени.

Ответ 22

Я написал экспертную систему обработки заказов (см. также ответ DSL), преобразовал 100 тыс. строк клиентского perl в около 10 тыс. строк рубинов, обрабатывающих десятки клиентов. Нет веб-компонентов вообще, нет Rails.

Ответ 23

Я пользователь webdriver. ruby используется webdriver для автоматизации процесса сборки благодаря грабли. Подробнее см. http://code.google.com/p/webdriver/

Ответ 24

Привет, большой вопрос.

Я использовал Ruby для преобразования данных Excel в таблицу Excel в sqlite3 для платформы Android для Android при создании приложения для пилотов.

Ответ 25

Я использую Ruby с Sinatra, который намного проще, чем Rails. Я использовал Rails, но просто обнаружил, что он превратился в немного монстра, хотя Rails по-прежнему поражает по сравнению с веб-фреймворками, доступными для Java.

Основная особенность Ruby, которую я люблю, - это "eval" и "method_missing", которые Rails фактически используют, например, в ActiveRecord, чтобы вы могли использовать удивительные запросы "find_by-field-name-".

Ответ 26

Я использовал Ruby для большого количества кода на заднем плане просто потому, что я был единственным человеком, которому было поручено это сделать, и ему нужен хороший чистый язык, который позволил мне быть очень продуктивным и писать легко для поддержания кода. Я считаю, что Ruby позволяет мне сделать это проще, чем Perl и Python. Другой пробег людей может отличаться от этого, но он хорошо работает для меня.

Кроме того, мне нравится, как работают Sequel и Nokogiri. Я также использовал ActiveRecord некоторое время отдельно от Rails.

Ответ 27

Мы используем некоторые Ruby для манипулирования файлами, но пока не можем использовать рельсы.

Ответ 28

Я использовал Ruby много профессионально для быстрых сценариев для таких вещей, как перетасовка файлов. Я так же понял, что сначала использовал Ruby, прежде чем касаться Rails.

Ответ 29

В Боулдере была отличная группа пользователей Ruby, которые встречались ежемесячно. Этот момент был сделан - у Ruby есть существование помимо его использования в Rails. Пользователи Plain Ruby существуют, просят о внимании, имеют опрятные вещи, чтобы показать, и могут найти друг друга на встречах групп пользователей.

У них также была лучшая пицца, чем группа Python, которая также встречалась в тот же день месяца. Может выбрать только один...

Ответ 30

В то время как у нас есть несколько приложений Rails на работе, мы также используем Ruby для некоторых довольно интенсивных не-веб-материалов.

У нас есть демон доставки SMS, который вытаскивает сообщения из очереди, а затем доставляет их, и демон обработки кредитных карт, к которым могут обратиться другие приложения, что гарантирует наличие централизованного аудита.