Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ruby_or_not_ruby.pdf
Search
Mikhail Vaysman
January 28, 2013
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ruby_or_not_ruby.pdf
Presentation what I gave on DevClub meetup on January, 30th in Tallinn.
Mikhail Vaysman
January 28, 2013
More Decks by Mikhail Vaysman
See All by Mikhail Vaysman
Как я перестал боятся и полюбил TDD
vaysman
1
600
Other Decks in Programming
See All in Programming
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.2k
The Rails Doctrine Decade
koic
2
430
AWSに止められる覚悟してますか?
morizo_1984
2
490
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
210
Agents on Rails - Rails at Scale 2026
irinanazarova
0
300
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
360
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
280
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
30
13k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
4
390
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
400
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
Into the Great Unknown - MozCon
thekraken
41
2.7k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Odyssey Design
rkendrick25
PRO
2
850
Technical Leadership for Architectural Decision Making
baasie
3
580
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
HDC tutorial
michielstock
2
930
Side Projects
sachag
456
43k
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