SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Ruby, язык программирования. RuPy.ru,  Омск 2007.
[object Object],[object Object],[object Object]
1. Вкратце о языке .
Основной синтаксис . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Основной синтаксис . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Классы. Объявление и наследование. class   – ключевое слово для объявление класса. Символ  <   используется для наследования. Объявление в класса заканчивается ключевым словом  end , как любой другой блок кода. Множественное наследование запрещено. Доступ к родительскому классу осуществляется с помощью ключевого слова  super .
Основной синтаксис . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Конструктор, методы и члены класса. Объявление метода в классе начинается с ключевого слова  def , затем следует имя метода, и параметры. Метод-конструктор класса должен называться  initialize . Любая переменная, имя которой начинающется с одного символа  @   - член класса. С двух символов  @  -  статический член класса.
Основной синтаксис . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Вызов метода. Метод вызывается, как и в большинстве языков, через точку, скобки с перечислением параметров после вызова можно опустить, если это не вызывает недоразумений.
Основной синтаксис . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ruby- символы. Идентификатор, и символ двоеточия в начале – это специальный объект в  ruby ,  ruby- символ. В большинстве случаев можно считать, что это ссылка на строку. Точнее, что-то, что представляет строку или имя. Два  ruby- символа с одинаковым именем – это один и тот же объект.
Основной синтаксис . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Весь код в объявлении класса начинает выполнятся как только интерпретатор видит его. attr_reader   и  attr_accessor   – вызов метода класса  Module , добавляющего в класс методы для чтения и доступа к членам класса  @name   и  @rocket   соответственно.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Основной синтаксис .
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Основной синтаксис . Классы в  ruby  открыты и свободны для дополнения. Здесь в стандартный класс  Array   добавляется собственный метод, который будет виден только на время действия этого кода.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Основной синтаксис . Ruby- блоки. Ruby- блоки – специальная конструкция языка. Код, объявленный внутри  do .. end  выполняется внутри метода, с которым используется блок. select   и  each  –  стандартные методы для выбора по условию и перебора всей коллекции соответственно.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Основной синтаксис . Код, написаный внутри блока, выполняется внутри метода, принимающего его. Этот метод рассматривает блок, как функцию, в которую можно передать какие-то параметры. Вызов блока и передача параметров происходит с помощью ключевого слова  yield .
2.  Ruby  и  Python .
[object Object],[object Object],[object Object]
Синтаксис. ,[object Object],[object Object]
Использование и производительность ,[object Object],[object Object]
3.  Некоторые скучные повседневные задачи с  ruby.
Базы данных,  ORM. ActiveRecord.
[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ActiveRecord. ActiveRecord –  библиотека, позволяющая связать таблицу в базе данных и класс в  ruby. Объект класса – наследника  ActiveRecord::Base  –  имеет эксплицитно все методы для доступа к полям в таблице. has_many   и  belongs_to   – отношения между таблицами в реляционной базе данных.
ActiveRecord. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Прямой доступ к таблице в базе данных объект имеет лишь в методах  find, save, destroy. find_by_name  –  один из динамических методов для поиска в базе данных.
Генерация и парсинг  XML .  Builder  и  REXML.
Builder. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Генерация  xml – несложная задача, не зависимо от языка. В простых случаях легко можно обойтись и без внешних библиотек. Библиотека  Builder  позволяет просто генерировать  xml -файлы ,  при помощи прокси-объекта, который создает очередной элемент  xml  исходя из названия вызываемого псевдо-метода.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],customers.xml
REXML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Разбор  xml- документов - всегда, наверное, не самая интересная задача. Здесь используется модуль  REXML  из стандартной библиотеки.  REXML –  это не единственный (и не самый производительный) метод для разбора  XML  в  Ruby.
4 . Недостатки.
Несмотря на то, что язык существует с середины 90х, общую известность он получил 2 года назад. Значимые недостатки в языке практически отсутствуют, но есть недостатки, возникшие из-за молодости языка. ,[object Object],[object Object],[object Object],[object Object]
Что-нибудь ещё? ruby-lang.org

Weitere ähnliche Inhalte

Was ist angesagt?

C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.Igor Shkulipa
 
Regexp
RegexpRegexp
Regexpkumup
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6Technopark
 
Принципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.DПринципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.DAndreyGeonya
 
"Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А...
"Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А..."Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А...
"Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А...Fwdays
 
Архитектура в Agile: слабая связность
Архитектура в Agile: слабая связностьАрхитектура в Agile: слабая связность
Архитектура в Agile: слабая связностьAndrey Bibichev
 

Was ist angesagt? (11)

C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.
 
Regexp
RegexpRegexp
Regexp
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
 
