Slide 1

Slide 1 text

Components: The future of the web Why we love Ember David Rice Technical Director at Rumble Labs @davidjrice

Slide 2

Slide 2 text

A tale of two MVCs What I was going to talk about Yehuda Katz http://www.youtube.com/watch?v=s1dhXamEAKQ

Slide 3

Slide 3 text

Ember.js <3 • Client-side JavaScript MVC • Observers • Computed Properties • Bindings • Components • & more…

Slide 4

Slide 4 text

What is MVC?

Slide 5

Slide 5 text

MVC • Model: data, business logic, persistence • View: data formatting, rendering, interaction • Controller: application flow, event handling

Slide 6

Slide 6 text

CONTROLLER MODEL VIEW

Slide 7

Slide 7 text

The grass is always greener on the other side

Slide 8

Slide 8 text

“Let’s just add this one hack. You know, for the time being…” - everyone, ever, at some point

Slide 9

Slide 9 text

CONTROLLER VIEW MODEL MODEL MODEL MODEL MODEL MODEL

Slide 10

Slide 10 text

MVC is not an application architecture MVC is a component pattern

Slide 11

Slide 11 text

What is an Application Architecture?

Slide 12

Slide 12 text

Server Side Application Architecture • Page-Based • Page-Based (with inline components) Flash • Page-Based (with selective inline updates) AJAX

Slide 13

Slide 13 text

Page-Based is how we traditionally design web applications http://onotate.com

Slide 14

Slide 14 text

Client Side Application Architecture • Master-Detail • Page-Based • Single View Application • Tabbed Application • Utility Application See: Xcode iOS etc.

Slide 15

Slide 15 text

Server Side MVC is always Page-Based yet may emulate client side MVC patterns

Slide 16

Slide 16 text

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec neque odio, accumsan quis diam ac, commodo egestas nibh. Mauris fringilla ipsum augue, tempus lobortis augue sagittis vehicula. Sed aliquet accumsan aliquet. Nulla varius, leo molestie ornare dictum, diam ante laoreet arcu, nec tempus nisi risus at augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec neque odio, accumsan quis diam ac, commodo egestas nibh. Page based design Image Comments Related Posts Text Post /posts/:id

Slide 17

Slide 17 text

Working in a Page context is not a refined enough scope enables per-page and one-off solutions

Slide 18

Slide 18 text

With great power comes great responsibility

Slide 19

Slide 19 text

With great flexibility comes the mother of all nightmares

Slide 20

Slide 20 text

The biggest benefit frameworks bring are patterns in interfaces and implementation

Slide 21

Slide 21 text

Application Patterns • Model View Controller • Decorators • Presenters • Service Objects • Service Extraction

Slide 22

Slide 22 text

Server Side Frameworks historically light on providing User Interface patterns

Slide 23

Slide 23 text

Hard to fall off the “golden path” except if we’re looking in /public

Slide 24

Slide 24 text

Partials / Helper functions are really just DRY-ing up the rendering of our view

Slide 25

Slide 25 text

Components Managing User Interface sanity

Slide 26

Slide 26 text

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec neque odio, accumsan quis diam ac, commodo egestas nibh. Mauris fringilla ipsum augue, tempus lobortis augue sagittis vehicula. Sed aliquet accumsan aliquet. Nulla varius, leo molestie ornare dictum, diam ante laoreet arcu, nec tempus nisi risus at augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec neque odio, accumsan quis diam ac, commodo egestas nibh. Component based design 100% 1/5 4/5 Comment

Slide 27

Slide 27 text

Thinking about design in terms of components allows immense focus, modularisation and re-use

Slide 28

Slide 28 text

Refactoring A place for everything and everything in it’s place

Slide 29

Slide 29 text

Editors and Frameworks force the structure of our applications into what kind of file we are writing

Slide 30

Slide 30 text

Editors of the future will allow us to view our applications in flexible ways, based on what the task at hand is

Slide 31

Slide 31 text

User interface components are an ideal “interface” for design and development teams to collaborate

Slide 32

Slide 32 text

DESIGN DEVELOPMENT COMPONENT UI API PRODUCT

Slide 33

Slide 33 text

The Future of the Web • Web Components (W3C specification) • HTML5 range sliders, dates, times • Future Browser components? • Credit Card forms? • Authentication?

Slide 34

Slide 34 text

The future of the Web: Components With ember.js we can begin thinking building for the future today

Slide 35

Slide 35 text

Thanks! David Rice @davidjrice