phoenix for rubyists
TRANSCRIPT
![Page 1: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/1.jpg)
Deccan RubyConf 2016
Mike North Levanto Financial
@MichaelLNorth
FOR ISTS
![Page 2: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/2.jpg)
![Page 3: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/3.jpg)
Yes No
????
![Page 4: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/4.jpg)
I <3 RUBY
![Page 5: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/5.jpg)
HERE’S SOMETHING IMPORTANT THAT COULDN’T HAVE BEEN
DONE WITHOUT RUBY & RAILS
![Page 6: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/6.jpg)
OPINIONS & PRODUCTIVITY
![Page 7: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/7.jpg)
1. THE STORY
![Page 8: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/8.jpg)
1. THE STORY
2. PHOENIX IS LIKE RAILS
![Page 9: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/9.jpg)
1. THE STORY
2. PHOENIX IS LIKE RAILS
3. PHOENIX IS NOT LIKE RAILS
![Page 10: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/10.jpg)
1. THE STORY
2. PHOENIX IS LIKE RAILS
3. PHOENIX IS NOT LIKE RAILS
4. HOWTO
![Page 11: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/11.jpg)
THE STORY
@chris_mccord dockyard.com Inventor of Phoenix
Chris Mccord
![Page 12: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/12.jpg)
![Page 13: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/13.jpg)
THE STORY
@chris_mccord dockyard.com Inventor of Phoenix
Chris Mccord
![Page 14: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/14.jpg)
![Page 15: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/15.jpg)
THE STORY
@josevalim plataformatec.com Rails Core Alum Inventor of Elixir
Jose Valim
![Page 16: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/16.jpg)
MOORE’S LAWComputing power doubles ~ every two years
![Page 17: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/17.jpg)
![Page 18: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/18.jpg)
MOORE’S LAWComputing power doubles ~ every two years
![Page 19: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/19.jpg)
![Page 20: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/20.jpg)
Erlang Ruby
![Page 21: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/21.jpg)
![Page 22: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/22.jpg)
!
!
!
!
"
![Page 23: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/23.jpg)
#
!
$☁
☁
![Page 24: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/24.jpg)
![Page 25: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/25.jpg)
![Page 26: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/26.jpg)
[info] Sent 200 in 31µs
![Page 27: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/27.jpg)
![Page 28: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/28.jpg)
![Page 29: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/29.jpg)
THE STORY
@chris_mccord dockyard.com Inventor of Phoenix
Chris Mccord
![Page 30: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/30.jpg)
![Page 31: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/31.jpg)
1. THE STORY
2. PHOENIX IS LIKE RAILS
![Page 32: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/32.jpg)
RakeBundler
MIX
![Page 33: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/33.jpg)
![Page 34: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/34.jpg)
![Page 35: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/35.jpg)
![Page 36: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/36.jpg)
![Page 37: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/37.jpg)
Model Table Schema
![Page 38: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/38.jpg)
![Page 39: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/39.jpg)
ROUTER
![Page 40: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/40.jpg)
CONTROLLERS
![Page 41: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/41.jpg)
MIGRATIONS
![Page 42: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/42.jpg)
TESTS
![Page 43: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/43.jpg)
TEMPLATES
![Page 44: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/44.jpg)
![Page 45: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/45.jpg)
ERRORS
![Page 46: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/46.jpg)
1. THE STORY
2. PHOENIX IS LIKE RAILS
3. PHOENIX IS NOT LIKE RAILS
![Page 47: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/47.jpg)
![Page 48: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/48.jpg)
![Page 49: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/49.jpg)
PIPE FORWARD |>
•Shorthand for “send return along as first value of next function”
![Page 50: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/50.jpg)
IMMUTABILITY
Think of variables as “labels for values”
![Page 51: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/51.jpg)
![Page 52: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/52.jpg)
IMMUTABILITY
Think of variables as “labels for values”
![Page 53: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/53.jpg)
MODELS
![Page 54: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/54.jpg)
ActiveRecord & Making your life easy one N+1
query at a time
![Page 55: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/55.jpg)
MODELS
![Page 56: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/56.jpg)
![Page 57: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/57.jpg)
1. THE STORY
2. PHOENIX IS LIKE RAILS
3. PHOENIX IS NOT LIKE RAILS
4. HOWTO
![Page 58: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/58.jpg)
HOWTO
•One-shot rewrites are expensive and dangerous
•You suffer, your company suffers, your users suffer
•Incremental change makes everyone happier
![Page 59: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/59.jpg)
![Page 60: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/60.jpg)
![Page 61: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/61.jpg)
REVERSE PROXY
Rails Phoenix
![Page 62: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/62.jpg)
REVERSE PROXY
RailsPhoenix
![Page 63: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/63.jpg)
ELIXIR & PHOENIX
•Performant
•Productive
•Functional
•You’re already halfway there
![Page 64: Phoenix for Rubyists](https://reader031.vdocument.in/reader031/viewer/2022022123/589ecafb1a28ab47138b5bd5/html5/thumbnails/64.jpg)
SOME IMAGES & DIAGRAMS AND OTHER STUFF FROM…•https://www.toptal.com/erlang/a-cloud-at-the-lowest-level-built-in-erlang
•https://en.wikipedia.org/wiki/Moore%27s_law •https://theerlangelist.blogspot.in/2013/05/working-with-immutable-data.html
•https://www.amberbit.com/blog/2014/2/14/putting-ruby-on-rails-on-a-diet/
•https://www.technologyreview.com/s/601441/moores-law-is-dead-now-what/
THANKS!