SlideShare a Scribd company logo
1 of 50
Download to read offline
made by Me
Matreshka.js
JavaScript Framework for Developers
<input type="text" class="my-input">
<script src="matreshka.min.js"></script>
<script>
var app = new Matreshka;
app.bindNode('x', '.my-input');
app.x = 'Two-way data binding in JS? O rly?';
</script>
Structure
● Class Matreshka (Core)
● Class Matreshka.Object (Model)
● Class Matreskka.Array (Collection)
Class Mathreska
Examples
// creating of the instance
var mk = new Matreshka; // or var mk = new MK;
// inheritance
var MyClass = Class({
'extends': Matreshka,
constructor: function () {
this.sayHello();
},
sayHello: function () {
alert("Hello World!");
}
});
// inheritance es6
class MyClass extends Matreshka {
constructor () {
this.sayHello();
}
sayHello () {
alert('Hello World!');
}
}
Class Mathreska
● isMK
● $sandbox
● sandbox
● on
● onDebounce
● once
● off
● trigger
● bindNode
● bindOptionalNode
● unbindNode
● boundAll
● $bound
● bound
● selectAll
● $
● select
● eq
● defineGetter
● defineSetter
● mediate
● linkProps
● get
● set
● remove
● define
● delay
● version
● isXDR
● defaultBinders
● extend
● Class
● $b
● useAs$
● noop
● each
● debounce
● lookForBinder
● randomString
● binders
Matreshka#on(names, callback, triggerOnInit=false,
context)
Examples
// simple
this.on('foo', function () {
alert('Custom Event is fired');
});
this.trigger('foo');
// Passing the context
this.on('foo', function () {
alert(this.a); // 5
}, {a: 5});
this.trigger('foo', 'Hello world');
// Fire the event after initialization
this.on('foo', function () {
alert('bar');
}, true);
Matreshka#trigger(names, arg)
Examples
this.on('foo bar', function (a, b, c) {
alert(a + b + c);
});
this.trigger('foo', 1, 2, 3); // 6
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-element', {
on: 'click',
getValue: function () { ...
},
setValue: function () { ...
},
initialize: function () { ...
}
});
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-checkbox', {
on: 'click',
getValue: function () {
return this.checked;
},
setValue: function (v) {
this.checked = !!v;
}
});
this.myKey = true;
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-slider', {
on: 'slide',
getValue: function () {
return $(this).slider('option', 'value');
},
setValue: function (v) {
$(this).slider('option', 'value', v);
},
initialize: function () {
$(this).slider({
min: 0,
max: 100
});
}
});
this.myKey = 42;
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-element', binder, {
assignDefaultValue: false
});
Matreshka#bindNode(keyElementPairs, binder,
eventOptions)
Examples
this.bindNode({
myKey1: '.custom-checkbox',
myKey2: 'textarea'
});
Matreshka#bindNode(setOfArguments, eventOptions)
Examples
this.bindNode([
[{
myKey1: '.my-element1',
myKey2: '.my-element2'
}],
[{
myKey3: '.my-element3',
myKey4: '.my-element4'
}, {
on: 'click',
getValue: function () { ... },
setValue: function () { ... }
}]
……..
]);
Matreshka#binders
Examples
MK.binders.myCoolBinder = function (var1, var2) {
return {
on: 'click',
getValue: function () { ...
},
setValue: function () { ...
},
initialize: function () { ...
}
};
};
this.bindNode('myKey', '.my-element', MK.binders.myCoolBinder('Hello', 'World'));
Matreshka#binders
The list of the predefined binders:
● Matreshka.binders.innerHTML
● Matreshka.binders.visibility
● Matreshka.binders.className
● Matreshka.binders.property
● Matreshka.binders.attribute
● Matreshka.binders.input
● Matreshka.binders.textarea
● Matreshka.binders.select
Matreshka.binders.innerHTML()
Examples
this.bindElement('myKey', '.my-element', MK.binders.innerHTML());
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
this.innerHTML = v;
}
});
Matreshka.binders.visibility(value=true)
Examples
this.bindElement('myKey', '.my-element', MK.binders.visibility(true));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
this.style.display = v ? '' : 'none';
}
});
this.bindElement('myKey', '.my-element', MK.binders.visibility(false));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
this.style.display = v ? 'none' : '';
}
});
Matreshka.binders.className(className)
Examples
this.bindElement('myKey', '.my-element', MK.binders.className('foo'));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
$(this).toggleClass('foo', v);
}
});
this.myKey = true; // adds the 'foo' class
this.myKey = false; // removes the 'foo' class
this.bindElement('myKey', '.my-element', MK.binders.className('!foo'));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
$(this).toggleClass('foo', !v);
}
});
this.myKey = false; // adds the 'foo' class
this.myKey = true; // removes the 'foo' class
Matreshka#set(key, value, eventOptions)
The list of the supported flags:
● silent - do not call the change and change:KEY events
● silentHTML - do not change the state of the bound objects
● force - call the change and change:KEY events even though the property value has not been changed
● forceHTML - change the state of the bound element even though the property value has not been changed. This option is
necessary if the bound element has been rendered after the binding (for example, the option tags have been added to select tag)
● skipMediator - prevents the property transformation by a mediator
● skipLinks - prevents the work of dependencies created with the help of Matreshka#linkProps
Matreshka#set(key, value, eventOptions)
Examples
// simple
this.on('change:myKey', function (eventOptions) {
alert(eventOptions.value);
});
this.set('myKey', 3);
// using eventOptions
this.on('change:myKey', function (eventOptions) {
alert(eventOptions.value);
});
this.set('myKey', 4, {
silent: true
});
// passing custom data
this.on('change:myKey', function (eventOptions) {
alert(eventOptions.myCustomFlag);
});
this.set('myKey', 4, {
myCustomFlag: 42
});
Matreshka#set(keyValuePairs, eventOptions)
Examples
this.set({
myKey1: 1,
myKey2: 2
});
// passing eventOptions as second argument
this.set({
myKey: 3
}, {
myFlag: 'Jigurda'
});
Matreshka#$sandbox
Examples
this.bindNode('sandbox', '.app');
this.$sandbox; // the same as $('.app')
Matreshka#$bound(key)
Examples
this.bindNode('myKey', '.my-element');
this.$bound('myKey'); // will return $('.my-element')
// without key
this.bindNode('sandbox', '.app');
this.$bound(); // will return $('.app')
Matreshka#mediate(key, mediator)
Examples
this.mediate('x', function (s) {
return String(s);
});
this.x = 1;
alert(typeof this.x); // 'string'
// a list of keys which are separated by space
this.mediate('x y', function (s) {
return String(s);
});
// an array of keys
this.mediate([ 'x', 'y' ], function (s) {
return String(s);
});
Matreshka#mediate(keyMediatorPairs)
Examples
this.mediate({
x: String,
y: Number,
z: Boolean
});
this.x = 1;
this.y = 2;
this.z = 3;
alert(typeof this.x); // 'string'
alert(typeof this.y); // 'number'
alert(typeof this.z); // 'boolean'
// a list of keys which are separated by spaces
this.mediate({
'u v': String,
'w x': Number,
'y z': Boolean
});
Matreshka#linkProps(keys1, keys2, handler,
setOnInit=true)
Examples
this.linkProps('greeting', 'name', function () {
return 'Hello, ' + this.name + '!';
});
this.name = 'Joe';
alert(this.greeting); // 'Hello, Joe!'
Matreshka#linkProps(keys1, keys2, handler,
setOnInit=true)
Examples
this.a = 3;
this.b = 4;
this.linkProps('p', 'a b', function (a, b) {
return (a + b) * 2;
});
this.linkProps('a', 'p b', function (p, b) {
return p / 2 - b;
});
this.linkProps('b', 'p a', function (p, a) {
return p / 2 - a;
});
alert(this.p); // 14
this.on('change:p', function () {
alert('The perimeter has been changed and equals ' + this.p);
});
this.a = 5; // alerts 'The perimeter has been changed and equals 18'
Matreshka#linkProps(keys, instancesAndKeys, handler,
setOnInit=true)
Examples
anotherInstance1.a = 2;
anotherInstance2.b = 3;
this.linkProps('sum', [
anotherInstance1, 'a',
anotherInstance2, 'b'
], function (a, b) {
return a + b;
});
alert(this.sum); // 5
this.on('change:sum', function () {
alert('this.sum equals ' + this.sum);
});
anotherInstance1.a = 5; // 'this.sum equals 8'
Matreshka#getAnswerToTheUltimateQuestionOfLifeThe
UniverseAndEverything()
Examples
this.getAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything();
Class Mathreska.Object
Examples
// creation of the instance
new MK.Object;
// creation of the instance with two specified properties
new MK.Object({
a: 1,
b: 2
});
// inheritance
var MyClass = Class({
'extends': MK.Object,
constructor: function() {
this.sayHello();
},
sayHello: function() {
alert('Hello World!');
}
});
Class Mathreska.Object
Examples
// adding the properties which are responsible for the data
this.addDataKeys('a b');
this.a = 1;
this.b = 2;
this.c = 3;
// adding the properties which are responsible for the data with the default value
this.jset({
a: 1,
b: 2
});
this.c = 3;
// in both cases will return the object {a: 1, b: 2}
this.toJSON();
Class Mathreska.Object
Examples
// the same as new MK.Object().jset({a: 1, b: 2});
new MK.Object({
a: 1,
b: 2
});
Class Mathreska.Object
● isMKObject
● keys
● on
● hasOwnProperty
● toObject
● toNative
● toJSON
● keyOf
● jset
● remove
● addDataKeys
● removeDataKeys
● each
Matreshka.Object#toJSON()
Examples
var mkObject = new MK.Object({
a: 1,
b: 2,
c: new MK.Object({
d: 3,
e: 4
})
});
// returns {a: 1, b: 2, c: {d: 3, e: 4}}
mkObject.toJSON();
Matreshka.Object#jset(key, value, evtOpts)
Examples
this.jset('a', 1).jset('b', 2);
this.jset('a', 1).jset('b', 2);
// assigns 3 to the 'c' property,
// but does not add the key to the list of keys which are responsible for the data
this.set('c', 3);
this.each(function (value, key) {
console.log(key, value);
});
// displays 'a' 1 and 'b' 2
console.log(this.keys()); // displays ['a', 'b']
console.log(this.toJSON()); // displays {a: 1, b: 2}
// after using the Matreshka.Object#jset method, you can work with a property like with an ordinary one
this.jset('a', 1).jset('b', 2);
this.set('a', 3);
this.b = 4;
Class Mathreska.Array
Examples
// creation of the instance
new MK.Array;
// creation of the instance with specify length
new MK.Array(42);
// passing data on creation
new MK.Array('Hi', {a: 'b'});
// inheritance
var MyClass = Class({
'extends': MK.Array,
constructor: function () {
this.sayHello();
},
sayHello: function () {
alert('Hello World!');
}
});
Class Mathreska.Array
Examples
// define Model
var MyModel = Class({
'extends': MK.Object,
constructor: function (data) {
this.jset(data);
}
});
// define the class for the collection
var MyArray = Class({
'extends': MK.Array,
Model: MyModel
});
// create the class instance
var myArray = new MyArray;
Class Mathreska.Array
Examples
// add two elements
myArray.push({
a: 1,
b: 2
}, {
a: 3,
b: 4
});
// will return [{a: 1, b: 2}, {a: 3, b: 4}]
myArray.toJSON();
Class Mathreska.Array
Examples
// automatic rendering
var MyModel = MK.Class({
'extends': MK.Object,
constructor: function (data) {
this.jset(data);
this.on('render', function () {
this.bindNode('value', ':sandbox', MK.binders.innerHTML());
});
}
});
var MyArray = MK.Class({
'extends': MK.Array,
Model: MyModel,
itemRenderer: '<li>',
constructor: function () {
this.bindNode('sandbox', '.my-list');
}
});
Class Mathreska.Array
● isMKArray
● useBindingsParser
● renderIfPossible
● itemRenderer
● Model
● mediateItem
● on
● recreate
● toArray
● toNative
● rerender
● hasOwnProperty
● toJSON
● pull
● each
● METHOD
● METHOD_
<virtual>Matreshka.Array#itemRenderer
Examples
var MyArray = Class({
'extends': MK.Array,
itemRenderer: '<li>',
Model: MyModel,
constructor: function () {
this.bindNode('sandbox', '.my-list');
}
});
var MyArray = Class({
'extends': MK.Array,
itemRenderer: '<li>',
Model: MyModel,
constructor: function () {
this.bindNode('sandbox', '.my-widget');
this.bindNode('container', '.my-list');
}
});
<virtual>Matreshka.Array#itemRenderer
Examples
var MyArray = Class({
'extends': MK.Array,
Model: MyModel,
itemRenderer: '<div class="my-div">Be cool</div>', // '#be-cool-template'
constructor: function () { ... }
});
var MyArray = Class({
'extends': MK.Array,
Model: MyModel,
itemRenderer: function () {
return '<div class="my-div">Be cool</div>'; // '#be-cool-template' or document.createElement( 'div' )
},
constructor: function () { ... }
});
<virtual>Matreshka.Array#Model(data, mkArray)
Examples
var MyModel = Class({
'extends': MK.Object,
constructor: function (data) {
this.jset(data);
this.doSomething();
},
doSomething: function () { ... }
});
var MyArray = Class({
'extends': MK.Array,
Model: MyModel
});
<virtual>Matreshka.Array#Model(data, mkArray)
Examples
var myArray = new MyArray;
myArray.push({
a: 1,
b: 2
}, {
a: 3,
b: 4
})
// will return [{a: 1, b: 2}, {a: 3, b: 4}]
myArray.toJSON();
// es6
class MyArray extends MK.Array {
get Model() {
return MyModel;
}
}
Matreshka.Array#METHOD()
Includes all the methods existing in the native JavaScript Array.
Remarks
● The forEach method returns itself instead of undefined
● The methods which return a new array (splice, slice, filter, map...) originally, in Matreshka they return a new Matreshka.Array
instance
Matreshka.Array#METHOD_()
The list of the available flags:
● silent: true - disables event triggering
● dontRender: true - disables rendering
● skipMediator: true - disables mediators
Matreshka.Array#METHOD_()
Examples
this.push_(1, 2, 3, {
silent: true
});
this.pop_({
silent: true
});
this.on('modify', function (evt) {
alert(evt.flag); // 42
});
this.push_(1, 2, 3, {
flag: 42
});
Matreshka.Array#pull(index, evtOptions)
Examples
// passing index of the array
var removed;
this.recreate(['a', 'b', 'c']);
removed = this.pull(1);
alert(removed); // 'b'
alert(this.toString()); // 'a,c'
// passing of the delete
var object1 = {},
object2 = {},
removed;
this.push(object1, object2);
removed = this.pull(object2);
alert(removed === object2); // true
alert(this.length); // 1
Questions?
The end

