Использование плагина RDT для IDE Eclipse

Эта статья знакомит с плагином RDT (Ruby Development Tools - инструменты для разработки на Ruby) для интегрированной среды разработки Eclipse, который позволяет превратить Eclipse в первоклассную среду для разработки на Ruby. Эта статья будет полезна Ruby-программистам, которые хотят узнать, как использовать богатую инфраструктуру Eclipse-сообщества для поддержки их языка, а также Java™-программистам, которые интересуются применением Ruby.

Нил Форд, Архитектор приложений, ThoughtWorks

Нил Форд (Neal Ford) работает архитектором приложений в ThoughtWorks, революционной компании, предоставляющей профессиональные IT-услуги и помогающей талантливым людям по всему миру эффективнее использовать программное обеспечение. Он также является проектировщиком и разработчиком приложений, учебных материалов, журнальных статей, учебных курсов, видео/DVD-презентаций и автором книг "Разработка с Delphi: Объектно-ориентированный подход", "JBuilder 3 Unleashed" и "Искусство разработки Web-приложений на Java". Он специализируется на консультациях по построению широкомасштабных корпоративных приложений. Он также является общепризнанным докладчиком и выступал на многочисленных конференциях разработчиков по всему миру. С ним можно связаться по адресу: nford@thoughtworks.com.



23.09.2010

Примечание редактора. О новых возможностях и изменениях в RDT, произошедших с момента выхода этой статьи, можно прочесть в статье Easy Ruby development, the Eclipse way, размещенной на портале developerWorks.

Почему именно Ruby?

Зачем уважающему себя Java-программисту обращать внимание на такой язык программирования, как Ruby? Ruby - это язык сценариев общего назначения, созданный около 10 лет тому назад в Японии. Вопреки распространенному мнению это полностью объектно-ориентированный язык. В отличие от технологии Java, в Ruby отсутствуют скалярные типы данных, поэтому все типы, включая целочисленные, представлены в виде настоящих объектов. Синтаксис Ruby в основном позаимствован из таких языков, как Smalltalk, Python и Ada. Как и в языке программирования Java, в Ruby поддерживается только одиночное наследование, но также предлагаются некоторые дополнительные возможности, которых нет в технологии Java. Можно выделить: замыкания (англ. closure) (аналогом в Java были бы анонимные вложенные классы с усиленными возможностями) и смеси (англ. mix-in) (похожи на интерфейсы, однако не так сильно привязаны к классам). Язык Ruby также является мультиплатформенным: написанные на нем приложения можно исполнять во всех основных операционных системах.

Сегодня Ruby - очень актуальный язык. Его начинают широко использовать для тех категорий приложений, к которым он идеально подходит. Так как это интерпретируемый язык, использующий динамическую типизацию, то в нем во время исполнения можно выполнять трюки, которые сложно воспроизвести на Java. Одна из удивительных возможностей, обусловленная динамической типизацией и выразительным синтаксисом, - это создание на основе Ruby доменно-специфичных языков, которые позволяют работать на более высоком уровне абстракции, отдалившись от низкоуровневого синтаксиса языка. Эта способность Ruby продемонстрирована в Ruby on Rails, инфраструктуры для создания Web-приложений, использующих реляционные базы данных. Другой пример подобного способа использования этого языка - утилита Rake, решение на основе Ruby, объединяющее возможности Make и Ant.

Другая причина познакомиться с Ruby состоит в том, что так поступили все классные программисты. Многие люди, которые еще в 1996 году распознали значимость технологии Java (такие как Глен Вандербург (Glenn Vanderburg), Брюс Тэйт (Bruce Tate) и Мартин Фаулер (Martin Fowler)) сейчас принимают значительное участие в развитии Ruby. Даже если полный перевод разработки на Ruby и не планируется, возможно, все равно пришло время познакомиться с этим языком.

