Рубин с рельсов
Иногда мне кажется, что моя компания - единственная компания в мире, использующая 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, который вытаскивает сообщения из очереди, а затем доставляет их, и демон обработки кредитных карт, к которым могут обратиться другие приложения, что гарантирует наличие централизованного аудита.