More Related Content

What's hot

JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New EvolutionAllan Huang
 
Chaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreChaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreNicolas Carlo
 
Regexes and-performance-testing
Regexes and-performance-testingRegexes and-performance-testing
Regexes and-performance-testingdoughellmann
 
Interoperable Component Patterns
Interoperable Component PatternsInteroperable Component Patterns
Interoperable Component PatternsMatthew Beale
 
React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus) React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus) Maarten Mulders
 
Using Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your DataUsing Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your DataEvan Rodd
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency InjectionRifat Nabi
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7Dongho Cho
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩GDG Korea
 
Php user groupmemcached
Php user groupmemcachedPhp user groupmemcached
Php user groupmemcachedJason Anderson
 
"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita GalkinFwdays
 
#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기Arawn Park
 
Android Testing
Android TestingAndroid Testing
Android TestingEvan Lin
 

What's hot (19)

jQuery secrets
jQuery secretsjQuery secrets
jQuery secrets
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
 
Chaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreChaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscore
 
Regexes and-performance-testing
Regexes and-performance-testingRegexes and-performance-testing
Regexes and-performance-testing
 
Dwr explanation
Dwr explanationDwr explanation
Dwr explanation
 
Interoperable Component Patterns
Interoperable Component PatternsInteroperable Component Patterns
Interoperable Component Patterns
 
