SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
UI 2013
Milan Korsos
useTallie.com - milankorsos.com
Febr 2013
What’s up?
The Language Of The Web
The Frameworks
CSS is fun?!
Btw, Browsers?
QA != Farmville
Cool Stuff
JavaScript
No longer ‘hide-this-div-then-animate-that’
De-facto language of the web
Hard challenges for large scale apps
JS as a runtime environment?
CoffeeScript - The Awesome
Compiles to JavaScript
You can still use any of the JS libraries
Encourages good JS patterns
Makes JS code shorter and more readable
Compilation and debugging can be a pain
CoffeeScript - The Awesome
http://coffeescript.org
http://js2coffee.org
Should You Learn CoffeeScript?
What are the pros and cons of CoffeeScript?
Dropbox dives into CoffeeScript
Why I prefer JavaScript over CS?
The Little Book On CoffeeScript
Less Typing Bad Readability
The Frameworks
Backbone.js
Knockout.js
Ember.js
Angular.js
Spine.js
Meteor
Rich JavaScript Applications – the Seven Frameworks
Backbone.js
Provides REST-persistable models
With strong client side routing solution
Does nothing towards automated UI sync
Model, Collection, View, Router
Knockout.js
Focuses on automated UI bindings
Developer writes the models
No routing (eg. Crossroads.js, Sammy.js)
Observables, ObservableArrays
Meteor & Ember.js
Meteor
Crazy amazing framework from the future
Bridges the server side runtime with client side
Ember.js
Biggest framework with the most functionality
Ember makes all the common solutions
CSS can be FUN
LESS, SASS
Meta languages interpreted to CSS
Variables, Mixins, Nested rules, Functions & Operations
An Introduction To LESS, And Comparison To Sass
Twitter Bootstrap
Toolkit for kickstarting CSS for websites and web apps
Btw, Browsers?
IE <3
IE6, IE7: expensive to optimize, small user base
IE8: Windows XP users who cannot update to IE9
IE9: Lack of HTML5 support
IE10: Sucks less? Still in beta..
IE Dev Tools: painful compared to Chrome, Safari or Firefox
QA != Farmville
Manual testing
Automated UI testing
UI Unit Testing
JS Runtime Error Tracking
http://errorception.com
Automated UI Testing
If a bug pops up, add as a step to a scenario
Run them daily on every browsers
Run the related scenarios before check in
Cucumber framework integrated to CI
http://cukes.info
JavaScript Unit Testing
Jasmine BDD framework
Testing the Models and Lists
Integrated to CI
Sinon.js library
Stubs, spys, faking, mocking, etc
Cool Stuff
HTML5
Event driven programming
Measure all the things!
D3.js
HTML5
Actually there are useful and working APIs!
Drag And Drop API: even IE supports it
File API: For file management. IE? Nope
History API: History manipulation. IE? Nope
Local Storage API: IE8+
http://www.html5rocks.com http://diveintohtml5.info
Event Driven JavaScript
Kill the callbacks nested callbacks nested
callbacks. Time to write maintainable code.
http://twitter.github.com/flight/
Amazon: Async JavaScript
Measure All The Things
Measure users, trends and performance
Google Analytics
New Relic
KISSmetrics
Errorception
Optimizely, Chartbeat, etc...
D3.js - The Chart Tool
Manipulating documents based on data
https://github.com/mbostock/d3/wiki/Gallery
Tons of charting libraries based on D3
NVD3.js - Reusable charts for d3.js
Front-End Engineering 101

Mais conteúdo relacionado

Mais procurados

React native sharing
React native sharingReact native sharing
React native sharingSam Lee
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingVlad Filippov
 
List of Tools for WordPress Developers
List of Tools for WordPress DevelopersList of Tools for WordPress Developers
List of Tools for WordPress DevelopersHireWPGeeks Ltd.
 
Building iOS Apps With RubyMotion
Building iOS Apps With RubyMotionBuilding iOS Apps With RubyMotion
Building iOS Apps With RubyMotionRaymond T Hightower
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsSauce Labs
 
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"Jay Park
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitHristo Chakarov
 
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...Badoo
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScriptKevin Whinnery
 
Front-end Automated Testing
Front-end Automated TestingFront-end Automated Testing
Front-end Automated TestingRuben Teijeiro
 
University Hackathon Kit
University Hackathon KitUniversity Hackathon Kit
University Hackathon KitJoshua Drew
 
Titanium appcelerator best practices
Titanium appcelerator best practicesTitanium appcelerator best practices
Titanium appcelerator best practicesAlessio Ricco
 
Postmodern Web Apps
Postmodern Web AppsPostmodern Web Apps
Postmodern Web Appsmalteubl
 
React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"Itaru Kitagawa
 
SeConf_Nov2016_London
SeConf_Nov2016_LondonSeConf_Nov2016_London
SeConf_Nov2016_LondonPooja Shah
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneDeepu S Nath
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript TalkDerek Binkley
 

Mais procurados (20)

React native sharing
React native sharingReact native sharing
React native sharing
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
Mobile html5 v2
Mobile html5 v2Mobile html5 v2
Mobile html5 v2
 
List of Tools for WordPress Developers
List of Tools for WordPress DevelopersList of Tools for WordPress Developers
List of Tools for WordPress Developers
 
Building iOS Apps With RubyMotion
Building iOS Apps With RubyMotionBuilding iOS Apps With RubyMotion
Building iOS Apps With RubyMotion
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native Apps
 
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScript
 
Front-end Automated Testing
Front-end Automated TestingFront-end Automated Testing
Front-end Automated Testing
 
University Hackathon Kit
University Hackathon KitUniversity Hackathon Kit
University Hackathon Kit
 