Одним из главных факторов, ограничивающих распространение программирования на Ruby, является отсутствие хорошей среды разработки (если не считать редактора Emacs). RDT-плагин для среды разработки Eclipse призван изменить эту ситуацию. Что может быть лучше для экспериментов с Ruby, чем знакомая большинству Java-программистов среда разработки Eclipse?


Установка

Перед началом изучения Ruby потребуется установить или проверить наличие интерпретатора и библиотек Ruby, а также среды разработки для Ruby (Ruby Development Environment).

Установка Ruby

Язык Ruby доступен для всех основных и даже для некоторых менее известных платформ. Возможно, он уже имеется в установленном дистрибутиве Linux®, Mac OS X и Cygwin. Для проверки надо войти в командную строку и напечатать ruby -v

Если будет выведен номер установленной версии, то можно продолжать. Если же нет, то потребуется установить Ruby. На странице со списком дистрибутивов необходимо выбрать требуемую платформу. Установка очень проста. Например, для установки Ruby на Ubuntu (дистрибутив Linux, основанный на Debian) необходимо ввести в командной строке: sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby

При использовании Windows® также существует простой способ установки. На портале RubyForge, аналоге портала SourceForge, но посвященного исключительно Ruby-проектам, есть программа One-Click Ruby Installer, устанавливающая среду разработки для Ruby на ОС Windows (см. раздел Ресурсы). Она также включает в себя несколько дополнительных инструментов, например IDE FreeRide, но при установке их можно проигнорировать, так как мы будем использовать RDT.

Для пользователей Mac OS X все еще проще: компания Apple включила Ruby в последние версии Mac OS X.


Установка документации

Документация и другие справочные материалы очень важны при знакомстве с новым языком. На главном Web-сайте Ruby можно найти ссылки на документацию по Ruby в Интернете, но она будет немного устаревшей (так как относится к Ruby версии 1.6, а текущая версия - 1.8.2). Проблема в том, что обновленная документация еще не переведена с японского. Однако хорошую и актуальную документацию по Ruby можно найти на Web-сайте Ruby-doc.org. Она включает документацию по API (аналог документации Javadoc), а также другие руководства и книги (см. раздел Ресурсы).

Если же программирование на Ruby интересует вас серьезно, советуем как можно скорее приобрести книгу Programming Ruby: The Pragmatic Programmer's Guide, написанную Дэйвом Томасом (Dave Thomas) и Энди Хантом (Andy Hunt) (см. раздел Ресурсы). Это самое лучшее введение в язык Ruby, которое должно быть в библиотеке каждого Ruby-программиста. Также стоит приобрести книгу Agile Development with Ruby on Rails, написанную Дэйвом Томасом и знакомящую с инфраструктурой Ruby on Rails.

Установка RDT

После того как на систему была установлена работающая версия Ruby с необходимой документацией, следует установить RDT (см. раздел Ресурсы). Этот плагин для Eclipse предлагает множество возможностей, которые обычно используются при редактировании кода. RDT - это обычный плагин для Eclipse, включающий в себя функциональность и другие плагины, поэтому его архивный файл можно развернуть прямо в каталоге, где установлен Eclipse. Пути, заранее установленные в архиве, обеспечат остальные настройки.

Примечание редактора: С момента написания статьи в 2005 году успели измениться название RDT-плагина и Web-сайт, с которого его можно скачать, но его основная функциональность и условия лицензирования остались без изменений. Теперь RTD-плагин называется Aptana RadRails V1.0.3 и доступен на Web-сайте компании Aptana. Для загрузки свежей версии или обновления плагина для Eclipse можно воспользоваться инструкциями для Aptana RadRails, которые окажутся знакомыми большинству пользователей Eclipse. Если вы еще не встраивали никаких плагинов Aptana в рабочее пространство Eclipse, то необходимо выполнить действия, описанные в статье Plugging Aptana into an existing Eclipse configuration.

Теперь можно переходить к созданию Ruby-проекта (см. рисунок 1).

Рисунок 1. Создание нового Ruby-проекта
Рисунок 1. Создание нового Ruby-проекта