java 8
java 8java 8
java 8
 
Принципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.DПринципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.D
 
лек5 6
лек5 6лек5 6
лек5 6
 
"Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А...
"Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А..."Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А...
"Зачем учить F# и как начать: парсим интернет страницу и складываем в базу" А...
 
лекция 4
лекция 4лекция 4
лекция 4
 
Архитектура в Agile: слабая связность
Архитектура в Agile: слабая связностьАрхитектура в Agile: слабая связность
Архитектура в Agile: слабая связность
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Обзор Ruby
Обзор RubyОбзор Ruby
Обзор Ruby
 

Andere mochten auch

Er Cneighborhood Orientation
Er Cneighborhood OrientationEr Cneighborhood Orientation
Er Cneighborhood Orientationguest9818b8
 
SIME Innovation day Wuzzon Powerpoint Feb 2008
SIME Innovation day Wuzzon Powerpoint Feb 2008 SIME Innovation day Wuzzon Powerpoint Feb 2008
SIME Innovation day Wuzzon Powerpoint Feb 2008 Wuzzon Company
 
Comoeditarelmenudenavegacion
ComoeditarelmenudenavegacionComoeditarelmenudenavegacion
Comoeditarelmenudenavegacionmarimarpego
 
All Email Is Spam
All Email Is SpamAll Email Is Spam
All Email Is Spamjimbrown82
 

Andere mochten auch (7)

Er Cneighborhood Orientation
Er Cneighborhood OrientationEr Cneighborhood Orientation
Er Cneighborhood Orientation
 
SIME Innovation day Wuzzon Powerpoint Feb 2008
SIME Innovation day Wuzzon Powerpoint Feb 2008 SIME Innovation day Wuzzon Powerpoint Feb 2008
SIME Innovation day Wuzzon Powerpoint Feb 2008
 
18y54
18y5418y54
18y54
 
Comoeditarelmenudenavegacion
ComoeditarelmenudenavegacionComoeditarelmenudenavegacion
Comoeditarelmenudenavegacion
 
Tukea Hanke
Tukea HankeTukea Hanke
Tukea Hanke
 
All Email Is Spam
All Email Is SpamAll Email Is Spam
All Email Is Spam
 
COMET in Plone
COMET in PloneCOMET in Plone
COMET in Plone
 

Ähnlich wie Rupyru2007 Rastyagaev Ruby

C++ осень 2012 лекция 9
C++ осень 2012 лекция 9C++ осень 2012 лекция 9
C++ осень 2012 лекция 9Technopark
 
Alexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the Beast
Alexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the BeastAlexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the Beast
Alexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the BeastAlexander Dymo
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Pavel Tsukanov
 
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документированиеСпецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документирование7bits
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?Vasil Remeniuk
 
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)ZFConf Conference
 
Толстая модель. История разработки ORM
Толстая модель. История разработки ORMТолстая модель. История разработки ORM
Толстая модель. История разработки ORMMikhail Shamin
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf Conference
 
Ruby On Rails: Web-разработка по-другому!
Ruby On Rails: Web-разработка по-другому!Ruby On Rails: Web-разработка по-другому!
Ruby On Rails: Web-разработка по-другому!Constantin Kichinsky
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3 phpclub
 
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.7bits
 

Ähnlich wie Rupyru2007 Rastyagaev Ruby (20)

C++ осень 2012 лекция 9
C++ осень 2012 лекция 9C++ осень 2012 лекция 9
C++ осень 2012 лекция 9
 
Alexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the Beast
Alexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the BeastAlexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the Beast
Alexander Dymo - IT-клуб Николаева - April 2011 - Ruby: Beaty and the Beast
 
python vs ruby
python vs rubypython vs ruby
python vs ruby
 
function_docs.pdf
function_docs.pdffunction_docs.pdf
function_docs.pdf
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
 
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документированиеСпецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
PHP7 - что ожидать?
PHP7 - что ожидать?PHP7 - что ожидать?
PHP7 - что ожидать?
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?
 
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
 
Толстая модель. История разработки ORM
Толстая модель. История разработки ORMТолстая модель. История разработки ORM
Толстая модель. История разработки ORM
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
DBIx::Class
DBIx::ClassDBIx::Class
DBIx::Class
 
бегун
бегунбегун
бегун
 
бегун
бегунбегун
бегун
 
Ruby
RubyRuby
Ruby
 
Ruby On Rails: Web-разработка по-другому!
Ruby On Rails: Web-разработка по-другому!Ruby On Rails: Web-разработка по-другому!
Ruby On Rails: Web-разработка по-другому!
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
 

Rupyru2007 Rastyagaev Ruby