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
120
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
590
Other Decks in Programming
See All in Programming
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
120
JavaDoc 再入門
nagise
1
340
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
130
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
スマートグラスで並列バイブコーディング
hyshu
0
140
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
310
Creating Composable Callables in Contemporary C++
rollbear
0
130
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
350
Vite+ Unified Toolchain for the Web
naokihaba
0
300
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
240
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Scaling GitHub
holman
464
140k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
Claude Code のすすめ
schroneko
67
230k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Everyday Curiosity
cassininazir
0
230
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
Statistics for Hackers
jakevdp
799
230k
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