В языке Ruby гораздо меньше ограничений на структуру и названия каталогов, чем в технологии Java. Для создания проекта в Ruby достаточно каталога и файла .project (файл .classpath не требуется, так как в Ruby нет такого понятия CLASSPATH, как в Java). Другое важное отличие от языка Java - то, что мастер Ruby-проектов не создает каталогов src и bin. Ruby - интерпретируемый язык, поэтому ему не нужен каталог для выходных артефактов. Если проект небольшой, то файлы исходного кода Ruby можно поместить в тот же каталог, что и файл .project. Также можно создать собственную иерархию каталогов. Однако для Ruby-проекта это не так важно, как для языка программирования Java.

Теперь необходимо создать файл исходного кода Ruby. Для создания исходных файлов Ruby не предусмотрено специального "мастера". По сравнению с технологией Java в Ruby на файлы исходного кода налагается гораздо меньше ограничений, так что для создания Ruby-файла необходимо нажатием правой клавиши мыши вызвать контекстное меню проекта и выбрать команду Create New File (создать новый файл).

Рисунок 2. Создание файла исходного кода Ruby
Рисунок 2. Создание файла исходного кода Ruby

Важно не забыть добавить к названию файла .rb - стандартное расширение для файлов Ruby. После создания Ruby-файла рабочее пространство Eclipse должно переключиться в Ruby-режим (Ruby perspective).

Рисунок 3. Создание исходного файла Ruby приводит к включению Ruby-режима
Рисунок 3. Создание исходного файла Ruby приводит к включению Ruby-режима

В Ruby режиме также представлены стандартные возможности, например, схематичное представление (outline view), похожее на аналогичный режим, также имеющийся в Java-режиме. Как и в Java, можно перемещаться между элементами исходного файла Ruby. На рисунке 4 метод raise_salary_by выделен на схематичном представлении и в исходном коде.

Рисунок 4 Схематичное представление позволяет перемещаться внутри исходного файла
Рисунок 4 Схематичное представление позволяет перемещаться внутри исходного файла

Как и другие высокофункциональные плагины, RDT предлагает возможность настройки для персонализации через меню Window (Окно) > Preferences (Настройки). Диалоговое окно с этими настройками представлено на рисунке 5.

Рисунок 5. Настройки RDT для персонализации Ruby-режима
Рисунок 5. Настройки RDT для персонализации Ruby-режима

Меню настроек позволяет изменить подсветку синтаксиса и форматирование (стандартный отступ в Ruby - это два пробела, а не четыре, как в Java, так что стоит быть готовым к непривычному выравниванию кода). Также меню позволяет настроить шаблоны для редактора и выбрать собственную версию интерпретатора.


Редактор RDT

В Java-сообществе все привыкли к расширенным возможностям редакторов исходного кода, однако это затрудняет переход на другие среды разработки, которые не могут предложить такого же уровня поддержки. Одна из возможностей, отсутствующая в Ruby IDE - это Content Assist (помощник по работе с содержимым исходного файла), который предлагает контекстно-чувствительный поиск методов и переменных. В редакторе RDT присутствует поддержка Content Assist для исходного кода Ruby.

Рисунок 6. Поддержка Content Assist в редакторе RDT
Рисунок 6. Поддержка Content Assist в редакторе RDT

Функциональность Content Assist в редакторе RDT не так формализована, как в Java, потому что в Ruby используется динамическая типизация. В Ruby невозможно определить тип для переменной или тип значения, возвращаемого из метода. Контекст идентификатора определяет тип прямо во время исполнения. Язык Ruby использует принцип, называемый "утиной типизацией" (duck typing): если объект принимает сообщение "кря" - значит, это утка. Хотя для программистов, привыкших к языкам с жесткой типизацией, это может показаться неудобным, благодаря такому "слабому" связыванию типов работают некоторые из самых важных возможностей языка Ruby. Например, в Ruby можно написать обработчик исключительной ситуации, срабатывающий при вызове несуществующего метода, и этот обработчик может "на лету" создать требуемый метод и вызвать его. В языках со строгой типизацией достичь подобного уровня метапрограммирования очень трудно.