Titanium appcelerator best practices
Titanium appcelerator best practicesTitanium appcelerator best practices
Titanium appcelerator best practices
 
Postmodern Web Apps
Postmodern Web AppsPostmodern Web Apps
Postmodern Web Apps
 
React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"React UI Development: Introduction to "UI Component as API"
React UI Development: Introduction to "UI Component as API"
 
SeConf_Nov2016_London
SeConf_Nov2016_LondonSeConf_Nov2016_London
SeConf_Nov2016_London
 
Windows 8
Windows 8Windows 8
Windows 8
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
 
Jruby
JrubyJruby
Jruby
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript Talk
 

Semelhante a Front-End Engineering 101

Smart phone development
Smart phone developmentSmart phone development
Smart phone developmentMyles Eftos
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba - .toster
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...GreeceJS
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutionsAndrea Tino
 
What's cool in Apache MyFaces?
What's cool in Apache MyFaces?What's cool in Apache MyFaces?
What's cool in Apache MyFaces?aliok
 
Ajax Abuse Todcon2008
Ajax Abuse Todcon2008Ajax Abuse Todcon2008
Ajax Abuse Todcon2008Jesse Rodgers
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 mayLuciano Amodio
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Bluegrass Digital
 
Javascript library toolbox
Javascript library toolboxJavascript library toolbox
Javascript library toolboxSkysoul Pty.Ltd.
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017   ember.js - escape the javascript fatigueNode.js meetup 17.05.2017   ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigueTobias Braner
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeCaridy Patino
 

Semelhante a Front-End Engineering 101 (20)

Smart phone development
Smart phone developmentSmart phone development
Smart phone development
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba -
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
 
Practical html5
Practical html5Practical html5
Practical html5
 
What's cool in Apache MyFaces?
What's cool in Apache MyFaces?What's cool in Apache MyFaces?
What's cool in Apache MyFaces?
 
Ajax Abuse Todcon2008
Ajax Abuse Todcon2008Ajax Abuse Todcon2008
Ajax Abuse Todcon2008
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015
 
Javascript library toolbox
Javascript library toolboxJavascript library toolbox
Javascript library toolbox
 
TPR4
TPR4TPR4
TPR4
 
TPR4
TPR4TPR4
TPR4
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
Javascript handbook
Javascript handbook Javascript handbook
Javascript handbook
 
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017   ember.js - escape the javascript fatigueNode.js meetup 17.05.2017   ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
 

Front-End Engineering 101

  • 1. UI 2013 Milan Korsos useTallie.com - milankorsos.com Febr 2013
  • 2. What’s up? The Language Of The Web The Frameworks CSS is fun?! Btw, Browsers? QA != Farmville Cool Stuff
  • 3. JavaScript No longer ‘hide-this-div-then-animate-that’ De-facto language of the web Hard challenges for large scale apps JS as a runtime environment?
  • 4. CoffeeScript - The Awesome Compiles to JavaScript You can still use any of the JS libraries Encourages good JS patterns Makes JS code shorter and more readable Compilation and debugging can be a pain
  • 5. CoffeeScript - The Awesome http://coffeescript.org http://js2coffee.org Should You Learn CoffeeScript? What are the pros and cons of CoffeeScript? Dropbox dives into CoffeeScript Why I prefer JavaScript over CS? The Little Book On CoffeeScript Less Typing Bad Readability
  • 7. Backbone.js Provides REST-persistable models With strong client side routing solution Does nothing towards automated UI sync Model, Collection, View, Router
  • 8. Knockout.js Focuses on automated UI bindings Developer writes the models No routing (eg. Crossroads.js, Sammy.js) Observables, ObservableArrays
  • 9. Meteor & Ember.js Meteor Crazy amazing framework from the future Bridges the server side runtime with client side Ember.js Biggest framework with the most functionality Ember makes all the common solutions
  • 10. CSS can be FUN LESS, SASS Meta languages interpreted to CSS Variables, Mixins, Nested rules, Functions & Operations An Introduction To LESS, And Comparison To Sass Twitter Bootstrap Toolkit for kickstarting CSS for websites and web apps
  • 12. IE <3 IE6, IE7: expensive to optimize, small user base IE8: Windows XP users who cannot update to IE9 IE9: Lack of HTML5 support IE10: Sucks less? Still in beta.. IE Dev Tools: painful compared to Chrome, Safari or Firefox
  • 13. QA != Farmville Manual testing Automated UI testing UI Unit Testing JS Runtime Error Tracking http://errorception.com
  • 14. Automated UI Testing If a bug pops up, add as a step to a scenario Run them daily on every browsers Run the related scenarios before check in Cucumber framework integrated to CI http://cukes.info
  • 15. JavaScript Unit Testing Jasmine BDD framework Testing the Models and Lists Integrated to CI Sinon.js library Stubs, spys, faking, mocking, etc
  • 16. Cool Stuff HTML5 Event driven programming Measure all the things! D3.js
  • 17. HTML5 Actually there are useful and working APIs! Drag And Drop API: even IE supports it File API: For file management. IE? Nope History API: History manipulation. IE? Nope Local Storage API: IE8+ http://www.html5rocks.com http://diveintohtml5.info
  • 18. Event Driven JavaScript Kill the callbacks nested callbacks nested callbacks. Time to write maintainable code. http://twitter.github.com/flight/ Amazon: Async JavaScript
  • 19. Measure All The Things Measure users, trends and performance Google Analytics New Relic KISSmetrics Errorception Optimizely, Chartbeat, etc...
  • 20. D3.js - The Chart Tool Manipulating documents based on data https://github.com/mbostock/d3/wiki/Gallery Tons of charting libraries based on D3 NVD3.js - Reusable charts for d3.js