modular & event driven ui architecture

28
Modular & Event driven UI Architecture Vytautas Butkus

Upload: vytautas-butkus

Post on 11-May-2015

1.819 views

Category:

Documents


1 download

DESCRIPTION

Modular & Event driven UI Architecture - Backbone.js example

TRANSCRIPT

Page 1: Modular & Event driven UI Architecture

Modular & Event drivenUI Architecture

Vytautas Butkus

Page 2: Modular & Event driven UI Architecture

Content

• Modules• Event driven architecture• Backbone.js - MV* framework• Questions

Page 3: Modular & Event driven UI Architecture

Modules

• What is it?

Page 4: Modular & Event driven UI Architecture

• Single, solid unit• Have interfaces defined• Made of multiple other modules

Page 5: Modular & Event driven UI Architecture

Modules

• What is it?• Why use it?

Page 6: Modular & Event driven UI Architecture

• Loose coupling• Easier maintanance• Changes affects only changed modules• Removed module does not break page

Page 7: Modular & Event driven UI Architecture

Modules

• What is it?• Why use it?• Modules in real life

Page 8: Modular & Event driven UI Architecture

Gmail system

Page 9: Modular & Event driven UI Architecture

Possible modules

Page 10: Modular & Event driven UI Architecture

Modules structure

Page 11: Modular & Event driven UI Architecture

Event driven architecture

• What is it?

Page 12: Modular & Event driven UI Architecture

Publish/Subscribe pattern

Page 13: Modular & Event driven UI Architecture

Event driven architecture

• What is it?• Where is it used?

Page 14: Modular & Event driven UI Architecture

• Node.js• jQuery.events• Backbone.js• OS interrups

$(“body”).on(“click”, function(){ alert(“Clicked”);});$(“body”).on(“alarm”, function(){ alert(“Alarm alarm!!!”);});

$(“.button”).on(“click”, function(){ $(“body”).trigger(“alarm”);});

Page 15: Modular & Event driven UI Architecture
Page 16: Modular & Event driven UI Architecture

Backbone.js

• Structural framework• Very popular• Huge community• Still under v1.0• RESTful JSON interface• Based on MVC paradigm

library

MV*

Page 17: Modular & Event driven UI Architecture

Backbone tools

• Models• Views• Collections (not controller)• Router• Events

=> Array of models

=> DOM controller

=> { } with events & sync

=> URL controller

=> Extend native { }

Page 18: Modular & Event driven UI Architecture

Underscore.js

• Utility-belt library• Eases work with collections, arrays & objects• Provides function helpers• The only one Backbone.js dependency

Page 19: Modular & Event driven UI Architecture

Other MV* frameworks

• AngularJS (by Google)• Ember.js• YUI (by Yahoo!)• KnockoutJS

...many more

• Check them out at

Page 20: Modular & Event driven UI Architecture

Gmail example with Backbone.js

• Collection -> Message List• Model -> Message• Views -> Message, Message List• Router -> URL

Page 21: Modular & Event driven UI Architecture

Model

Page 22: Modular & Event driven UI Architecture

Collection

Page 23: Modular & Event driven UI Architecture

Mes

sage

Vie

w

Page 24: Modular & Event driven UI Architecture

Message list view

Page 25: Modular & Event driven UI Architecture

Router

Page 26: Modular & Event driven UI Architecture

Init

Page 27: Modular & Event driven UI Architecture

Source code

• https://github.com/bytasv/gmail-example

Page 28: Modular & Event driven UI Architecture

Thank you!