Upload
ravil-bayramgalin
View
15
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Разрушаем негативные мифы про руби и рельсы
что изменилось с выходом новых версий
Почему Rails?• Ruby• Культура кода• Сообщество• Не способствует изобретению велосипедов
Миф 1Ruby – это что-то новое с неразвитой
экосистемой
Количество библиотек
Количество проектов на гитхабе
Миф 2Rails – нестандартные вещи тяжело
интегрировать
Пример: подключаем MongoDBRails 3.x – указать название в файле зависимостей и все
Миф 3Минорные релизы ломают плагины
В Rails 3 есть официальный апи для разработчиков плагинов
Миф 4Rails – мало документации
Rails 3 – весь код снабжен подробными комментамиapidock.com/rails – API доки с кармой и комментамиguides.rubyonrails.org – 28 официальных руководств, покрывающих все аспекты рельсrailscasts.com – 263 бесплатных скринкаста, каждую неделю новыйУже 10 книг для rails 3, в том числе и бесплатные доступные онлайн
Миф 5Ruby is slooooooooooooooooow
Ruby 1.9, JRubyВ среднем в 3.5 раза быстрее ruby 1.8, на отдельных
тестах на порядки быстрее.
Есть C-API, который позволяет просто реализовать узкие места на C
Для JRuby есть дополнительная возможность легко использовать java
Миф 6Rails is slooooooooooooow too
Предварительная оптимизация – зло Но бывают распространенные затычки, например, работа с базой данных и рендеринг темплейтов
Рендеринг темплейтов в Rails 3 до 10 раз быстрее
Затычка при работе с базойНа стороне руби:• Объединять запросы в одном (встроенный
механизм eager loading, в Rails 3 можно составить sql запрос любой сложности в рамках руби API)
• Identity Map в Rails 3.1
Миф 7Rails doesn’t scale
Вертикальное и горизонтальное масштабирование не зависят от
фреймворка или языка
Что обычно имеют в виду, то что треды в руби зеленые и мапятся на
один нативный тред =>
запуск нескольких процессов для использования нескольких ядер
Ruby 1.9Частично решил эту проблему – зеленые треды
мапятся на несколько нативных, есть GIL, но он не ставится для системных вызовов, для IO и C-
расширений, сообщающих ему об этом
JRuby, RubiniusНативные треды
Асинхронное программирование, как альтернатива тредам для приложений, у
которых затычка в IO
Супер простое асинхронное программирование в рельсах
Goliath
Помимо кучи других альтернатив:Eventmachine, Revactor, Cool.io, Em-Easy, Em-Synchrony
Время для Холивара