Одна из важных функций Content Assist - это поддержка специальных правил именования, используемых в Ruby для определения идентификаторов (названий переменных, методов и т.д.). Например, в Ruby жизненный цикл объектных переменных (member variable или instance variable) начинается после первого обращения к ним, и все они идентифицируются символом @ в качестве первого символа названия. Для поиска объектных переменных с помощью Content Assist необходимо ввести @, и тогда будут выведены только объектные переменные.

Рисунок 7. В справочной информации Content Assist можно познакомиться с правилами именования в Ruby
Рисунок 7. В справочной информации Content Assist можно познакомиться с правилами именования в Ruby

И все же динамическая типизация в Ruby затрудняет работу для контекстно-чувствительной функциональности. На рисунке 7 правильными переменными являются только те, которые отображаются над объявлением метода, а именно @name, @salary и @hire_year. Другие объектные переменные Content Assist извлекает из другого класса, который будет объявлен позже. Редактор RDT пока не способен отфильтровывать синтаксически верные, но семантические неверные элементы.


Запуск и отладка

Для любой IDE самая важная функциональность - это запуск и отладка приложений, собранных в этой же среде. RDT-плагин предоставляет обе эти возможности.

Определение интерпретатора

Ruby - это интерпретируемый язык, поэтому, чтобы RDT-плагин смог запускать или отлаживать приложения, в среде разработки необходимо определить путь интерпретатору Ruby. Эта привязка выполняется в диалоговом окне, которое можно вызвать командами меню Window (окно) > Preferences (настройки), в разделе Ruby через элемент Installed Interpreters (установленные интерпретаторы).

Рисунок 8. Привязка интерпретатора Ruby к локальной среде
Рисунок 8. Привязка интерпретатора Ruby к локальной среде

В текстовом поле Location (местоположение) необходимо указать путь к каталогу bin используемой версии Ruby. RDT-плагин самостоятельно извлечет остальную необходимую информацию. Когда интерпретатор установлен, можно переходить к запуску приложения.

Запуск Ruby-приложения

Запуск Ruby-приложения выполняется аналогично запуску Java-приложения. Необходимо создать конфигурацию запуска (Run configuration) через меню Run (запуск).

Рисунок 9. Настройка конфигурации запуска в RDT-плагине
Рисунок 9. Настройка конфигурации запуска в RDT-плагине

При запуске приложения RDT-плагин вызывает интерпретатор Ruby и запускает приложение в окне консоли внизу рабочего пространства Eclipse.

Рисунок 10. Запуск Ruby-приложение в RDT-плагине
Рисунок 10. Запуск Ruby-приложение в RDT-плагине

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

Отладка с помощью RDT

Одна из важнейших возможностей любой IDE - это способность эффективно отлаживать приложения. Интерпретатор Ruby включает отладчик с интерфейсом командной строки, но кто будет использовать подобный отладчик в эпоху приложений с графическим интерфейсом пользователя? К счастью, интерпретатор Ruby также транслирует отладочную информацию на определенный (конфигурируемый) порт, и инструменты, подобные RDT, могут прослушивать этот порт и предоставлять ожидаемую разработчиками поддержку отладочного режима.

Для отладки Ruby-приложения в RDT-плагине необходимо создать конфигурацию отладки (Debug configuration), как выше была создана конфигурация запуска. Затем необходимо установить точку останова, щелкнув левой кнопкой мыши в столбце, расположенном с левого края редактора исходного кода, и запустить приложение с использованием отладчика. Также как и для Java, IDE предложит переключиться в режим отладки (Debug perspective). После этого рабочее пространство Eclipse станет похожим на рисунок 11:

Рисунок 11. Отладка Ruby-приложений в RDT-плагине
Рисунок 11. Отладка Ruby-приложений в RDT-плагине