React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus) React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus)
 
Using Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your DataUsing Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your Data
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
Magic methods
Magic methodsMagic methods
Magic methods
 
PHP 5 Magic Methods
PHP 5 Magic MethodsPHP 5 Magic Methods
PHP 5 Magic Methods
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
 
XML-RPC vs Psycopg2
XML-RPC vs Psycopg2XML-RPC vs Psycopg2
XML-RPC vs Psycopg2
 
Php user groupmemcached
Php user groupmemcachedPhp user groupmemcached
Php user groupmemcached
 
"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin
 
Django - sql alchemy - jquery
Django - sql alchemy - jqueryDjango - sql alchemy - jquery
Django - sql alchemy - jquery
 
#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기
 
Android Testing
Android TestingAndroid Testing
Android Testing
 

Viewers also liked

Chapter 12
Chapter 12Chapter 12
Chapter 12Sine Ka
 
Neil Cliff CV 3
Neil Cliff CV 3Neil Cliff CV 3
Neil Cliff CV 3Neil Cliff
 
Conditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu AriniConditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu Ariniheniwahyuarini95
 
Photos from MND Association Presentation at the CIPD HR Software Show
Photos from MND Association Presentation at the CIPD HR Software ShowPhotos from MND Association Presentation at the CIPD HR Software Show
Photos from MND Association Presentation at the CIPD HR Software ShowCascadeHR
 
