SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
LESSON 1:
RUBY OBJECT MODEL
DYNAMIC RUBY
Абстракция, описывающая
обособленную группу объектов,
обладающими общими
свойствами.
Экземпляр класса, некоторая
конечная реализация данной
абстракции.
CLASS OBJECT
MEME AS EXAMPLE OF CLASS-OBJECT CONCEPT
Воруй
Абстрактный мем
Конкретный мем
Убивай
В Ruby каждый класс
является так же и объектом.
Объектом специального
класса Class.
RUBY CLASS HIERARCHY
CLASS AS AN OBJECT
CLASS AS OBJECT
CLASS VARIABLES
VS
CLASS INSTANCE VARIABLES
CLASS VARIABLES VS CLASS INSTANCE VARIABLES
CLASS VARIABLES VS CLASS INSTANCE VARIABLES [UPDATED]
CLASS METHODS
VS
CLASS INSTANCE METHODS
CLASS METHODS VS CLASS INSTANCE METHODS
SINGLETON METHODS
AND SINGLETON CLASSES
Singleton method это метод,
который определен
исключительно для одного
конкретного объекта.
SINGLETON METHODS
Так вот, т.н. class methods
любого класса это и есть
singleton methods
конкретного экземпляра
класса Class.
SINGLETON METHODS
M
etaclass for Foo
instance of Class class
Foo
class as an
instance
of Class class
:another_foo
instance
#my_object_method
Metaclass for :foo
instance of Foo class
Metaclass for :another_foo
instance of Foo class
:foo instance
#my_special_object_method
::my_class_method
RUBY OBJECT MODEL
REFERENCES
▸ http://www.devalot.com/articles/2008/09/ruby-singleton
▸ http://stackoverflow.com/a/10560958
▸ https://habrahabr.ru/post/143990/
THANK YOU!
Alex Mikitenko
nonkor@gmail.com
https://github.com/nonkor
TO BE CONTINUED…

Contenu connexe

En vedette

kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
 
Вторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruВторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ru
Alexander Shcherbinin
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
Krivoy Rog IT Community
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
Daniel Podolsky
 

En vedette (20)

Codefest 2016 - Go в Openprovider
Codefest 2016 - Go в OpenproviderCodefest 2016 - Go в Openprovider
Codefest 2016 - Go в Openprovider
 
Обзорная экскурсия по runit
Обзорная экскурсия по runitОбзорная экскурсия по runit
Обзорная экскурсия по runit
 
Golang
GolangGolang
Golang
 
РИФ+КИБ 2016: как потратить почти 2 миллиона рублей и так и не сделать бизнес
РИФ+КИБ 2016: как потратить почти 2 миллиона рублей и так и не сделать бизнесРИФ+КИБ 2016: как потратить почти 2 миллиона рублей и так и не сделать бизнес
РИФ+КИБ 2016: как потратить почти 2 миллиона рублей и так и не сделать бизнес
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
 
Ruby строки
Ruby строкиRuby строки
Ruby строки
 
OOP в Go
OOP в GoOOP в Go
OOP в Go
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
Go meetup smotri+ 23.04.2015
Go meetup smotri+ 23.04.2015Go meetup smotri+ 23.04.2015
Go meetup smotri+ 23.04.2015
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
Вторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruВторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ru
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
 
Ruby: работа с массивами
Ruby: работа с массивамиRuby: работа с массивами
Ruby: работа с массивами
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
 
Machine Learning in Magento 2
Machine Learning in Magento 2Machine Learning in Magento 2
Machine Learning in Magento 2
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектах
 
Лямбда-архитектура с обратной связью
Лямбда-архитектура с обратной связьюЛямбда-архитектура с обратной связью
Лямбда-архитектура с обратной связью
 
HR-аналитика и автоматизация рекрутинга: лучшие практики
HR-аналитика и автоматизация рекрутинга: лучшие практикиHR-аналитика и автоматизация рекрутинга: лучшие практики
HR-аналитика и автоматизация рекрутинга: лучшие практики
 
Dynamic Ruby. Lesson #5: define_method and its friends
Dynamic Ruby. Lesson #5: define_method and its friendsDynamic Ruby. Lesson #5: define_method and its friends
Dynamic Ruby. Lesson #5: define_method and its friends
 
4. ruby великолепный. фреймворки
4. ruby великолепный. фреймворки4. ruby великолепный. фреймворки
4. ruby великолепный. фреймворки
 

Dynamic Ruby. Lesson #1: Object model