ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
A polyglot's view of
Ruby & Rails
§Ú§Ý§Ú "§¬§à§Þ§å §ß§å§Ø§ß§í §â§Ö§Ý§î§ã§í §Ó 2018?"
Leonid Shevtsov ¡¤ Ruby Meditation ¡¤ May 2018 ¡¤ Dnipro
§±§â§Ú§Ó§Ö§ä!
§®§Ö§ß§ñ §Ù§à§Ó§å§ä §­§Ö§ß§ñ, §Ú §ñ §ß§Ö §æ§Ñ§ß§Ñ§ä Ruby
§±§â§Ú§Ó§Ö§ä!
§®§Ö§ß§ñ §Ù§à§Ó§å§ä §­§Ö§ß§ñ, §Ú §ñ §ß§Ö §æ§Ñ§ß§Ñ§ä Ruby
¡ú §¥§Ö§ã§ñ§ä§î §Ý§Ö§ä §ß§Ñ§Ù§Ñ§Õ §ñ §Ò§í§Ý §Ú§Þ §à§é§Ñ§â§à§Ó§Ñ§ß
§±§â§Ú§Ó§Ö§ä!
§®§Ö§ß§ñ §Ù§à§Ó§å§ä §­§Ö§ß§ñ, §Ú §ñ §ß§Ö §æ§Ñ§ß§Ñ§ä Ruby
¡ú §¥§Ö§ã§ñ§ä§î §Ý§Ö§ä §ß§Ñ§Ù§Ñ§Õ §ñ §Ò§í§Ý §Ú§Þ §à§é§Ñ§â§à§Ó§Ñ§ß
¡ú §­§Ö§ä §ê§Ö§ã§ä§î §ß§Ñ§Ù§Ñ§Õ §ñ §Ö§Ô§à §ß§Ö§ß§Ñ§Ó§Ú§Õ§Ö§Ý
§±§â§Ú§Ó§Ö§ä!
§®§Ö§ß§ñ §Ù§à§Ó§å§ä §­§Ö§ß§ñ, §Ú §ñ §ß§Ö §æ§Ñ§ß§Ñ§ä Ruby
¡ú §¥§Ö§ã§ñ§ä§î §Ý§Ö§ä §ß§Ñ§Ù§Ñ§Õ §ñ §Ò§í§Ý §Ú§Þ §à§é§Ñ§â§à§Ó§Ñ§ß
¡ú §­§Ö§ä §ê§Ö§ã§ä§î §ß§Ñ§Ù§Ñ§Õ §ñ §Ö§Ô§à §ß§Ö§ß§Ñ§Ó§Ú§Õ§Ö§Ý
¡ú §Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
¡ú Scala
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
¡ú Scala
¡ú Clojure
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
¡ú Scala
¡ú Clojure
¡ú Elixir
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
¡ú Scala
¡ú Clojure
¡ú Elixir
¡ú Golang
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
¡ú Scala
¡ú Clojure
¡ú Elixir
¡ú Golang
¡ú F#
§Á §Õ§à§Ý§Ô§à §Ú§ã§Ü§Ñ§Ý §Ö§Þ§å §Ù§Ñ§Þ§Ö§ß§å
(§ï§ä§à §ã§Ö§Û§é§Ñ§ã §Þ§à§Õ§ß§à, §Õ§Ñ?)
¡ú Scala
¡ú Clojure
¡ú Elixir
¡ú Golang
¡ú F#
¡ú Node.js
§£§à§à§Ò§ë§Ö,
§Ü§â§Ñ§Û§ß§Ö §á§à§Ý§Ö§Ù§ß§à §á§â§à§Ò§à§Ó§Ñ§ä§î §ñ§Ù§í§Ü§Ú
§á§â§à§Ô§â§Ñ§Þ§Þ§Ú§â§à§Ó§Ñ§ß§Ú§ñ, §à§ä§Ý§Ú§é§ß§í§Ö §à§ä §ã§Ó§à§Ö§Ô§à
§à§ã§ß§à§Ó§ß§à§Ô§à
§¯§à §Ü Ruby §ñ §Ó§Ö§â§ß§å§Ý§ã§ñ
Ruby ¡¤ Golang ¡¤ JavaScript
§¯§à §Ü Ruby §ñ §Ó§Ö§â§ß§å§Ý§ã§ñ
Ruby ¡¤ Golang ¡¤ JavaScript
§®§Ñ§ä§Ö§â§Ú§Ñ§Ý§î§ß§í§Ö §ã§Ó§à§Û§ã§ä§Ó§Ñ Ruby
§±§â§à§ã§ä§à§ä§Ñ
§®§Ú§ß§Ú§Þ§å§Þ §á§â§Ñ§Ó§Ú§Ý
§±§â§à§ã§ä§à§ä§Ñ 1
# The famous Hello World
# Program is trivial in
# Ruby. Superfluous:
#
# * A "main" method
# * Newline
# * Semicolons
#
# Here is the Code:
puts "Hello World!"
1?
https://ruby-lang.org
§¥§à§Ô§à§Ó§à§â§Ö§ß§ß§à§ã§ä§Ú
§¬§à§Õ §á§à §á§à§ß§ñ§ä§Ú§ñ§Þ
§¥§à§Ô§à§Ó§à§â§Ö§ß§ß§à§ã§ä§Ú
validates_presence_of :name
after_filter :send_email
expect(results).to?match_array(%w(foo bar))
§±§â§Ú§ñ§ä§ß§í§Û, §é§Ú§ä§Ñ§Ò§Ö§Ý§î§ß§í§Û §Ü§à§Õ
§¬§à§Õ §Õ§Ý§ñ §Ý§ð§Õ§Ö§Û, §ß§Ö §Õ§Ý§ñ §Ü§à§Þ§á§Ú§Ý§ñ§ä§à§â§Ñ
§±§â§Ú§ñ§ä§ß§í§Û, §é§Ú§ä§Ñ§Ò§Ö§Ý§î§ß§í§Û §Ü§à§Õ 2
5.times { print "Odelay!" }
exit unless "restaurant".include? "aura"
['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
2?
http://poignant.guide/book/chapter-3.html
§ª§ã§ä§Ú§ß§Ñ §Ó Runtime
§ª§ã§ä§Ú§ß§Ñ §Ó Runtime
class User < ApplicationRecord
# §á§à§Ý§ñ????
end
vs
$> rails console
> User.methods
=> [:id, :name, :email, ...]
§¢§í§ã§ä§â§Ñ§ñ §â§Ñ§Ù§â§Ñ§Ò§à§ä§Ü§Ñ
§²§Ö§Õ§Ñ§Ü§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö §ß§Ñ §Ý§Ö§ä§å
§¢§í§ã§ä§â§Ñ§ñ §â§Ñ§Ù§â§Ñ§Ò§à§ä§Ü§Ñ
$> heroku run rails console
# Copy + Paste
> class User
def buggy_method
# fixed implementation goes here
end
end
> User.where(buggy: true).each(&:buggy_method)
§³§Ó§à§Û§ã§ä§Ó§Ñ Ruby
¡ú §±§â§à§ã§ä§à§ä§Ñ
¡ú §¥§à§Ô§à§Ó§à§â§Ö§ß§ß§à§ã§ä§Ú
¡ú §±§â§Ú§ñ§ä§ß§í§Û, §é§Ú§ä§Ñ§Ò§Ö§Ý§î§ß§í§Û §Ü§à§Õ
¡ú §ª§ã§ä§Ú§ß§Ñ §Ó Runtime
¡ú §¢§í§ã§ä§â§Ñ§ñ §â§Ñ§Ù§â§Ñ§Ò§à§ä§Ü§Ñ
Ruby ¡¤ Golang ¡¤ JavaScript
§±§â§à§ã§ä§à§ä§Ñ + §¥§à§Ô§à§Ó§à§â§Ö§ß§ß§à§ã§ä§Ú + §¢§í§ã§ä§â§Ñ§ñ §â§Ñ§Ù§â§Ñ§Ò§à§ä§Ü§Ñ
=
§±§â§à§Ö§Ü§ä§í, §Ó §Ü§à§ä§à§â§í§ç §Ý§à§Ô§Ú§Ü§Ñ §Ú §à§ã§à§Ò§Ö§ß§ß§à §ã§ç§Ö§Þ§Ñ §Õ§Ñ§ß§ß§í§ç §Ö§ë§Ö §ß§Ö
§Ó§í§ñ§ã§ß§Ö§ß§í.
§±§â§à§ã§ä§à§ä§Ñ + §¥§à§Ô§à§Ó§à§â§Ö§ß§ß§à§ã§ä§Ú
=
§ª§ß§ä§Ö§Ô§â§Ñ§è§Ú§à§ß§ß§í§Ö §ä§Ö§ã§ä§í
(§Õ§Ý§ñ §á§â§à§Ö§Ü§ä§à§Ó §ß§Ñ §Õ§â§å§Ô§Ú§ç §ñ§Ù§í§Ü§Ñ§ç)
§±§â§à§ã§ä§à§ä§Ñ + §¥§à§Ô§à§Ó§à§â§Ö§ß§ß§à§ã§ä§Ú + Runtime
=
§Á§Ù§í§Ü §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú §Õ§Ý§ñ §ã§Ú§ã§ä§Ö§Þ
§¹§Ú§ä§Ñ§Ò§Ö§Ý§î§ß§í§Û §Ü§à§Õ + Runtime
=
§³§Ü§â§Ú§á§ä§í
Ruby
Ruby
§­§à§Ô§Ú§Ü§Ñ §Ú §ã§ç§Ö§Þ§Ñ §Õ§Ñ§ß§ß§í§ç §Ú§Ù§Ó§Ö§ã§ä§ß§í
Ruby
§°§Ô§â§Ñ§ß§Ú§é§Ö§ß§ß§í§Û §ä§Ö§ç§ß§Ú§é§Ö§ã§Ü§Ú§Û §Ò§ð§Õ§Ø§Ö§ä
Ruby
§¬§à§ß§Ü§å§â§Ö§ß§ä§ß§à§Ö §á§â§à§Ô§â§Ñ§Þ§Þ§Ú§â§à§Ó§Ñ§ß§Ú§Ö
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
c§Ó§ñ§ä§à §ã§Ý§Ö§Õ§å§Ö§ä §â§å§Ò§à§Ü§à§á§å
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
c§Ó§ñ§ä§à §ã§Ý§Ö§Õ§å§Ö§ä §â§å§Ò§à§Ü§à§á§å
§®§Ö§ä§â§Ú§Ü§Ú:
¡ú §Õ§Ý§Ú§ß§Ñ §ã§ä§â§à§Ü§Ú
¡ú §Õ§Ý§Ú§ß§Ñ §Þ§Ö§ä§à§Õ§Ñ
¡ú §Õ§Ý§Ú§ß§Ñ §Þ§à§Õ§å§Ý§ñ
¡ú §ã§Ý§à§Ø§ß§à§ã§ä§î
¡ú §é§Ú§ã§Ý§à §Ñ§â§Ô§å§Þ§Ö§ß§ä§à§Ó
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ã§à§ã§ä§à§Ú§ä §Ú§Ù §ß§Ö§Ò§à§Ý§î§ê§Ú§ç §Þ§à§Õ§å§Ý§Ö§Û
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ã§à§ã§ä§à§Ú§ä §Ú§Ù §ß§Ö§Ò§à§Ý§î§ê§Ú§ç §Þ§à§Õ§å§Ý§Ö§Û
¡ú §ß§à §ä§à§Ý§î§Ü§à §ß§Ö §Þ§Ú§Ü§ã§Ú§ß§à§Ó!
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§Ú§ã§á§à§Ý§î§Ù§å§Ö§ä dependency injection
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§Ú§ã§á§à§Ý§î§Ù§å§Ö§ä dependency injection
¡ú §±§Ñ§ä§ä§Ö§â§ß "Functional with con?guration"
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ß§Ö §ç§â§Ñ§ß§Ú§ä §ã§à§ã§ä§à§ñ§ß§Ú§Ö
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ß§Ö §ç§â§Ñ§ß§Ú§ä §ã§à§ã§ä§à§ñ§ß§Ú§Ö
¡ú §à§ã§à§Ò§Ö§ß§ß§à §Ó Rails
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§á§à§Ü§â§í§ä §á§â§à§ã§ä§í§Þ§Ú §ä§Ö§ã§ä§Ñ§Þ§Ú
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ß§Ö §Ù§Ý§à§å§á§à§ä§â§Ö§Ò§Ý§ñ§Ö§ä "§á§Ñ§ä§ä§Ö§â§ß§Ñ§Þ§Ú"
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ß§Ö §Ù§Ý§à§å§á§à§ä§â§Ö§Ò§Ý§ñ§Ö§ä §Þ§Ö§ä§Ñ§á§â§à§Ô§â§Ñ§Þ§Þ§Ú§â§à§Ó§Ñ§ß§Ú§Ö§Þ
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§Ú§Ù§à§Ý§Ú§â§å§Ö§ä §Þ§å§ä§Ú§â§å§ð§ë§Ú§Û §Ü§à§Õ
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ç§à§â§à§ê§à §Õ§à§Ü§å§Þ§Ö§ß§ä§Ú§â§à§Ó§Ñ§ß
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
§ç§à§â§à§ê§à §Õ§à§Ü§å§Þ§Ö§ß§ä§Ú§â§à§Ó§Ñ§ß
¡ú §Þ§Ñ§ß§Ü§Ú§á§Ñ§ä§é§Ú§ß§Ô
¡ú §ç§Ñ§Ü§Ú
¡ú "...§ñ §Ò§í §à§Ò§í§Ü§ß§à§Ó§Ö§ß§ß§à §ß§Ñ§á§Ú§ã§Ñ§Ý XXX, §ß§à §ä§å§ä §ä§Ñ§Ü§à§Ö §Õ§Ö§Ý§à,
§é§ä§à §ñ §Ý§å§é§ê§Ö §ß§Ñ§á§Ú§ê§å YYY..."
¡ú §ß§Ñ§á§Ú§ê§Ú §ï§ä§à §Ü§à§Þ§Þ§Ö§ß§ä§Ñ§â§Ú§Ö§Þ!
Ruby, §Ü§à§ä§à§â§í§Û §ñ §Ý§ð§Ò§Ý§ð
¡ú §³§Ó§ñ§ä§à §ã§Ý§Ö§Õ§å§Ö§ä §â§å§Ò§à§Ü§à§á§å
¡ú §³§à§ã§ä§à§Ú§ä §Ú§Ù §ß§Ö§Ò§à§Ý§î§ê§Ú§ç §Þ§à§Õ§å§Ý§Ö§Û
¡ú §ª§ã§á§à§Ý§î§Ù§å§Ö§ä dependency injection
¡ú §¯§Ö §Ú§ã§á§à§Ý§î§Ù§å§Ö§ä §ã§à§ã§ä§à§ñ§ß§Ú§ñ
¡ú §±§â§à§ã§ä§í§Ö (§Ò§Ý§Ñ§Ô§à§Õ§Ñ§â§ñ DI) §ä§Ö§ã§ä§í
¡ú §¯§Ö §Ù§Ý§à§å§á§à§ä§â§Ö§Ò§Ý§ñ§Ö§ä §á§Ñ§ä§ä§Ö§â§ß§Ñ§Þ§Ú
¡ú §¯§Ö §Ù§Ý§à§å§á§à§ä§â§Ö§Ò§Ý§ñ§Ö§ä §Þ§Ö§ä§Ñ§á§â§à§Ô§â§Ñ§Þ§Þ§Ú§â§à§Ó§Ñ§ß§Ú§Ö§Þ
¡ú §®§å§ä§Ú§â§å§ð§ë§Ú§Û §Ü§à§Õ §Ú§Ù§à§Ý§Ú§â§à§Ó§Ñ§ß §Ú §Ý§Ö§Ô§Ü§à §é§Ú§ä§Ñ§Ò§Ö§Ý§Ö§ß
¡ú §®§Ñ§ß§Ü§Ú§á§Ñ§ä§é§Ú§ß§Ô §é§Ö§ä§Ü§à §Ù§Ñ§Õ§à§Ü§å§Þ§Ö§ß§ä§Ú§â§à§Ó§Ñ§ß
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§®§Ú§ß§Ú§Þ§å§Þ §Ü§à§Õ§Ñ §Ó §Þ§à§Õ§Ö§Ý§ñ§ç
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§®§Ú§ß§Ú§Þ§å§Þ §Ü§à§Õ§Ñ §Ó §Þ§à§Õ§Ö§Ý§ñ§ç
¡ú §Ó§Ñ§Ý§Ú§Õ§Ñ§ä§à§â§í
¡ú §Ø§Ú§Ù§ß§Ö§ß§ß§í§Û §è§Ú§Ü§Ý
¡ú §Ñ§ã§ã§à§è§Ú§Ñ§è§Ú§Ú
¡ú §ã§Ü§à§å§á§í
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§®§Ú§ß§Ú§Þ§å§Þ §Ü§à§Õ§Ñ §Ó §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ§ç
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§®§Ú§ß§Ú§Þ§å§Þ §Ü§à§Õ§Ñ §Ó §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ§ç
¡ú §á§â§à§Ó§Ö§â§Ü§Ñ §á§Ñ§â§Ñ§Þ§Ö§ä§â§à§Ó
¡ú §Ô§Ö§ß§Ö§â§Ö§è§Ú§ñ §Ó§Ú§Ó§à§Õ§Ñ
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§¢§Ú§Ù§ß§Ö§ã-§Ý§à§Ô§Ú§Ü§Ñ §Ó §Þ§à§Õ§å§Ý§ñ§ç
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§¢§Ú§Ù§ß§Ö§ã-§Ý§à§Ô§Ú§Ü§Ñ §Ó §Þ§à§Õ§å§Ý§ñ§ç
¡ú Rails - §ï§ä§à §ä§à§Ý§î§Ü§à Web
¡ú §²§å§Ý§Ú§ä§Ö §Ó§Ñ§ê§Ú§Þ app/*!
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§¥§à§ã§ä§å§á §Ü §Ò§Ñ§Ù§Ö §Ú§Ù §à§Õ§ß§à§Ô§à §Þ§Ö§ã§ä§Ñ
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§¥§à§ã§ä§å§á §Ü §Ò§Ñ§Ù§Ö §Ú§Ù §à§Õ§ß§à§Ô§à §Þ§Ö§ã§ä§Ñ
class User < ApplicationRecord
has_many :posts
has_one :latest_post,
class_name: 'Post',
-> { order('created_at DESC') }
end
User.limit(10).includes(:latest_post)
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§£§î§ð§ç§Ñ §ß§Ñ React
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§£§î§ð§ç§Ñ §ß§Ñ React
(§ä§à §Ö§ã§ä§î §â§Ö§Ý§î§ã§à§Ó§à§Û §Ó§î§ð§ç§Ú §Ú §ß§Ö§ä)
!
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§´§Ö§ã§ä§í §ß§Ñ RSpec
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
§´§Ö§ã§ä§í §ß§Ñ RSpec
¡ú §á§â§à§ã§ä§í§Ö
¡ú §à§ã§à§Ò§Ö§ß§ß§à §Õ§Ý§ñ §Ò§Ú§Ù§ß§Ö§ã-§Ý§à§Ô§Ú§Ü§Ú
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
Capybara+Chrome
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
Capybara+Chrome
¡ú §ã§Ñ§Þ§í§Û "§ß§Ñ§Õ§Ö§Ø§ß§í§Û" §ã§à§Ó§â§Ö§Þ§Ö§ß§ß§í§Û §Ó§Ñ§â§Ú§Ñ§ß§ä
¡ú headless mode
Rails, §Ü§à§ä§à§â§í§Ö §ñ §Ý§ð§Ò§Ý§ð
¡ú §®§Ú§ß§Ú§Þ§å§Þ §Ü§à§Õ§Ñ §Ó §Þ§à§Õ§Ö§Ý§ñ§ç
¡ú §®§Ú§ß§Ú§Þ§å§Þ §Ü§à§Õ§Ñ §Ó §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ§ç
¡ú §¥§à§ã§ä§å§á §Ü §Ò§Ñ§Ù§Ö §Ú§Ù §à§Õ§ß§à§Ô§à §Þ§Ö§ã§ä§Ñ
¡ú §¢§Ú§Ù§ß§Ö§ã-§Ý§à§Ô§Ú§Ü§Ñ §Ó §Þ§à§Õ§å§Ý§ñ§ç
¡ú §£§î§ð§ç§Ñ §ß§Ñ React
¡ú §´§Ö§ã§ä§í §ß§Ñ RSpec
¡ú Capybara+Chrome
§¹§ä§à §Ò§í §ñ §ç§à§ä§Ö§Ý §Ó §Ó§Ú§Õ§Ö§ä§î §Ó Ruby
¡ú §¡§Ó§ä§à§æ§à§â§Þ§Ñ§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö §Ü§à§Õ§Ñ
¡ú §³§ä§Ñ§ä§Ú§é§Ö§ã§Ü§å§ð §ä§Ú§á§Ú§Ù§Ñ§è§Ú§ð
§³§á§Ñ§ã§Ú§Ò§à! §£§à§á§â§à§ã§í?
§á§à§Õ§á§Ú§ã§í§Ó§Ñ§Û§ä§Ö§ã§î §ß§Ñ RSS:
http://l-s.me
§á§Ú§ê§Ú§ä§Ö §á§Ú§ã§î§Þ§Ñ:
leonid@shevtsov.me

More Related Content

Similar to A polyglot's view of Ruby on Rails ¨C Leonid Shevtsov (20)

kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
?
§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails
§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails
§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails
Andrei Kaleshka
?
DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"
DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"
DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"
Roman Dvornov
?
Rapid API development
Rapid API developmentRapid API development
Rapid API development
Vladislav Melanitskiy
?
Devconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü Yii
Devconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü YiiDevconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü Yii
Devconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü Yii
Alexander Makarov
?
§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.
§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.
§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.
ScrumTrek
?
§¿§Ó§à§Ý§ð§è§Ú§à§ß§ß§í§Û §Õ§Ú§Ù§Ñ§Û§ß. Joker Students Day 2016
§¿§Ó§à§Ý§ð§è§Ú§à§ß§ß§í§Û §Õ§Ú§Ù§Ñ§Û§ß. Joker Students Day 2016§¿§Ó§à§Ý§ð§è§Ú§à§ß§ß§í§Û §Õ§Ú§Ù§Ñ§Û§ß. Joker Students Day 2016
§¿§Ó§à§Ý§ð§è§Ú§à§ß§ß§í§Û §Õ§Ú§Ù§Ñ§Û§ß. Joker Students Day 2016
§¬§Ú§â§Ú§Ý§Ý §´§à§Ý§Ü§Ñ§é§×§Ó
?
Refactorings with RubyMine
Refactorings with RubyMineRefactorings with RubyMine
Refactorings with RubyMine
avokin
?
§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ
§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ
§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ
Alexander Makarov
?
CodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ Yii
CodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ YiiCodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ Yii
CodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ Yii
CodeFest
?
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo
?
§¬§Ñ§Ü §ã§Õ§Ö§Ý§Ñ§ä§î §Ü§à§ß§ä§â§Ú§Ò§å§ä §Ó Ruby on Rails
§¬§Ñ§Ü §ã§Õ§Ö§Ý§Ñ§ä§î §Ü§à§ß§ä§â§Ú§Ò§å§ä §Ó Ruby on Rails§¬§Ñ§Ü §ã§Õ§Ö§Ý§Ñ§ä§î §Ü§à§ß§ä§â§Ú§Ò§å§ä §Ó Ruby on Rails
§¬§Ñ§Ü §ã§Õ§Ö§Ý§Ñ§ä§î §Ü§à§ß§ä§â§Ú§Ò§å§ä §Ó Ruby on Rails
§¡§Ý§Ö§Ü§ã§Ñ§ß§Õ§â §¦§Ø§à§Ó
?
Ruby on Rails for noobs
Ruby on Rails for noobsRuby on Rails for noobs
Ruby on Rails for noobs
Vitalii Tytskyi
?
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
Yandex
?
Ryazan
RyazanRyazan
Ryazan
Daniel Podolsky
?
§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)
§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)
§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)
Ontico
?
Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...
Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...
Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...
Daniel Podolsky
?
§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...
§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö  §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö  §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...
§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...
lshevtsov
?
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
?
§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails
§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails
§¬§à§â§á§à§â§Ñ§ä§Ú§Ó§ß§à§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ Rails
Andrei Kaleshka
?
DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"
DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"
DOM-§ê§Ñ§Ò§Ý§à§ß§Ú§Ù§Ñ§ä§à§â§í ¨C §ß§Ö §ä§à§Ý§î§Ü§à "§Ò§í§ã§ä§â§à"
Roman Dvornov
?
Devconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü Yii
Devconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü YiiDevconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü Yii
Devconf 2011 - PHP - §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ §æ§â§Ö§Û§Þ§Ó§à§â§Ü Yii
Alexander Makarov
?
§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.
§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.
§¡§Ý§Ö§Ü§ã§Ö§Û §­§å§ã§ä§Ú§ß. §¯§Ö§á§â§Ö§â§í§Ó§ß§Ñ§ñ §á§â§à§Ó§Ö§â§Ü§Ñ §Ü§Ñ§é§Ö§ã§ä§Ó§Ñ §Ü§à§Õ§Ñ.
ScrumTrek
?
Refactorings with RubyMine
Refactorings with RubyMineRefactorings with RubyMine
Refactorings with RubyMine
avokin
?
§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ
§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ
§¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ
Alexander Makarov
?
CodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ Yii
CodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ YiiCodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ Yii
CodeFest 2011. §®§Ñ§Ü§Ñ§â§à§Ó §¡. ¡ª §¬§Ñ§Ü §â§Ñ§Ù§â§Ñ§Ò§Ñ§ä§í§Ó§Ñ§Ö§ä§ã§ñ Yii
CodeFest
?
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo
?
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
Yandex
?
§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)
§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)
§±§â§à§Ô§â§Ö§ã§ã§Ú§Ó§ß§í§Û §â§Ö§ß§Õ§Ö§â§Ú§ß§Ô §Ú Catberry.js / §®§Ú§ç§Ñ§Ú§Ý §²§Ö§Ö§ß§Ü§à (2GIS / Flamp)
Ontico
?
Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...
Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...
Golang §Ó §Õ§Ö§Û§ã§ä§Ó§Ú§Ú: §¬§Ñ§Ü §ß§Ñ§Þ §å§Õ§Ñ§Ö§ä§ã§ñ §á§Ú§ã§Ñ§ä§î highload §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Ö §ß§Ñ (§ß§Ö?)§á§à§Õ§ç§à§Õ§ñ...
Daniel Podolsky
?
§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...
§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö  §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö  §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...
§³§Ú§ã§ä§Ö§Þ§ß§à§Ö §ä§Ö§ã§ä§Ú§â§à§Ó§Ñ§ß§Ú§Ö §á§â§Ú§Ý§à§Ø§Ö§ß§Ú§Û §ß§Ñ Ruby on Rails §ã §á§â§Ú§Þ§Ö§ß§Ö§ß§Ú§Ö§Þ Rspec §Ú Cap...
lshevtsov
?

More from Ruby Meditation (20)

Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Ruby Meditation
?
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Ruby Meditation
?
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Ruby Meditation
?
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Ruby Meditation
?
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
Ruby Meditation
?
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
Ruby Meditation
?
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Ruby Meditation
?
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Ruby Meditation
?
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Ruby Meditation
?
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
Ruby Meditation
?
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
Ruby Meditation
?
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
Ruby Meditation
?
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Ruby Meditation
?
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Ruby Meditation
?
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Ruby Meditation
?
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Ruby Meditation
?
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Ruby Meditation
?
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Ruby Meditation
?
Rails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan GusievRails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan Gusiev
Ruby Meditation
?
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
Ruby Meditation
?
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Ruby Meditation
?
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Ruby Meditation
?
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Ruby Meditation
?
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Ruby Meditation
?
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
Ruby Meditation
?
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
Ruby Meditation
?
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Ruby Meditation
?
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Ruby Meditation
?
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Ruby Meditation
?
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
Ruby Meditation
?
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
Ruby Meditation
?
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
Ruby Meditation
?
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Ruby Meditation
?
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Ruby Meditation
?
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Ruby Meditation
?
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Ruby Meditation
?
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Ruby Meditation
?
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Ruby Meditation
?
Rails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan GusievRails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan Gusiev
Ruby Meditation
?
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
Ruby Meditation
?

A polyglot's view of Ruby on Rails ¨C Leonid Shevtsov