Independent textual analysis_1
Independent textual analysis_1Independent textual analysis_1
Independent textual analysis_1marco101010
 
Nervous System
Nervous SystemNervous System
Nervous Systemakclifton1
 
Update Heterodon platirhinos
Update Heterodon platirhinosUpdate Heterodon platirhinos
Update Heterodon platirhinosJordiDirks
 

Viewers also liked (18)

Media: Logbook
Media: LogbookMedia: Logbook
Media: Logbook
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
 
Neil Cliff CV 3
Neil Cliff CV 3Neil Cliff CV 3
Neil Cliff CV 3
 
Bars & Pubs - Eagles Nest
Bars & Pubs - Eagles NestBars & Pubs - Eagles Nest
Bars & Pubs - Eagles Nest
 
Conditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu AriniConditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu Arini
 
Photos from MND Association Presentation at the CIPD HR Software Show
Photos from MND Association Presentation at the CIPD HR Software ShowPhotos from MND Association Presentation at the CIPD HR Software Show
Photos from MND Association Presentation at the CIPD HR Software Show
 
Independent textual analysis_1
Independent textual analysis_1Independent textual analysis_1
Independent textual analysis_1
 
Insight presentation
Insight presentationInsight presentation
Insight presentation
 
Woyzeck Programme
Woyzeck ProgrammeWoyzeck Programme
Woyzeck Programme
 
