decoupling your javascript

54
Breaking large JavaScript into small pieces Decoupling your JavaScript

Upload: guille-paz

Post on 07-Nov-2014

530 views

Category:

Technology


0 download

DESCRIPTION

Decoupling your JavaScript: Breaking large JavaScript into small pieces at MercadoLibre Retreat 2013

TRANSCRIPT

Page 2: Decoupling your JavaScript

Chico UI

Page 5: Decoupling your JavaScript
Page 6: Decoupling your JavaScript

Chico UI

Page 7: Decoupling your JavaScript

Why

Page 8: Decoupling your JavaScript

Why•Wrong inheritance pattern

Page 9: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

Page 10: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

•Non-scalable

Page 11: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

•Non-scalable

•Miscommunication between widgets

Page 12: Decoupling your JavaScript

v1.0

Page 13: Decoupling your JavaScript

Modules

Page 14: Decoupling your JavaScript

Modules

•Scalable

Page 15: Decoupling your JavaScript

Modules

•Scalable

•Maintainable

Page 16: Decoupling your JavaScript

Modules

•Scalable

•Maintainable

•Reusable

Page 19: Decoupling your JavaScript
Page 20: Decoupling your JavaScript

ECMAScript 62015~

Page 21: Decoupling your JavaScript

The Recipe

Page 22: Decoupling your JavaScript

Identify

Page 23: Decoupling your JavaScript

Define

Page 24: Decoupling your JavaScript

Viewport

Desktop

JS

Shared

JS

Mobile

JS

Page 25: Decoupling your JavaScript

Code!

Page 26: Decoupling your JavaScript

Viewport

Desktop

JS

Shared

JS

Mobile

JS

Page 27: Decoupling your JavaScript

shared/Viewport.js

Page 28: Decoupling your JavaScript

shared/Viewport.js

prototype

Page 29: Decoupling your JavaScript

shared/Viewport.js

Page 30: Decoupling your JavaScript

Viewport

Desktop

JS

Shared

JS

Mobile

JS

Page 31: Decoupling your JavaScript

desktop/Viewport.js

Page 32: Decoupling your JavaScript

Viewport

Desktop

JS

Shared

JS

Mobile

JS

Page 33: Decoupling your JavaScript

mobile/Viewport.js

Page 34: Decoupling your JavaScript

Viewport Module

Page 35: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

•Non-scalable

•Miscommunication between widgets

Page 36: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

•Non-scalable

•Miscommunication between widgets

Page 37: Decoupling your JavaScript
Page 38: Decoupling your JavaScript

Communication

Page 39: Decoupling your JavaScript

Callbacks

Page 40: Decoupling your JavaScript
Page 41: Decoupling your JavaScript
Page 42: Decoupling your JavaScript

Events

Page 43: Decoupling your JavaScript
Page 44: Decoupling your JavaScript
Page 45: Decoupling your JavaScript
Page 46: Decoupling your JavaScript

Fight!

Page 47: Decoupling your JavaScript

Fight!

Page 48: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

•Non-scalable

•Miscommunication between widgets

Page 49: Decoupling your JavaScript

Why•Wrong inheritance pattern

•Non-extensible

•Non-scalable

•Miscommunication between widgets

Page 50: Decoupling your JavaScript

Building

Page 51: Decoupling your JavaScript

Modules

Page 52: Decoupling your JavaScript

Package

Page 53: Decoupling your JavaScript

Takeaway•Chico v1.0

•Modules

•Extend with prototype

•Reuse: Mobile + Desktop

•Communicate via events

Page 54: Decoupling your JavaScript

Fin