RDT-плагин поддерживает отладку на таком же уровне, как это делается в технологии Java. В верхней левой панели отображается поток, исполняемый в данный момент. В верхней правой панели отображаются значения переменных. Как и в Java, можно входить в объекты, чтобы узнать значение объектных переменных. В левой части центральной панели отображается исходный код запущенного приложения, а в ее правой части выводится схематичное отображение, которое работает так же, как в режиме редактирования, позволяя перемещаться по коду с помощью нажатия на идентификаторы. В нижней части окна отладки показывается, что интерпретатор Ruby передает отладочную информацию на порт 1098, а RDT-плагин принимает ее на этом порту.

Поддержка отладочного режима - это важнейшая функция RDT-плагина. Даже если используется редактор, который превосходно поддерживает Ruby, для отладки все равно приходится полагаться на отладчик с интерфейсом командной строки. Наличие удобного отладчика сильно повышает продуктивность программиста.


Тестирование

Для Java-программистов сложнее всего воспринять такую особенность Ruby, как динамическая типизация. Если программист привык пользоваться языком с жесткой типизацией, то динамическая типизация для него будет выглядеть как шаг к анархии. Динамическая типизация позволяет выполнять различные трюки с метапрограммированием, которые сложно или невозможно воспроизвести в языке с жесткой типизацией. Конечно, при этом также придется отказаться от защиты, обеспечиваемой проверкой типов при компиляции. Однако существует ли способ поймать сразу двух зайцев?

Unit-тестирование обязательно для любого языка программирования, но особенно важно для динамических языков. Unit-тестирование может раскрыть больше, чем простая компиляция. На самом деле стоит изменить точку зрения на отношение между unit-тестированием и компиляцией. Не так давно Стюарт Хэллоуэй (Stuart Halloway), известный исследователь в области разработки ПО, на конференции "No Fluff, Just Stuff Software Symposium" заявил: "через пять лет компиляция будет рассматриваться как самая слабая форма unit-тестирования." Unit-тестирование обеспечивает проверку, что код делает именно то, что ожидается, а не просто проверяет его на предмет синтаксических ошибок.

С учетом важности unit-тестирования для Ruby хотелось бы, что бы RDT облегчал создание и запуск unit-тестов. Так дело и обстоит. Unit-тестирование уже встроено в Ruby, поэтому не требуется загружать дополнительные расширения. Библиотека Ruby включает классы TestCase и TestSuite. Создавать unit-тесты можно так же, как и другие Ruby-классы, наследуя класс теста от класса Test::Unit::TestCase. В листинге 1 приведен пример класса Employee.

Листинг 1. Класс Employee
class Employee
  def initialize(name, salary, hire_year)
    @name = name
    @salary = salary
    @hire_year = hire_year
  end
  
  attr_reader :name, :salary, :hire_year 

  def raise_salary_by(perc)
    @salary += (@salary * (perc * 0.01))
  end
  
  def to_s
    "Name is #{@name}, salary is #{@salary}, " + 
    "hire year is #{@hire_year}"
  end
  
end

В листинге 2 представлен unit-тест для этого класса:

Листинг 2. Unit-тест для класса Employee
require 'test/unit/testcase'
require 'test/unit/autorunner'
require 'hr'

class TestEmployee < Test::Unit::TestCase
  @@Test_Salary = 2500

  def setup
    @emp = Employee.new("Homer", @@Test_Salary, 2003)
  end

  def test_raise_salary
    @emp.raise_salary_by(10)
    expected = (@@Test_Salary * 0.10) + @@Test_Salary
    assert( expected == @emp.salary)
  end

end

Для запуска этого unit-теста необходимо создать конфигурацию запуска для класса unit-теста, указав тип Test::Unit.

Рисунок 12. Создание конфигурации запуска для типа Test::Unit в RDT-плагине
Рисунок 12. Создание конфигурации запуска для типа Test::Unit в RDT-плагине

