25
Разрушаем негативные мифы про руби и рельсы что изменилось с выходом новых версий

Разрушаем негативные мифы Ruby, Rails

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Разрушаем негативные мифы Ruby, Rails

Разрушаем негативные мифы про руби и рельсы

что изменилось с выходом новых версий

Page 2: Разрушаем негативные мифы Ruby, Rails

Равиль Байрамгалин

@[email protected]

Page 3: Разрушаем негативные мифы Ruby, Rails

Почему Rails?• Ruby• Культура кода• Сообщество• Не способствует изобретению велосипедов

Page 4: Разрушаем негативные мифы Ruby, Rails

Миф 1Ruby – это что-то новое с неразвитой

экосистемой

Page 5: Разрушаем негативные мифы Ruby, Rails

Количество библиотек

Page 6: Разрушаем негативные мифы Ruby, Rails

Количество проектов на гитхабе

Page 7: Разрушаем негативные мифы Ruby, Rails

Миф 2Rails – нестандартные вещи тяжело

интегрировать

Page 8: Разрушаем негативные мифы Ruby, Rails

Пример: подключаем MongoDBRails 3.x – указать название в файле зависимостей и все

Page 9: Разрушаем негативные мифы Ruby, Rails

Миф 3Минорные релизы ломают плагины

Page 10: Разрушаем негативные мифы Ruby, Rails

В Rails 3 есть официальный апи для разработчиков плагинов

Page 11: Разрушаем негативные мифы Ruby, Rails

Миф 4Rails – мало документации

Page 12: Разрушаем негативные мифы Ruby, Rails

Rails 3 – весь код снабжен подробными комментамиapidock.com/rails – API доки с кармой и комментамиguides.rubyonrails.org – 28 официальных руководств, покрывающих все аспекты рельсrailscasts.com – 263 бесплатных скринкаста, каждую неделю новыйУже 10 книг для rails 3, в том числе и бесплатные доступные онлайн

Page 13: Разрушаем негативные мифы Ruby, Rails

Миф 5Ruby is slooooooooooooooooow

Page 14: Разрушаем негативные мифы Ruby, Rails

Ruby 1.9, JRubyВ среднем в 3.5 раза быстрее ruby 1.8, на отдельных

тестах на порядки быстрее.

Есть C-API, который позволяет просто реализовать узкие места на C

Для JRuby есть дополнительная возможность легко использовать java

Page 15: Разрушаем негативные мифы Ruby, Rails

Миф 6Rails is slooooooooooooow too

Page 16: Разрушаем негативные мифы Ruby, Rails

Предварительная оптимизация – зло Но бывают распространенные затычки, например, работа с базой данных и рендеринг темплейтов

Page 17: Разрушаем негативные мифы Ruby, Rails

Рендеринг темплейтов в Rails 3 до 10 раз быстрее

Page 18: Разрушаем негативные мифы Ruby, Rails

Затычка при работе с базойНа стороне руби:• Объединять запросы в одном (встроенный

механизм eager loading, в Rails 3 можно составить sql запрос любой сложности в рамках руби API)

• Identity Map в Rails 3.1

Page 19: Разрушаем негативные мифы Ruby, Rails

Миф 7Rails doesn’t scale

Page 20: Разрушаем негативные мифы Ruby, Rails

Вертикальное и горизонтальное масштабирование не зависят от

фреймворка или языка

Page 21: Разрушаем негативные мифы Ruby, Rails

Что обычно имеют в виду, то что треды в руби зеленые и мапятся на

один нативный тред =>

запуск нескольких процессов для использования нескольких ядер

Page 22: Разрушаем негативные мифы Ruby, Rails

Ruby 1.9Частично решил эту проблему – зеленые треды

мапятся на несколько нативных, есть GIL, но он не ставится для системных вызовов, для IO и C-

расширений, сообщающих ему об этом

JRuby, RubiniusНативные треды

Page 23: Разрушаем негативные мифы Ruby, Rails

Асинхронное программирование, как альтернатива тредам для приложений, у

которых затычка в IO

Page 24: Разрушаем негативные мифы Ruby, Rails

Супер простое асинхронное программирование в рельсах

Goliath

Помимо кучи других альтернатив:Eventmachine, Revactor, Cool.io, Em-Easy, Em-Synchrony

Page 25: Разрушаем негативные мифы Ruby, Rails

Время для Холивара