Snow Leopard incompatibilities
11:43, 31 августа 2009
( )
Не секрет, что после установки Snow Leopard много чего перестало работать корректно, в т.ч. и mysql gem. Рецепт излечения предлагаю познать из нижеследующей ссылки: http://www.icoretech.org/2009/08/install-mysql-and-mysql-ruby-gem-on-snow-leopard-64-bit/ Scrum, Rails BDD и Cucumber приправленный Selenium
20:28, 23 января 2009
( )
Попробую пояснить термины приведенные выше. Scrum - методология разработки основанная на agile. Если в двух словах вся разработка делится на Истории (Функционал), созданные совместно командой разработчиков и заказчиком. Заказчик излагает требования по функционалу, например, хочу редактировать статьи. Разработчики пишут три сценария для такого функционала: добавление, изменение и удаление статьи. Каждая история получает очки по скорости разработки, например, добавление и изменение по 10 очков, а удаление статьи 5 очков. Добавляем параметр важности. Например, важность добавления - 5, важность изменения 10 и важность удаления 15. Производительность команды измеряется в очках/период разработки. Например, принимаем производительность команды за период 3 недели (эти три недели будут называться Спринт) в 15 очков. Отсюда видно, что заказчик может или потребовать реализацию удаления и изменения за один Спринт, или реализацию удаления и добавления повысив важность фичи добавления. А в следующий Спринт будет добавлен недостающий функционал, например, добавления статьи. Обязательным моментом в описании Сценариев является описание методики тестирования, например, нажми туда, смотри здесь и получишь это. После каждого спринта производится этап тестирования и принятия результатов, после чего происходит очередная итерация с заказчиком - собираемся, обсуждаем, оцениваем и формализуем требования в функционал. Свежепоявившийся Cucumber позволяет в почти такой же манере scrum описывать функционал со сценариями и ... проводить тестирование rails приложения иногда называемое интеграционными тестами. Для тестирования в Cucumber может использоваться как библиотека Webrat, по сути рендерит выдачу HTML эмулируя браузер, и позволяет такие вещи, как заполнить поле формы, нажать на кнопку,открыть ссылку прямо в коде ruby и получить результат, который будет сравнен с ожидаемым. Типично - заполнить пароль и логин в форме, и сравнить, есть ли в выдаче сообщение "добро пожаловать _пользователь_". При еще более глубоком погружении есть возможность использовать Selenium - фреймворк для тестирования прямо через вызовы браузера и использования его DOM, т.е. натурально, запускается фаерфокс, и через его DOM производится тестирование вывода страницы. Что вообще говоря позволяет вовсю тестировать Ajax плагины, работу Prototype и jQuery, что, если не ошибаюсь, Webrat делать не умеет. Следует заметить, что Cucumber это верхний уровень абстракции тестирования который заменяет традиционные интеграционные тесты, для тестов на нижнем уровне все равно прийдется использовать Test::Unit или RSpec, выбор за вами. Очень подробно тематика освещена здесь. Наверное не стоит говорить разработчикам, что означает в переводе на русский название Mocha
19:28, 23 января 2009
( )
Между тем Mocha - прекрасный фреймворк - замена c более красивым названием mocking and stubbing для RoR. Выглядит примерно так: def test_mocking_a_class_method Активно постигая BDD, Cucumber и RSpec
20:34, 22 января 2009
( )
Features. Это прекрасно! Продолжая тему BDD следует отметить, что story runner выпочковался в отдельный фреймворк под названием Cucumber (огурец). Теперь истории выглядят так: мой реальный пример из features/admin_artices.feature Функционал: Админ может добавлять, удалять и изменять статьи Слегка доработанный capistrano recipe для получения дампа рабочей базы локально
13:04, 28 июля 2008
( )
Довольно часто данные изменяются на продакшн-сервере, и обычно хочется экспериментировать над свежей копией данных в своем rails приложении. Тем, кто пользуется для разворачивания приложений capistrano есть хорошая новость: сделать такую вещь весьма несложно. Итак, у нас в production FreeBSD 7.0, для разработки пользуемся рабочей станцией с ubuntu 8.04. Рецепт capistrano слегка модифицированный взят отсюда: http://programmingishard.com/code/495 добавляем в config/deploy.rrb desc "Load production data into development database" после чего пользуемся: cap load_production_data и вуаля, свежая копия базы с production у нас в development! +1 в сайты на ROR
11:09, 3 ферваля 2008
( )
Тихо и незаметно вызрел еще один сайт на Ruby on Rails. Сей сайт находится по адресу http://nxt.com.ua Rails 2.0, пользует плагины acts_as_tree, in_place_editing, restful_authentication, tiny_mce
Relative urls в tiny_mce
17:04, 21 января 2008
( )
От читателя поступил вопрос, как сделать так, что бы в браузере изображений url были бы не вида ../../images, а /images ? Очень просто, достаточно добавить в вызов tiny_mce в контроллере такие параметры: :relative_urls=>false,и ваши url будут вида /images и т.д. хотя, при правильной разработке, этого не требуется. Rails: ActiveSearch plugin
11:32, 27 декабря 2007
( )
Плагин ActiveSearch просто чудо какое-то, большое человеческое спасибо julik.nl за его разработку. Штука сия облегчает и без того легкую жизнь ;-) rails-девелопера при разработке простейшего поиска по записям базы. Идея сего плагина такова: используя разнообразные инексаторы исходя из планируемого объема данных вырабатываем оптимальный подход к поиску по записям базы. Например, мой сайт содержит весьма небольшой объем данных, и, как рекомендует Julik, при объеме до 500 записей целесообразно использовать простейший индексатор ActiveSearch::LikeIndexer. Для того чтобы поиск заработал необходимо: 1. Установить плагин: cd project ruby script/plugin install http://julik.textdriven.com/svn/tools/rails_plugins/simple_search/ 2. Добавить поле searchable к таблицам, по которым вы собираетесь искать. Целессобразно сделать это через миграцию: def self.up def self.down 3. В моделях Product и Category добавляем указание к индексированию: indexes_columns :title, :short_description, :long_description 4. запустить начальное индексирование: консоль rais: ruby script/console в консоли Products.indexers[0].rebuild! Category.indexers[0].rebuild! Все, теперь мы можем достаточно быстро искать по записям:
Можно искать и по Category.find_using_term("query"), как в документации указано, но, видимо такое использование предполагает использование сразу нескольких индексаторов.
Таким образом плагин может быть использован с: 1. индексом в поле searchable в каждой модели, по которой будет производиться поиск. 2. индексом в отдельной таблице 3. индексом через плагин ferret способы индексации расположены в порядке увеличения количества данных для поиска. Удобно, Julik, u made my day. Аяксовое дерево с drag-n-drop на Ruby on Rails
10:58, 17 декабря 2007
( )
А вот, собственно, и ссылка на субж. http://ajaxonrails.wordpress.com/category/ajax-tree/
|
© Максим Прокопов 2005-2024 | О сервере |