General purpose Javascript frameworks are the ones that made the language popular in the past, but right now it is a risk to think about our application development and architecture just in relation to our favorite framework.
This talk highlights risks and suggest some techniques (from design patterns to snippet of code) to avoid being coupled to a specific framework
6. Hello, who’s speaking?
Marco Cedaro
@cedmax
About me...
Frontend Cowboy
Nicola Vitto Jr.
Javascript Pervert
Roberto Felter
7. Hello, who’s speaking?
Marco Cedaro
@cedmax
About me...
Frontend Cowboy
Nicola Vitto Jr.
Javascript Pervert
Roberto Felter
Marco.. who?
basically anyone else
8. Hello, who’s speaking?
Marco Cedaro
@cedmax
Actually I am:
a Frontend Developer at
Spreaker.com
9. Hello, who’s speaking?
Marco Cedaro
@cedmax
Actually I am:
a Frontend Developer at
Spreaker.com
Conference organizer
with From The Front
10. Hello, who’s speaking?
Marco Cedaro
@cedmax
Actually I am:
a Frontend Developer at
Spreaker.com
Conference organizer
with From The Front
and a javascript pervert
15. Definition
frame·work n.
A structure for supporting or enclosing something
else, especially a skeletal support used as the basis for
something being constructed.
gen·er·al-pur·pose adj.
Designed for or suitable to more than one use;
broadly useful.
16. A little history
http://mattstone.blogs.com/photos/christian_art_genesis/adam-eve-and-the-tree.html
17. Once upon a time
code snippet
“dhtml”
if (document.all)
http://creativecriminals.com/print/scotch-tape-beyond-strong/
30. General purpose
framework may seem
the right solution to
handle complexity
Long life cycle websites
http://sproutsocial.com/insights/2011/11/how-to-iphone-ipad-friendly/ - http://pressganger.blogspot.it/2012/03/blog-progress-update.html
- http://news.brothersoft.com/internet-explorer-10-focuses-html5-improves-performance-16036.html
31. General purpose
framework may seem New browser, new
the right solution to framework version
handle complexity
Long life cycle websites
http://sproutsocial.com/insights/2011/11/how-to-iphone-ipad-friendly/ - http://pressganger.blogspot.it/2012/03/blog-progress-update.html
- http://news.brothersoft.com/internet-explorer-10-focuses-html5-improves-performance-16036.html
32. General purpose
How many patches did
framework may seem New browser, new
you make in your
the right solution to framework version
framework over years?
handle complexity
Long life cycle websites
http://sproutsocial.com/insights/2011/11/how-to-iphone-ipad-friendly/ - http://pressganger.blogspot.it/2012/03/blog-progress-update.html
- http://news.brothersoft.com/internet-explorer-10-focuses-html5-improves-performance-16036.html
33. Counterintuitively
situation is even worse
Short life cycle websites
http://www.cnbc.com/id/46994692/The_Worst_Jobs_for_2012 - http://indiatransportportal.com/india-transport-studies/
34. Counterintuitively Less analysis and
situation is even worse foresight
Short life cycle websites
http://www.cnbc.com/id/46994692/The_Worst_Jobs_for_2012 - http://indiatransportportal.com/india-transport-studies/
35. Did you make any
Counterintuitively Less analysis and
patch in your
situation is even worse foresight
framework over years?
Short life cycle websites
http://www.cnbc.com/id/46994692/The_Worst_Jobs_for_2012 - http://indiatransportportal.com/india-transport-studies/
43. Own scripts built on a
known framework
case study
http://www.naba.it/newsletter_09_10/naba_n184.html - http://sevenspark.com/product/agility-responsive-minimal-html5-template/
- http://middleclasshell.com/republicans-ignore-catholics-when-it-comes-to-unemployment-benefits
44. Own scripts built on a Brand new website
known framework with responsive design
case study
http://www.naba.it/newsletter_09_10/naba_n184.html - http://sevenspark.com/product/agility-responsive-minimal-html5-template/
- http://middleclasshell.com/republicans-ignore-catholics-when-it-comes-to-unemployment-benefits
45. Own scripts built on a Brand new website same old bloat code
known framework with responsive design over 3g?
case study
http://www.naba.it/newsletter_09_10/naba_n184.html - http://sevenspark.com/product/agility-responsive-minimal-html5-template/
- http://middleclasshell.com/republicans-ignore-catholics-when-it-comes-to-unemployment-benefits
46. Desktop
$LAB
.script("jquery.js").wait()
.script("scripts.js");
Mobile
$LAB
.script("xui.js").wait()
.script("scripts.js");
47. Desktop
$LAB
.script("jquery.js").wait()
.script("scripts.js");
Mobile
$LAB
.script("xui.js").wait()
.script("scripts.js");
69. for (var i = 0; i < items.length; i++) {
[...]
};
70. for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
71. for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
72. for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
73. for (var i = -1, item;item = items[++i];) {
[...]
};
for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
74. for (var i = -1, item;item = items[++i];) {
[...]
};
for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
75. for (var i = -1, item;item = items[++i];) {
[...]
};
for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
76. for (var i = -1, item;item = items[++i];) {
[...]
};
var i = 0;
while (i < items.length) {
[...]
i++;
};
for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
77. for (var i = -1, item;item = items[++i];) {
[...]
};
var i = 0;
while (i < items.length) {
[...]
i++;
};
for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
78. for (var i = -1, item;item = items[++i];) {
[...]
};
var i = 0;
while (i < items.length) {
[...]
i++;
};
for (var i = -1; ++i < items.length;) {
[...]
};
for (var i = 0; i < items.length; i++) {
[...]
};
//and counting -> http://jsperf.com/loops/33
204. BE A JAVASCRIPT
PERVERT
play with javascript
discover your own project needs
205. BE A JAVASCRIPT
PERVERT
play with javascript
discover your own project needs
206. BE A JAVASCRIPT
PERVERT
play with javascript
discover your own project needs
let github be your playground
207. BE A JAVASCRIPT
PERVERT
play with javascript
discover your own project needs
let github be your playground
javascript is fun
208. BE A JAVASCRIPT
PERVERT
play with javascript
discover your own project needs
let github be your playground
javascript is fun
javascript is lovable
209. BE A JAVASCRIPT
PERVERT
play with javascript
discover your own project needs
let github be your playground
javascript is fun
javascript is lovable
but you also need to...