115
Go Ahead, Roll Your Own Framework Ryan Stevens @ryan_stevens Director of Technology – UI Platform

Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Go Ahead, Roll Your Own Framework

Ryan  Stevens@ryan_stevens  Director  of  Technology  –  UI  Platform

Page 2: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Go Ahead, Roll Your Own Framework

Ryan  Stevens@ryan_stevens  Director  of  Technology  –  UI  Platform

Creating A Framework To Think About Frameworks

Page 3: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,
Page 4: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

My JavaScript Journey

Page 5: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

My JavaScript JourneyMore  Co

mplex

Years  of  Experience

Page 6: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

My JavaScript JourneyMore  Co

mplex

Years  of  Experience

Page 7: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

More  Co

mplex

Years  of  Experience

My JavaScript Journey

Page 8: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Learned First MVC FrameworkMore  Co

mplex

Years  of  Experience

Page 9: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Learned First MVC FrameworkMore  Co

mplex

Years  of  Experience

Page 10: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

More  Co

mplex

Years  of  Experience

Learned First MVC Framework

Page 11: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Progression of JavaScript Devs Rolls First Custom FrameworkMore  Co

mplex

Years  of  Experience

Page 12: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Progression of JavaScript Devs Rolls First Custom FrameworkMore  Co

mplex

Years  of  Experience

Page 13: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Progression of JavaScript DevsMore  Co

mplex

Years  of  Experience

Rolls First Custom Framework

Page 14: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

No Framework, ModularMore  Co

mplex

Years  of  Experience

Page 15: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

No Framework, ModularMore  Co

mplex

Years  of  Experience

Page 16: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

More  Co

mplex

Years  of  Experience

No Framework, Modular

Page 17: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Why All This Complexity?More  Co

mplex

Years  of  Experience

Page 18: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Why All This Complexity?More  Co

mplex

Years  of  Experience

Page 19: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Why All This Complexity?More  Co

mplex

Years  of  Experience

Why All This Complexity?

Page 20: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Diverging, Not Converging

Page 21: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,
Page 22: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Current Landscape - Node

▪ 1,425 projects for node, frameworks

▪ 3 projects with 10k+ stars

▪ 17 projects with 1k - 10k stars

Page 23: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Current Landscape - Node

▪ 1,425 projects for node, frameworks

▪ 3 projects with 10k+ stars

▪ 17 projects with 1k - 10k stars

Github  Search Registry  Search

Express 6,893 19,217

Meteor 11,170 6,009*

Sails 2,145 494

Hapi 1,566 718

Restify 381 349

Page 24: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Current Landscape - Frontend

▪ 64 TODO MVC apps

Page 25: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Current Landscape - Frontend

Github  Search Registry  Search

Angular 35,313 3,277

Backbone 12,339 2,386

React 11,438 3,643

Ember 8,627 1,806

Polymer 1,255 214

▪ 64 TODO MVC apps

Page 26: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

Page 27: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

▪Application Platform

Page 28: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

▪Application Platform

▪Application Frameworks

Page 29: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

▪Application Platform

▪Application Frameworks

▪Application Architectures

Page 30: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

▪Application Platform

▪Application Frameworks

▪Application Architectures

▪Design Patterns

Page 31: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

▪Application Platform

▪Application Frameworks

▪Application Architectures

▪Design Patterns

▪ Libraries

Page 32: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Framework” - A Single Definition?

▪Application Platform

▪Application Frameworks

▪Application Architectures

▪Design Patterns

▪ Libraries

▪Modules

Page 33: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Frontend Progression

Page 34: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

Frontend Progression

20152005 2010

Page 35: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

Frontend Progression

20152005 2010

Page 36: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

Frontend Progression

prototype jQuery

20152005 2010

Page 37: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

Frontend Progression

prototype jQuery

GWT

20152005 2010

Page 38: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

Frontend Progression

prototype jQuery

GWT

20152005 2010

ExtJS  2.0

SproutCore  1.0

Ember.js

Page 39: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

Frontend Progression

prototype jQuery

GWT

20152005 2010

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

Page 40: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,
Page 41: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

jQuery

Page 42: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

jQuery

Page 43: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

jQuery

Page 44: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

jQuery

Page 45: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

jQuery

Page 46: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

jQuery

Page 47: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

React.js

jQuery

Page 48: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

React.js

Flux

jQuery

Page 49: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

React.js

Flux

jQuery

Page 50: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

Ember.js

20152005 2010

Frontend Progression

Marionette

React.js

Flux

jQuery

Page 51: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

prototype

backbone

AngularJS

20152005 2010

Marionette

React.js

Flux

Ember.js

Frontend ProgressionYUI

jQuery

GWT

ExtJS  2.0

SproutCore  1.0

Page 52: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net

prototype

backbone

AngularJS

20152005 2010

Marionette

React.js

Flux

Ember.js

Frontend ProgressionYUI

jQuery

GWT

ExtJS  2.0

SproutCore  1.0

Page 53: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,
Page 54: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Possible Conclusions

Page 55: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Possible Conclusions

▪Maybe it doesn’t matter

Page 56: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Possible Conclusions

▪Maybe it doesn’t matter

▪Seeking the right decision is exhausting

Page 57: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Possible Conclusions

▪Maybe it doesn’t matter

▪Seeking the right decision is exhausting

▪ The only constant in our industry is CHANGE

Page 58: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Why Create Your Own Framework?