CV
CVCV
CV
 
Reunion Programme
Reunion ProgrammeReunion Programme
Reunion Programme
 
Nervous System
Nervous SystemNervous System
Nervous System
 
Evaluation question 2
Evaluation question 2Evaluation question 2
Evaluation question 2
 
Update Heterodon platirhinos
Update Heterodon platirhinosUpdate Heterodon platirhinos
Update Heterodon platirhinos
 
Media research
Media researchMedia research
Media research
 
Structure Technology for Success
Structure Technology for SuccessStructure Technology for Success
Structure Technology for Success
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4
 
Magazine case study
Magazine case studyMagazine case study
Magazine case study
 

Similar to Matreshka.js

Object-Oriented Javascript
Object-Oriented JavascriptObject-Oriented Javascript
Object-Oriented Javascriptkvangork
 
Object-Oriented JavaScript
Object-Oriented JavaScriptObject-Oriented JavaScript
Object-Oriented JavaScriptkvangork
 
Exercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera CymbronExercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera Cymbroncymbron
 
Architecting JavaScript Code
Architecting JavaScript CodeArchitecting JavaScript Code
Architecting JavaScript CodeSuresh Balla
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react applicationGreg Bergé
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ EtsyNishan Subedi
 
AngularJS: what is underneath the hood
AngularJS: what is underneath the hood AngularJS: what is underneath the hood
AngularJS: what is underneath the hood DA-14
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013Laurent_VB
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScriptAndrew Dupont
 