После запуска этого теста станут доступны такие же вспомогательные GUI-компоненты, которые используются и для unit-тестов Java, включая панель JUnit в нижнем левом углу.

Рисунок 13. Пример запуска unit-теста в IDE
Рисунок 13. Пример запуска unit-теста в IDE

В Ruby также можно создавать объекты типа TestSuite (комплекты тестов). Объект TestSuite - это Ruby-класс, в котором объявлен метод suite, возвращающий объект TestSuite. Объект TestSuite состоит из набора тестов, автоматически определяемых в каждом из объектов TestCase (сценариев тестирования). В листинге 3 приведен объект TestSuite для пары классов.

Листинг 3. Пример объекта TestSuite для двух классов
require 'test/unit/testsuite'
require 'test/unit/ui/tk/testrunner'
require 'test/unit/ui/console/testrunner'
require 'TestEmployee'
require 'TestManager'


class TestSuite_AllTests
    def self.suite
        suite = Test::Unit::TestSuite.new("HR Tests")
        suite << TestEmployee.suite
        suite << TestManager.suite
        return suite
    end
end

#Test::Unit::UI::Tk::TestRunner.run(TestSuite_AllTests)
Test::Unit::UI::Console::TestRunner.run(TestSuite_AllTests)

В отличие от предыдущего примера с запуском отдельного объекта TestCase, объект TestSuite запускается как самостоятельное приложение. В Ruby есть два способа отображения результатов запуска объекта TestSuite. Первый - это приложение Console Test Runner, которое выводит результаты прохождения теста в консоль. Второе - это приложение Tk TestRunner, выводящее знакомое диалоговое окно, в котором показываются результаты тестов. Диалоговое окно Tk TestSuite показано на рисунке 14.

Рисунок 14. Диалоговое окно приложения Tk TestSuite
Рисунок 14. Диалоговое окно приложения Tk TestSuite

Что дальше?

На данный момент текущая версия RDT - 0.50, а его разработчики усиленно работают над следующей версией под номером 0.60. В следующей версии должны присутствовать улучшения, перечисленные ниже:

  • сворачивание и разворачивание кода— можно будет сворачивать классы и методы.
  • схематичное представление— станет более подробным, добавится поддержка локальных переменных.
  • RI-представление— возможность использовать утилиту Ruby ri в рабочем пространстве RDT-плагина.
  • тэги для задач— создание задач на основе конфигурируемых ключевых слов (например, TODO, FIXME) в комментариях Ruby.
  • усовершенствованный редактор кода— автозакрытие фигурных и круглых скобок, двойных и одинарных кавычек, а также улучшенная версия функциональности Code Assist.
  • сочетания клавиш для проверочных действий— настраиваемые сочетания клавиш для проверочных действий, часто используемых в сеансах отладки, например, "показать все методы объекта", "показать все глобальные константы" и т.д.

Следующая версия также будет более эффективно использовать компилятор байт-кода, предоставляемый проектом JRuby. Этот проект позволяет компилировать Ruby в байт-код Java. А это значит, что следующая версия RDT будет лучше интегрироваться в среду Eclipse и предоставлять еще более качественную поддержку для разработки на языке Ruby.


Заключение

Одна из самых важных рекомендаций книги Pragmatic Programmer: From Journeyman to Master гласит, что каждый год стоит изучать новый язык программирования, чтобы оставаться в курсе последних веяний и узнавать из других языков нечто полезное для работы с тем языком, который используется постоянно. Языку Ruby, наконец, удалось достичь определенного уровня распространения, частично благодаря успеху проекта Ruby on Rails. Пришло время добавить Ruby в арсенал используемых инструментов. Плагин RDT - это отличный способ познакомиться с Ruby, не покидая при этом среды Eclipse, хорошо знакомой любому Java-программисту.

Ресурсы

