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
100
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
580
Other Decks in Programming
See All in Programming
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
170
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
750
Understanding Ruby Grammar Through Conflicts
yui_knk
1
140
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
1
740
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
280
testingを眺める
matumoto
1
120
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
910
CSC305 Summer Lecture 12
javiergs
PRO
0
130
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
140
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
1.6k
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
250
個人軟體時代
ethanhuang13
0
110
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
695
190k
Optimizing for Happiness
mojombo
379
70k
Writing Fast Ruby
sferik
628
62k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
4 Signs Your Business is Dying
shpigford
184
22k
Balancing Empowerment & Direction
lara
2
590
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
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