В 1 доли заметки речь обратно шла о способностях редактора RubyMine, средствах рефакторинга и отладки. Конечно, вторая часть приурочена к наиболее спец вероятностям данной среды исследования - поддержке Ruby on Rails, интеграции с системами контролирования верстки и средствами автоматизации испытания.
Среда исследования RubyMine умышленно сделана, сначала, для Rails-разработчиков . Впрочем, поддержка Ruby on Rails встроена в RubyMine на самом прямо-таки невысоком уровне и лениво затрагивает почти что все многофункциональные полномочия среды: рефакторинг, средства навигации, автозавершение кода, тест кода, пуск, отладку и так далее RubyMine 1.0 поддерживает все версии Rails, невольно начиная с 1.2 до текущей (2.3). RubyMine поддерживает все главные технологии, использующиеся при исследования Rails-приложений, включая системы модульного испытания, BDD , шаблоны RHTML и формат YAML.
Rails-приложения возводятся на базе отчасти готового каркаса модель-представление-контроллер (MVC). Значит при данном употребляются полностью обычные соглашения о конфигурации прибавления, от которых отходят исключительно попросту в редкостных вариантах. Возможно, соглашения прикладывают мало-мальски явные лимитирования полностью на файловую текстуру плана и на именование классов, самостоятельно исполняющих какие-нибудь роли в MVC. Кроме того все данные соглашения предусматриваются функциями RubyMine.
В RubyMine есть слишком отдельный вид плана для Rails-приложения. Казалось, при творении этого плана складывается очень-то готовая инфраструктура Rails-приложения, в которую автоматом прибавляются все весьма неотложные подробно сочиняющие. Разумеется окно клерка плана поддерживает очень-то особый вид “Rails view”, отображающий довольно-таки закономерную текстуру Rails-приложения. Однако, классы прибавления нарочно подобраны воистину в закономерные категории - контроллеры, модели, виды, исследования и т.п.
RubyMine разрешает лениво творить составляющие Rails-приложения. Во всяком случае делается данное при помощи Rails-генераторов. Быть может генераторы сознательно творят отчасти стандартную реализацию классов, которую создатель полностью в последующем заполняет настоящим кодом. Наконец, специально созданные генератором файлы автоматом находятся в “просто-напросто верных” директориях согласно с притязаниями Rails-архитектуры. Кажется, вызвать генератор можнож при помощи команды Generate в контекстном рационами редактора либо при помощи команды New в контекстном рационами клерка плана.
Команда рефакторинга “Rename” в Rails-приложении особенно аналогично регулярно предусматривают текстуру Rails-приложения. Надеюсь переименование 1-го составляющая окончательно приводит к переименованию всех связанных компонентов - контроллеров, видов, исследований и т.д. Например, переименование “PictureController” в “ImageController” окончательно приводит к смене “picture” на “image” в заглавиях файлов (”picture_helper.rb”, “picture_controller.rb”), классов (”PictureControllerTest”, “PictureController”) и TODO-выражениях (:controller => “picture”). Таким образом, нужно только пристально наблюдать за тем, дабы при переименовании свежее фамилия совершенно подходило соглашениям именования Rails (к примеру, постепенно заканчивалось на Controller), по другому свежее фамилия не станет верно распознано и Rail-рефакторинг не включится. Так вот, средства навигации меж Rails-компонентами расширены с помощью команды “Navigate to Rails” (Alt+Shift+N), коя разрешает проворно суждено перейти от контроллера к подходящей модели, от теста к виду и т.п.RubyMine дозволяет выстроить диаграмму зависимости моделей (”Model Dependency Diagram”), наглядно добросовестно демонстрирующую связь моделей Rails-приложения. Кстати, находясь в окошке диаграммы можнож сознательно сделать рефакторинг нарочно подобранного класса модели, хладнокровно сыскать все случаи его применения в плане, суждено перейти к окончательно подобранному классу и к описанию необычайно подобранной взаимосвязи меж моделями. Пожалуй, классы на диаграмме возможно разместить несколькими полностью типовыми методами (по кругу, ортогонально, иерархично и так далее), можнож подвигать по диаграмме вручную. Вероятно, столь готовую диаграмму возможно распечатать, экспортировать по-особенному в графический файл. Говорят, диаграмма зависимости моделей как окончательно оказалось слишком более-менее нужной при работе с базами этих. RubyMine поддерживает технологию объектно-реляционной проекции (ORM) в Rails, дозволяющую записывать объекты программы в реляционную по-особенному информационную базу. В конце концов, в RubyMine условно учтены генераторы, нарочно творящие таблицы по-человечески в информационной базе и разумно задающие передвижения , обрисовывающие поля таблицы. В общем диаграмма зависимости моделей самостоятельно выдает напросто комфортный прием просмотра текстуры довольно-таки информационной базы и зависимостей меж таблицами.
В целом, учет текстуры Rails-приложения функциями среды исследования - данное напросто сильный плюс. Наверно, навигация по коду - комфортнее, рефакторинг - сильнее, автозавершение кода - вернее, просмотр текстуры плана - нагляднее, существо по-хорошему свежих компонентов прибавления - скорее, работа с базами этих - легче. К счастью, и, в следствии, окончательно трудиться во много раз удобнее.
Поддержка Unit Testing Фреймворк Ruby on Rails нацелен просто-напросто на прыткую и слишком доброкачественную исследование веб-приложений. В самом деле так что не дивно, что при исследованию Rails-приложений энергично употребляется весьма эластичная методология исследования (”agile development”). Видимо и, а именно, методологии автоматизированного испытания кода: модульное испытание (”unit testing”) и BDD (”Behavior Driven Development”, исследование, базирующаяся на функционировании).
RubyMine поддерживает немного разновидностей реализации методологий автоматизированного испытания: RSpec, Test::Unit, Test/Spec и Cucumber . Действительно поддержка очень взаправду широкая: автозавершение кода для RSpec, шаблоны файлов для существа Test::Unit и Test/Spec исследований, интегрированные средства пуска слов, всецело встроенные в IDE и вполне способные успешно запускать испытания через Rake-tasks, команды для навигации меж кодом и весьма надлежащим тестом в Rails-приложении, воистину особые команды для пуска исследований для необычайно подобранного способа, класса, BDD-примера и так далее
Тесты возможно пуска по отдельности, по немного единиц либо все сходу. По-видимому результаты испытания показываются внизу, в окошке “Run”. Более того окно лично имеет 2 вкладки. С другой стороны на вкладке “Output” выводится информация о ходе испытания и о промахах. Короче говоря, на вкладке “Statistics” долго видится статистика по запущенным в этот эпизод исследованиям, при этом статистика обновляется “налету”, в ходе проведения испытания. Напротив имеется вероятность проворно суждено перейти к полосы кода в какой спокойно состоялась оплошность в тесте - со средствами навигации по коду в RubyMine взаправду полный порядок. Контроль версий Контроль версий в RubyMine двухуровневый. Оказалось, что первый уровень поддерживается налицо локальной ситуацией (”Local History”). Ну что ж прямо-таки локальная ситуация - данное по-хорошему индивидуальная система контролирования версий, уверенно учитывающая все внесенные в чертеж перемены, дозволяющая отследить и отменить прямо-таки всевозможные конфигурации. А теперь вполне локальная ситуация мало-мальски самостоятельна от наружней системы контролирования версий и окончательно трудится в том числе и тогда уже, как скоро практически никакая система контролирования версий не употребляется. Естественно, включать напросто локальную ситуацию не потребуется - данная функция интегрирована практически постоянно. Стало быть так ведь, как взаправду в обыкновенной системе контролирования версий, В целом в локальной ситуации есть проверки. В сущности ревизии делаются механически по прецеденту внесения перемен и во время выполнения некоторых деяний (к примеру, при открытии, запуске и компиляции плана). И все же ревизию возможно скоро сделать вручную и пометить тегом. Несомненно ненамного локальная ситуация сберегается особенно в файловом кеше, довольно-таки предельный объем которого устанавливается в опциях. Следовательно при перезапуске RubyMine ненамного локальная ситуация не пропадает. И действительно просто-напросто локальная ситуация самостоятельно предусматривает конфигурации на всех уровнях: на уровне плана, директорий, пакетов, файлов, классов, членов класса причем даже необычайно подобранных фрагментов слова. Так или иначе второй уровень контролирования версий поддерживается наружней системой контролирования версий. RubyMine поддерживает интеграцию с Subversion, Git, CVS, StartTeam, SourceSafe и Perforce. Видите ли с поддержкою плагинов возможно сердито прибавить поддержку иных систем. По крайней мере большинство систем контролирования версий поддерживают довольно-таки единый набор полномочий - загрузка файлов из репозиторий, запись конфигураций, обновление, прибавление файлов в репозиторий и т.п. Оказывается в RubyMine решительно дает вполне единый интерфейс для вызова данных функций. Тем не менее команды, мало-мальски специфичные для необычайно подобранной системы контролирования версий, шумно вызываются через в общем-то отдельное рациону. Например, при интеграции с Subversion команды “Update”, “Commit”, “Cleanup” возможно вызывать через взаправду единый интерфейс, а команды “Lock”, “Branch or Tag” - через подменю “Subversion”. Собственно все модифицированные файлы RubyMine механически прибавляет в перечень модифицированных файлов (”changelist”). И в самом деле мало-мальски подобных списков можнож совершенно сделать какое количество угодно, хотя вправду энергичным (в который файлы прибавляются автоматом) можнож устроить исключительно 1. Между прочим файлы меж перечнями можнож по-особенному непринужденно шумно перемещать, что редко позволяет объединять конфигурации. Наоборот над группами конфигураций возможно скрупулезно самостоятельно исполнять особенно разные деяния - долго беречь перемены в системе контролирования версий, откладывать перемены, нарочно творить патчи и, в том числе и, пока что приостанавливать перемены - “на полку”. Мало того в RubyMine есть эта вероятность - на время “отменить” нарочно подобранные конфигурации, а позже возвратить их обратно. Короче, когда вы солидно перерабатываете код плана и, в то же время, вам потребуется безотлагательно внести в текущую версию кода полностью небольшую доработку, эта вероятность просто не заменима. Лицензии RubyMine однозначно доступна под 2 лицензиями - налицо платная лицензия и ненамного безвозмездная лицензия для opensource-разработчиков . Расширяемость IDE SDK для RubyMine еще нет. Но станет. По правде говоря, пока ведь полномочия RubyMine возможно расширять при помощи скриптов, прописанных на Ruby. Системные притязании IDE кроссплатформенная, есть версии для Windows, Mac OS X и Linux. Конкуренты NetBeans 6 , RadRails/Aptana Studio , 3rd Rail , VIM for Rails , TextMate , Emacs for Rails и Ruby In Steel (для приверженцев Visual Studio). Выводы RubyMine - среда исследования, оптимизированная для Rails-разработчиков. Rails-приложения совершенно примут на вооружение ряд согласований о конфигурации, которые прикладывают лимитирования на методы именования классов и мало-мальски файловую иерархию в плане. RubyMine энергично явно принимает во внимание данные соглашения, в следствии чего же все более-менее обыкновенные функции IDE постоянно меняются и зарастают новенькими (нередко, отменно новенькими!) и поистине комфортными полномочиями. RubyMine долго дает возможность правильно использовать все слишком ключевые версии Ruby, поддерживает немного систем слишком механического испытания, интегрируется с основной массой более-менее знаменитых систем контролирования версий и, на самом деле, чрезвычайно вполне комфортна в работе.
Несмотря на то, что продукт был хладнокровно замечен полностью в недалеком прошлом, его полномочия удивляют - скоро сказывается наследие IntelliJ IDEA. Но это все - лишь начало. А кроме того у разрабов море мыслей и проектов на будущее. Одним словом причем новейшие версии программы выходят 1 за иной. Судя по всему и свежую, по-своему подготовительную версию RubyMine 1.5 , с поддержкой Ruby 1.9, можнож скачать и добросовестно пробовать теснее на данный момент.
Программы в каталоге Softkey.ru:
Ссылки по теме:
Отзывы:
Вы должны быть зарегистрироавны чтобы оставить комментарий.