×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
OFF THE RAILS Alex Tamoykin http://alextamoykin.com
Slide 2
Slide 2 text
Hello I’m Alex Tamoykin
Slide 3
Slide 3 text
AwesomenessTV Director of Engineering We’re hiring:
[email protected]
Slide 4
Slide 4 text
The book author http://StartProgrammingNowBook.com
Slide 5
Slide 5 text
Ping Pong Playa
Slide 6
Slide 6 text
Enough bragging Let’s dive in
Slide 7
Slide 7 text
What’s up • First version • Pain points • Break it
Slide 8
Slide 8 text
Don’t forget about Angular, dude!!!
Slide 9
Slide 9 text
First version Demo time!
Slide 10
Slide 10 text
Get to MVP quickly • Simple deployment • Mature ecosystem • Team knows it
Slide 11
Slide 11 text
Rails is Awesome! • For building web pages • aka documents
Slide 12
Slide 12 text
Action -> Page -> ->
Slide 13
Slide 13 text
We need more interactivity • Single Page • Interactive • Fast
Slide 14
Slide 14 text
Something like an App
Slide 15
Slide 15 text
Rails + Angular RAngular
Slide 16
Slide 16 text
Pain points • =) • Interactive • Single Page • =( • Slow • Code organization
Slide 17
Slide 17 text
View Rendering is slow
Slide 18
Slide 18 text
Two apps in one repo
Slide 19
Slide 19 text
Which one should I use ?
Slide 20
Slide 20 text
Front End + Back End
Slide 21
Slide 21 text
Hard to optimize
Slide 22
Slide 22 text
Break it up HTTP Front End API Back End
Slide 23
Slide 23 text
Bootstrap Front End
Slide 24
Slide 24 text
Work to do
Slide 25
Slide 25 text
Port views • grunt-haml plugin • Port rails views into Angular
Slide 26
Slide 26 text
Integration test • Reimplement feature specs in javascript
Slide 27
Slide 27 text
Get away from jQuery • use ng-class • custom directives
Slide 28
Slide 28 text
Benefits
Slide 29
Slide 29 text
Better code organization Front End Back End
Slide 30
Slide 30 text
Faster visual feedback
Slide 31
Slide 31 text
API for Mobile clients API
Slide 32
Slide 32 text
But wait, there is more
Slide 33
Slide 33 text
Front End • CDN • Angular template cache
Slide 34
Slide 34 text
Back End ! • Lighter framework (Sinatra, node) • Different web server (Puma instead of unicorn)
Slide 35
Slide 35 text
Because it’s separate
Slide 36
Slide 36 text
Recap • First version • Pain points • Break it
Slide 37
Slide 37 text
Thanks to the Team Dave Ferris (Dev) Meagan Cooney (Dev) Josh Book (Dev) Matt Levin (PM)
Slide 38
Slide 38 text
Use the right tool for the job Takeaway
Slide 39
Slide 39 text
http://alextamoykin.com