Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ruby basics

1,650 views

Published on

This presentation was held at HackDay in Yaroslavl, 3 April 2011.

Published in: Technology
  • Be the first to comment

Ruby basics

  1. 1. Введение в Ruby Михаил Вайсман HackDay Ярославль
  2. 2. Что такое Ruby?
  3. 3. Ruby это...A dynamic, open source programming language witha focus on simplicity and productivity. It has anelegant syntax that is natural to read and easy towrite. http://www.ruby-lang.org
  4. 4. историческая справка• Ruby был создан Yukihiro “Matz” Matsumoto в 1993 г. • Более мощный, чем Perl и более OO, чем Python• Наиболее используемая версия 1.8• Текущая версия 1.9
  5. 5. особенности• Интерпретируемый • Чистый ОО язык• Динамическая • Любое выражение типизация имет возвращаемое значение• Оптимизирован для человека • Объектная модель полностью открыта и • Легко писать и может быть изменена разработчиком читать • Мощный
  6. 6. IRB (interactive ruby)
  7. 7. IRB• Прекрасный инструмент для: • Эксперементов и проверки идей • Изучения Ruby • Исследования внутреннего устройства Ruby и его библиотек• Запускается из командной строки
  8. 8. ~$ irb --simple-prompt>> 2+2=> 4>> 5*5*5=> 125>> puts ’Hi’Hi=> nil>>
  9. 9. Объекты в Ruby
  10. 10. Все есть объект• Как и Smalltalk, Ruby это чисты ОО язык - все есть объект• Примитивных типов (int, long, byte, etc) не существует• Описывать переменные не нужно• Блок кода тоже объект
  11. 11. Что такое объект?• Хранит состояние• Может получать сообщения• Может обрабатывать сообщения
  12. 12. • “Примитивный” тип - объект •-1.abs• nil - объект •nil.class• Класс - объект • Object.new
  13. 13. “Типы”
  14. 14. Типы• Строки • С интерполяцией и без• Числа• Символы (symbols)• Массивы• Ассоциативные массивы, хэши (hash)
  15. 15. Символы• Символ - это клас• Создаются добавлением “:” к имени или строке • :my_symbol • :”my symbol”• Атомарны, неизменны и уникальны
  16. 16. Классы
  17. 17. Классы• Все объекты принадлежат какому-нибудь классу• У каждого (кроме одного) класса есть супер класс• Корень иерархии • Object (1.8) • BasicObject (1.9)
  18. 18. наследование• Единичное наследование• Подмешивание (Mix-in)
  19. 19. Методы
  20. 20. Особенности• Не вызов метода, а • ! и ? в конце имен посылка сообщения методов объекту • Скобки вокруг• Все методы аргументов возвращают значение • Упрощенный• Удаление метода синтаксис для hash• method_missing• Синтаксический сахар
  21. 21. Типы методов• Метод класса• Метод объекта• Singleton метод• Метод вне класса
  22. 22. Блоки и Proc• Ключевое слово yield• Аргумент метода с “&”• Замыкания (closure)
  23. 23. объектная модель 1.8
  24. 24. Мир Ruby
  25. 25. Интерпретаторы• MRI/YARV (ruby) • MacRuby (macruby)• Rubinius (rbx)• JRuby (jruby)• Ruby Enterprise Edition (ree)• MagLev (maglev)• IronRuby (ironruby)
  26. 26. Тестирование• Test::Unit• Shoulda• RSpec• Cucumber
  27. 27. gEMs• Централизованное хранилище • http://rubygems.org• Утилита gem• Gem Bundler
  28. 28. Экосистема RUBY• github • http://github.com• heroku • http://heroku.com• Google App Engine• Активное и дружелюбное сообщество
  29. 29. IDE• NetBeans v6.9.1Ruby Edition • http://netbeans.org• RubyMine • http://jetbrains.com/ruby• TextMate (только Mac OS)• Sublime Text 2
  30. 30. Ruby on rails
  31. 31. Ruby on rails это...Ruby on Rails is an open-source web frameworkthat’s optimized for programmer happines andsustainable productivity. It lets you write beaurifulcode by favoring convention over configuration. http://rubyonrails.org
  32. 32. Историческая справка• Ruby on Railsбыл создана David Heinemeier Hansson в 2003 г. • Web development that doesn’t hurt• Текущая версия 3.0
  33. 33. Особенности• Основан на архитектуре Model-View- Controller (MVC)• Принцип Don’t Repeat Yourself (DRY)• Convention Over Configuration• Генераторы (scaffold)• “Батарейки в комплект входят”
  34. 34. Model-View-Controller
  35. 35. демо
  36. 36. Вопрос и ответы
  37. 37. контакты• twitter: vaysman

×