Slide 1

Slide 1 text

Fast Rails (Beta)

Slide 2

Slide 2 text

Frontend Backend Database

Slide 3

Slide 3 text

This slide intentionally left blank.

Slide 4

Slide 4 text

Front End

Slide 5

Slide 5 text

PageSpeed! https://developers.google.com/speed ! YSlow! http://yslow.org/

Slide 6

Slide 6 text

Asset Pipeline! Far Future Expires Minify JavaScript + CSS Minimize HTTP Requests Multiple Asset Hosts (http://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html)

Slide 7

Slide 7 text

Compression! http://nginx.org/en/docs/http/ngx_http_gzip_module.html https://github.com/romanbsd/heroku-deflater

Slide 8

Slide 8 text

CDN! Static Assets Dynamic Content

Slide 9

Slide 9 text

Browser Caching! `expires_in`, `expires_now`, `fresh_when`, `stale?` (http://api.rubyonrails.org/classes/ActionController/ConditionalGet.html)

Slide 10

Slide 10 text

Assets Loading! Stylesheets at the Top JavaScripts at the Bottom (async)

Slide 11

Slide 11 text

Images! `gem install smusher` Lazy Load

Slide 12

Slide 12 text

FOUT! (Flash of Unstyled Text) https://github.com/typekit/webfontloader

Slide 13

Slide 13 text

Turbolinks! mmmm…

Slide 14

Slide 14 text

Backend

Slide 15

Slide 15 text

Update! Ruby 2.2.0 Rails 4.2

Slide 16

Slide 16 text

Memory! Server Database

Slide 17

Slide 17 text

Background Jobs! Email/Image Processing

Slide 18

Slide 18 text

Data Storage! Save to S3? Delete from S3?

Slide 19

Slide 19 text

Caching! Russian Doll Caching Low-Level Caching

Slide 20

Slide 20 text

Views! helpers (inline) > partials > loop `render ‘article’, collection: @articles`

Slide 21

Slide 21 text

Fast Ruby! https://github.com/JuanitoFatas/fast-ruby

Slide 22

Slide 22 text

Fast Code! `exists` vs. `present?` Loop in Code vs. SQL

Slide 23

Slide 23 text

Development! `spring`, `guard`

Slide 24

Slide 24 text

Database

Slide 25

Slide 25 text

ActiveRecord! Foreign Keys, Composite Keys, SQL Explain `find`/`find_by`/`find_by_` vs. `where(..).take`

Slide 26

Slide 26 text

Indexes! Foreign Keys, Composite Keys, SQL Explain https://github.com/eladmeidar/rails_indexes

Slide 27

Slide 27 text

n+1! `gem install bullet`

Slide 28

Slide 28 text

The End (Beta)