Разрушаем негативные мифы Ruby, Rails.
-
Upload
ravil-bayramgalin -
Category
Technology
-
view
22 -
download
0
description
Transcript of Разрушаем негативные мифы Ruby, Rails.
![Page 1: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/1.jpg)
Разрушаем негативные мифы про руби и рельсы
что изменилось с выходом новых версий
![Page 3: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/3.jpg)
Почему Rails?• Ruby• Культура кода• Сообщество• Не способствует изобретению велосипедов
![Page 4: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/4.jpg)
Миф 1Ruby – это что-то новое с неразвитой
экосистемой
![Page 5: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/5.jpg)
Количество библиотек
![Page 6: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/6.jpg)
Количество проектов на гитхабе
![Page 7: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/7.jpg)
Миф 2Rails – нестандартные вещи тяжело
интегрировать
![Page 8: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/8.jpg)
Пример: подключаем MongoDBRails 3.x – указать название в файле зависимостей и все
![Page 9: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/9.jpg)
Миф 3Минорные релизы ломают плагины
![Page 10: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/10.jpg)
В Rails 3 есть официальный апи для разработчиков плагинов
![Page 11: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/11.jpg)
Миф 4Rails – мало документации
![Page 12: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/12.jpg)
Rails 3 – весь код снабжен подробными комментамиapidock.com/rails – API доки с кармой и комментамиguides.rubyonrails.org – 28 официальных руководств, покрывающих все аспекты рельсrailscasts.com – 263 бесплатных скринкаста, каждую неделю новыйУже 10 книг для rails 3, в том числе и бесплатные доступные онлайн
![Page 13: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/13.jpg)
Миф 5Ruby is slooooooooooooooooow
![Page 14: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/14.jpg)
Ruby 1.9, JRubyВ среднем в 3.5 раза быстрее ruby 1.8, на отдельных
тестах на порядки быстрее.
Есть C-API, который позволяет просто реализовать узкие места на C
Для JRuby есть дополнительная возможность легко использовать java
![Page 15: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/15.jpg)
Миф 6Rails is slooooooooooooow too
![Page 16: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/16.jpg)
Предварительная оптимизация – зло Но бывают распространенные затычки, например, работа с базой данных и рендеринг темплейтов
![Page 17: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/17.jpg)
Рендеринг темплейтов в Rails 3 до 10 раз быстрее
![Page 18: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/18.jpg)
Затычка при работе с базойНа стороне руби:• Объединять запросы в одном (встроенный
механизм eager loading, в Rails 3 можно составить sql запрос любой сложности в рамках руби API)
• Identity Map в Rails 3.1
![Page 19: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/19.jpg)
Миф 7Rails doesn’t scale
![Page 20: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/20.jpg)
Вертикальное и горизонтальное масштабирование не зависят от
фреймворка или языка
![Page 21: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/21.jpg)
Что обычно имеют в виду, то что треды в руби зеленые и мапятся на
один нативный тред =>
запуск нескольких процессов для использования нескольких ядер
![Page 22: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/22.jpg)
Ruby 1.9Частично решил эту проблему – зеленые треды
мапятся на несколько нативных, есть GIL, но он не ставится для системных вызовов, для IO и C-
расширений, сообщающих ему об этом
JRuby, RubiniusНативные треды
![Page 23: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/23.jpg)
Асинхронное программирование, как альтернатива тредам для приложений, у
которых затычка в IO
![Page 24: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/24.jpg)
Супер простое асинхронное программирование в рельсах
Goliath
Помимо кучи других альтернатив:Eventmachine, Revactor, Cool.io, Em-Easy, Em-Synchrony
![Page 25: Разрушаем негативные мифы Ruby, Rails.](https://reader035.fdocuments.net/reader035/viewer/2022081412/5457b879af79593e108b7926/html5/thumbnails/25.jpg)
Время для Холивара