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