Page 59: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Technical Reasons”

Page 60: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Technical Reasons”

▪Better architectures

Page 61: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Technical Reasons”

▪Better architectures

▪ Fixing wrong architectures

Page 62: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Technical Reasons”

▪Better architectures

▪ Fixing wrong architectures

▪ Too many features

Page 63: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Technical Reasons”

▪Better architectures

▪ Fixing wrong architectures

▪ Too many features

▪Missing features

Page 64: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

“Technical Reasons”

▪Better architectures

▪ Fixing wrong architectures

▪ Too many features

▪Missing features

▪ Improving upon others solid design patterns

Page 65: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Developer Control

Page 66: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Developer Control

▪Domain specific design patterns

Page 67: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Developer Control

▪Domain specific design patterns

▪Hardening team conventions

Page 68: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Developer Control

▪Domain specific design patterns

▪Hardening team conventions

▪Simplify framework API’s overtime

Page 69: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Dependency Inject Config

Page 70: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Dependency Inject Config

Page 71: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Idea - Stuff Config into GLOBAL

Page 72: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

No More Config Dependency Injection

Page 73: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Foo.js

Page 74: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

…because I wanted to

Page 75: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Developer Joy

“Choose  a  job  you  love,  and  you  will  never  have  to  work  a  day  in  your  life.”    

-­‐  Confucius

Page 76: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

…because you can

Page 77: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

20152005 2010

Composable Modules

Marionette

React.js

Flux

Ember.js

jQuery

Page 78: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

20152005 2010

Composable Modules

Marionette

React.js

Flux

Ember.js

jQuery

Page 79: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

20152005 2010

Composable Modules

Marionette

React.js

Flux

Ember.js

jQuery

Page 80: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Library

Framework

Module

asp.net YUI

prototype

GWT

ExtJS  2.0

SproutCore  1.0

backbone

AngularJS

20152005 2010

Composable Modules

Marionette

React.js

Flux

Ember.js

jQuery

Page 81: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Composable Modules

Page 82: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0

Composable Modules

Page 83: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0

Composable Modules

Page 84: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0 Zephyr 1.1.0

Composable Modules

Page 85: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0 Zephyr 1.1.0

Composable Modules

Page 86: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Embrace Ephemeral Code

Page 87: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Embrace Ephemeral Code

▪Adapt and change your framework as much as your

product does

Page 88: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Embrace Ephemeral Code

▪Adapt and change your framework as much as your

product does

▪How software is built is constantly changing, assume

your framework will too

Page 89: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Embrace Ephemeral Code

▪Adapt and change your framework as much as your

product does

▪How software is built is constantly changing, assume

your framework will too

▪Modularize well to preserve your investment while

rearranging the pieces into a new framework

Page 90: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0

Embrace Ephemeral Code

Zephyr 1.1.0 Zephyr 2.0.0

Page 91: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0

Embrace Ephemeral Code

Zephyr 1.1.0 Zephyr 2.0.0

Page 92: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Zephyr 1.0.0

Embrace Ephemeral Code

Zephyr 1.1.0 Zephyr 2.0.0

Page 93: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Where Do I Start?

Page 94: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Assess Where Your Team Is

Page 95: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Understand Teams Expertise

Page 96: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Understand Teams Expertise

HTML

JavaScriptFrameworks

JavaScript

JavaScript

JavaScript

JavaScript

CSS

CSS

CSS

CSS

JavaScript

JavaScriptModules

JavaScript  UI  Widgets

HTML

JavaScript

CSS

JavaScript

Page 97: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Divide and conquer across

people

Separations of concerns >

Page 98: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Understand Team’s Journey

Page 99: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Understand Team’s Journey

Page 100: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Team GrowthMore  Co

mplex

Years  of  Experience

Page 101: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Team GrowthMore  Co

mplex

Years  of  Experience

Page 102: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

New JavaScript Programmers

Flexible

Rigid

Simple Complex

Page 103: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

New JavaScript Programmers

jshttp

Flexible

Rigid

Simple Complex

Page 104: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

New JavaScript Programmers

jshttp

Angular

Flexible

Rigid

Simple Complex

Page 105: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Expert JavaScript Programmers

jshttp

AngularSimple Complex

Flexible

Rigid

Page 106: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Team GrowthMore  Co

mplex

Years  of  Experience

Page 107: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Team GrowthMore  Co

mplex

Years  of  Experience

Page 108: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Team GrowthMore  Co

mplex

Years  of  Experience

Page 109: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

It’s an exercise in team ownership

Page 110: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Where Are You In Your JavaScript Journey?

Page 111: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Where Are You && Your Team In Your JavaScript Journey?

Page 112: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Go Ahead, Roll Your Own Framework

Ryan  Stevens@ryan_stevens  Director  of  Technology  –  UI  Platform

Page 113: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Go Ahead, Roll Your Own Framework

Thank You

Ryan  Stevens@ryan_stevens  Director  of  Technology  –  UI  Platform

Page 114: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Q & A

Ryan  Stevens@ryan_stevens  Director  of  Technology  –  UI  Platform

Page 115: Roll Your Own Framework - events.static.linuxfound.org · Embrace Ephemeral Code Adapt and change your framework as much as your product does How software is built is constantly changing,

Q & ADisagreements Welcome

Ryan  Stevens@ryan_stevens  Director  of  Technology  –  UI  Platform