Js 单元测试框架介绍
Js 单元测试框架介绍Js 单元测试框架介绍
Js 单元测试框架介绍louieuser
 
Bindings: the zen of montage
Bindings: the zen of montageBindings: the zen of montage
Bindings: the zen of montageKris Kowal
 
JavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best PracticesJavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best PracticesSiarhei Barysiuk
 
Ten useful JavaScript tips & best practices
Ten useful JavaScript tips & best practicesTen useful JavaScript tips & best practices
Ten useful JavaScript tips & best practicesAnkit Rastogi
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your WillVincenzo Barone
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeletonIram Ramrajkar
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript IntroductionDmitry Sheiko
 

Similar to Matreshka.js (20)

Object-Oriented Javascript
Object-Oriented JavascriptObject-Oriented Javascript
Object-Oriented Javascript
 
Object-Oriented JavaScript
Object-Oriented JavaScriptObject-Oriented JavaScript
Object-Oriented JavaScript
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Exercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera CymbronExercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera Cymbron
 
Architecting JavaScript Code
Architecting JavaScript CodeArchitecting JavaScript Code
Architecting JavaScript Code
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react application
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
 
AngularJS: what is underneath the hood
AngularJS: what is underneath the hood AngularJS: what is underneath the hood
AngularJS: what is underneath the hood
 
Backbone Basics with Examples
Backbone Basics with ExamplesBackbone Basics with Examples
Backbone Basics with Examples
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript
 
Js 单元测试框架介绍
Js 单元测试框架介绍Js 单元测试框架介绍
Js 单元测试框架介绍
 
Bindings: the zen of montage
Bindings: the zen of montageBindings: the zen of montage
Bindings: the zen of montage
 
JavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best PracticesJavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best Practices
 
Ten useful JavaScript tips & best practices
Ten useful JavaScript tips & best practicesTen useful JavaScript tips & best practices
Ten useful JavaScript tips & best practices
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Ad java prac sol set
Ad java prac sol setAd java prac sol set
Ad java prac sol set
 

Recently uploaded

Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸mathanramanathan2005
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEMCharmi13
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxCarrieButtitta
 
Chizaram's Women Tech Makers Deck. .pptx
Chizaram's Women Tech Makers Deck.  .pptxChizaram's Women Tech Makers Deck.  .pptx
Chizaram's Women Tech Makers Deck. .pptxogubuikealex
 
Early Modern Spain. All about this period
Early Modern Spain. All about this periodEarly Modern Spain. All about this period
Early Modern Spain. All about this periodSaraIsabelJimenez
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.KathleenAnnCordero2
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power
 
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...Henrik Hanke
 
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comSaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comsaastr
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxAnne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxnoorehahmad
 
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationThe Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationNathan Young
 
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Escort Service
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRRsarwankumar4524
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxaryanv1753
 
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRachelAnnTenibroAmaz
 
Genshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxGenshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxJohnree4
 

Recently uploaded (20)

Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEM
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptx
 
Chizaram's Women Tech Makers Deck. .pptx
Chizaram's Women Tech Makers Deck.  .pptxChizaram's Women Tech Makers Deck.  .pptx
Chizaram's Women Tech Makers Deck. .pptx
 
Early Modern Spain. All about this period
Early Modern Spain. All about this periodEarly Modern Spain. All about this period
Early Modern Spain. All about this period
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
 
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
 
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comSaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxAnne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
 
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationThe Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism Presentation
 
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptx
 
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
 
Genshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxGenshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptx
 

Matreshka.js