Научиться

  • Using the Ruby Development Tools plug-in for Eclipse: оригинал статьи (EN).
  • Easy Ruby development, the Eclipse way (EN): статья на портале developerWorks об обновлениях и изменениях RDT, произошедших с момента написания этой статьи.
  • Ruby-lang.org (EN): домашняя страница языка Ruby со ссылками на документацию и другие полезные сайты о Ruby.
  • Ruby on Rails (EN): с этого Web-сайта можно загрузить Ruby on Rails - инфраструктуру для разработки Web-приложений, основанная на Ruby, и примеры приложений, построенных на ней.
  • На портале Rubyforge.org можно загрузить приложение One-Click Ruby Installer для установки Ruby-платформы на ОС Windows.
  • Ruby-doc.org (EN): Web-сайт с актуальной документацией по языку Ruby.
  • Programming Ruby, The Pragmatic Programmer's Guide, 2nd Edition, (EN): эта книга Дейва Томаса - отличное введение в язык Ruby. Эту написанную в непринужденном стиле книгу стоит выбрать для первого знакомства с Ruby. С другой стороны, с ней стоит познакомиться даже при отсутствии интереса к Ruby - она входит в "золотой фонд" литературы о разработке ПО.
  • Agile Development with Rails: A Pragmatic Guide, (EN): книга, написанная Дэйвом Томасом и Дэвидом Хайнмайером-Хансоном (David Heinemeier Hansson) для тех, кто интересуется Rails. Представляет собой полное введение в разработку на Rails.
  • The Pragmatic Programmer: From Journeyman to Master (EN): книга, написанная Эндрю Хантом (Andrew Hunt) и Дэвидом Томасом (David Thomas), советует программистам каждый год изучать по одному новому языку.
  • Глен Вандербург (Glenn Vanderburg): философ-программист, выдвигающий интересные идеи и предположения. Он был одним из первых, кто распознал и описал истинный потенциал технологии Java, а потом написал первые книги о расширенных возможностях Java. Глен поддерживает Ruby уже на протяжении нескольких лет.(EN)
  • Брюс Тейт (Bruce Tate), автор книг Bitter Java и Bitter EJB, также приветствует Ruby и возможности, открываемые переходом с технологии Java на Ruby. Сейчас он пишет несколько книг о том, как превратиться из Java-программиста в Ruby-разработчика. Этому посвящена его статья Secrets of lightweight development success, размещенная на портале developerWorks.(EN)
  • Relevance, LLC - сайт консалтинговой и тренинговой компании, специализирующейся на Ruby и Ruby on Rails.(EN)
  • Мартин Фаулер (Martin Fowler) -одна из знаковых персон в области разработки ПО. Он воспринимает "глубоководные" идеи и описывает их с потрясающей четкостью. В течение нескольких лет Мартин выступал пропагандистом Ruby и возможностей, предлагаемых этим языком, а сегодня за ним следует весь мир. В блоге Мартина часто появляются записи, посвященные Ruby.(EN)
  • На портале developerWorks находится множество статей и учебных пособий по Ruby, включая серии Debugging Ruby programs 101 и Automating tasks with Rake.(EN)

Получить продукты и технологии

  • Ruby Development Tools: плагин для Eclipse, добавляющий поддержку Ruby, включая функции Content Assist, отладки и unit-тестирования.
  • Rake инструмент для сборки, основанный на Ruby и доступный на портале Rubyforge.org. Rake предлагает язык для выполнения сборок, сочетая лучшие качества Make и Ant. Он также демонстрирует, как гибкий синтаксис Ruby может использоваться для создания высокоуровневых доменно-специфичных языков.
  • Используйте в своем следующем проекте open source ознакомительные версии продуктов IBM, которые можно загрузить через Интернет или заказать на DVD.(EN)
  • Плагин Aptana RadRails для Eclipse доступен на Web-сайте компании AptanaДля загрузки новой версии или обновления плагина для Eclipse необходимо следовать инструкциям по установке Aptana's RadRails.(EN)

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source, Технология Java
ArticleID=547755
ArticleTitle=Использование плагина RDT для IDE Eclipse
publish-date=09232010