Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ruby_or_not_ruby.pdf
Search
Mikhail Vaysman
January 28, 2013
Programming
0
86
ruby_or_not_ruby.pdf
Presentation what I gave on DevClub meetup on January, 30th in Tallinn.
Mikhail Vaysman
January 28, 2013
Tweet
Share
More Decks by Mikhail Vaysman
See All by Mikhail Vaysman
Как я перестал боятся и полюбил TDD
vaysman
1
570
Other Decks in Programming
See All in Programming
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
300
선언형 UI에서의 상태관리
l2hyunwoo
0
260
KubeCon NA 2024の全DB関連セッションを紹介
nnaka2992
0
110
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
280
ドメインイベント増えすぎ問題
h0r15h0
2
550
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1.3k
命名をリントする
chiroruxx
1
600
情報漏洩させないための設計
kubotak
5
1.3k
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
680
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
270
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
260
為你自己學 Python
eddie
0
510
Featured
See All Featured
Embracing the Ebb and Flow
colly
84
4.5k
A designer walks into a library…
pauljervisheath
205
24k
YesSQL, Process and Tooling at Scale
rocio
170
14k
The Cult of Friendly URLs
andyhume
78
6.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Side Projects
sachag
452
42k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2.1k
Speed Design
sergeychernyshev
25
730
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Transcript
Ruby-ть или не Ruby-ть Михаил Вайсман для devclub.eu вот в
чем вопрос
Вводная часть
Приз за лучший вопрос
Обо мне
Учился
Школа
СПТУ
Армия
СПбГТУ
Работал
None
Что делал? Писал на MS Visual Basic 3.0 Чинил компьютеры
Администрировал Windows и Unix Писал скрипты на Perl Писал автоматические тесты на Java Занимался ручным тестированием Писал на Ruby и Ruby on Rails
Основная часть
Почему Ruby? Интерпретируемый Множество реализаций Две основные парадигмы: ОО и
Функциональная Оптимизирован для людей Свобода, гибкость и легкость
Множество реализаций Классическая реализация (MRI) на C MacRuby JRuby IronRuby
RubyMotion (iOS) mruby
Функциональная Юкихиро “Матц” Мацумото очень любит Emacs Лямбды Каррирование Функции
высших порядков (блоки)
None
Функциональная Лямбды Каррирование
None
None
Функциональная Функции высших порядков (блоки)
None
Объектно Ориентированная Все есть объект “Утиная” типизация Посылка сообщений Простое
наследование Подмешивание (mixin) Открытая ОО модель
None
“Утиная” типизация When I see a bird that walks like
a duck and swims like a duck and quacks like a duck, I call that bird a duck.
None
None
Оптимизирован для людей Легко читать и писать код Лаконичность Синтаксический
сахар Необязательные скобки Язык “гнется” под задачу Поддержка UTF-8
None
None
None
None
Свобода, гибкость и легкость Весь исходный код открытый Можно изменять
базовые классы Изменение языка налету Система управления библиотеками (GEMS)
None
Гордость и предубеждение
Сильные стороны Сообщество!!! Красивый код Сильно развитое тестирование Легко создавать
DSL Удобен для решения интеграционных задач Rails
None
None
calc[master]% ruby tape.rb 123.tape [|1|] [ 1 ,|2|] [|3|, 1
, 2 ]
None
Слабые стороны Скорость работы Есть множество решений Частое отсутствие документации
Можно посмотреть код и/или тесты Обратиться к сообществу Можно создать очень запутанный код Это вопрос дисциплины
DSL Ruby Rake RSpec Cucumber/Gherkin Sinatra
None
Rake
None
None
RSpec
None
None
None
Sinatra При старте пишет == Sinatra/1.3.4 has taken the stage…
При остановке пишет == Sinatra has ended his set (crowd applauds)
None
Cucumber
None
None
None
Rails Веб фреймворк MVC Модульный Текущая версия 3.2
Twitter Basecamp Github Groupon ResumUP Shopify Hulu Livingsocial Cookpad Spree
Lumosity Rails используется
Демо
Демо Невероятный японский квайн Невидимый идентификатор Y-комбинатор Факториал Член ряда
Фибоначчи
Y-комбинатор cos => 0,739085133215161
Вопрос и Ответы
Контакты Twitter: @vaysman E-Mail:
[email protected]
Github: vaysman
Исходный код https:/ /github.com/Vaysman/samples https:/ /gist.github.com/4672957