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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Mikhail Vaysman
January 28, 2013
Programming
0
110
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
590
Other Decks in Programming
See All in Programming
ご飯食べながらエージェントが開発できる。そう、Agentic Engineeringならね。
yokomachi
1
280
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
170
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
510
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
CSC307 Lecture 10
javiergs
PRO
1
690
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
890
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
390
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
8
2.3k
CSC307 Lecture 11
javiergs
PRO
0
580
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
240
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
230
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
210
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
First, design no harm
axbom
PRO
2
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
270
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
96
Why Our Code Smells
bkeepers
PRO
340
58k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
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