53
Patrick Crowley

Rails For Legacy Apps

Embed Size (px)

Citation preview

Page 1: Rails For Legacy Apps

Patrick Crowley

Page 2: Rails For Legacy Apps

Rails for Legacy Apps

Page 3: Rails For Legacy Apps

(How to use Railswith existing apps)

Page 4: Rails For Legacy Apps
Page 5: Rails For Legacy Apps
Page 6: Rails For Legacy Apps

• New ideas

Page 7: Rails For Legacy Apps

• New ideas

• No users

Page 8: Rails For Legacy Apps

• New ideas

• No users

• Zero code investment

Page 9: Rails For Legacy Apps

• New ideas

• No users

• Zero code investment

• Best case scenario

Page 10: Rails For Legacy Apps

But, in the real world...

Page 11: Rails For Legacy Apps
Page 12: Rails For Legacy Apps
Page 13: Rails For Legacy Apps

• Legacy content

Page 14: Rails For Legacy Apps

• Legacy content

• Existing userbase

Page 15: Rails For Legacy Apps

• Legacy content

• Existing userbase

• Front end (HTML + CSS)

Page 16: Rails For Legacy Apps

• Legacy content

• Existing userbase

• Front end (HTML + CSS)

• Database Schema

Page 17: Rails For Legacy Apps

Q: How can I use Rails with a legacy app?

Page 18: Rails For Legacy Apps
Page 19: Rails For Legacy Apps

• Don’t! (Leave site as is)

Page 20: Rails For Legacy Apps

• Don’t! (Leave site as is)

• Reboot site with Rails

Page 21: Rails For Legacy Apps

• Don’t! (Leave site as is)

• Reboot site with Rails

• Or, maybe...

Page 22: Rails For Legacy Apps

Use Rails as a control panel to run your site

Page 23: Rails For Legacy Apps

Case study:Cinema Treasures

Page 24: Rails For Legacy Apps
Page 25: Rails For Legacy Apps
Page 26: Rails For Legacy Apps

PHP/MySQL

pMachine

Front-end

Smarty

Theater DBBlogs

Page 27: Rails For Legacy Apps

How did we edit theaters?

Page 28: Rails For Legacy Apps

phpMyAdmin(sadly)

Page 29: Rails For Legacy Apps
Page 30: Rails For Legacy Apps

• Intended for developers

Page 31: Rails For Legacy Apps

• Intended for developers

• Easy to harm database

Page 32: Rails For Legacy Apps

• Intended for developers

• Easy to harm database

• Doesn’t scale

Page 33: Rails For Legacy Apps

Why not roll your own?

Page 34: Rails For Legacy Apps
Page 35: Rails For Legacy Apps

• Not highest priority

Page 36: Rails For Legacy Apps

• Not highest priority

• Busy with other things

Page 37: Rails For Legacy Apps

• Not highest priority

• Busy with other things

• I never want to write PHP again.

Page 38: Rails For Legacy Apps

Let’s do it in Rails!

Page 39: Rails For Legacy Apps

Basic concept

Page 40: Rails For Legacy Apps

Database

Current site

Page 41: Rails For Legacy Apps

Database

Current site Rails

Page 42: Rails For Legacy Apps

Demo

Page 43: Rails For Legacy Apps

Issues I ran into

Page 44: Rails For Legacy Apps
Page 45: Rails For Legacy Apps

• Non-plural table names

Page 46: Rails For Legacy Apps

• Non-plural table names

• Had to remove primary id’s on join tables

Page 47: Rails For Legacy Apps

• Non-plural table names

• Had to remove primary id’s on join tables

• Needed a way to delete cached templates on db update

Page 48: Rails For Legacy Apps

How long did this take?

Page 49: Rails For Legacy Apps

1 week / 2 - 3 hours per day

Page 50: Rails For Legacy Apps

The End

Page 51: Rails For Legacy Apps
Page 52: Rails For Legacy Apps

0

1,500

3,000

4,500

6,000

2000 2001 2002 2003 2004 2005

New Theaters

Page 53: Rails For Legacy Apps

0

12,500

25,000

37,500

50,000

2000 2001 2002 2003 2004 2005

New Comments