SlideShare a Scribd company logo
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

More Related Content

PPTX
JavaScript와 TypeScript의 으리 있는 만남
PPTX
Flu3nt highlights
PPTX
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
PPTX
TiConnect: Memory Management in Titanium apps
PDF
Front-End 개발의 괜찮은 선택 ES6 & React
PDF
JavaScript MV* Framework - Making the Right Choice
PDF
What is FED
KEY
How to Build a Web App in Five Days
JavaScript와 TypeScript의 으리 있는 만남
Flu3nt highlights
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
TiConnect: Memory Management in Titanium apps
Front-End 개발의 괜찮은 선택 ES6 & React
JavaScript MV* Framework - Making the Right Choice
What is FED
How to Build a Web App in Five Days

What's hot (20)

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

Similar to Front-End Engineering 101 (20)

PPTX
JavaScript: Creative Coding for Browsers
PPT
Building Rich User Experiences Without JavaScript Spaghetti
PDF
Javascript spaghetti stirtrek_5_17
KEY
Single Page Applications - Desert Code Camp 2012
PDF
New Features Coming in Browsers (RIT '09)
PPTX
Javascript for Wep Apps
PPTX
f8db413453b33e4ffrointend development bbasics.pptx
PDF
Rapid Evolution of Web Dev? aka Talking About The Web
PDF
Powerful tools for building web solutions
KEY
corporateJavascript
ODP
Javascript Update May 2013
PDF
Intro to-html-backbone-angular
PDF
Javascript Web Applications Otx Alex Maccaw
PDF
Having Fun Building Web Applications (Day 1 Slides)
PPT
Intro to-html-backbone
PDF
Intro to mobile web application development
PPT
Ui technologies
PDF
Best practices for JavaScript RIAs
PPTX
Pearls and Must-Have Tools for the Modern Web / .NET Developer
PPTX
Angular JS - UI Development Online Training
JavaScript: Creative Coding for Browsers
Building Rich User Experiences Without JavaScript Spaghetti
Javascript spaghetti stirtrek_5_17
Single Page Applications - Desert Code Camp 2012
New Features Coming in Browsers (RIT '09)
Javascript for Wep Apps
f8db413453b33e4ffrointend development bbasics.pptx
Rapid Evolution of Web Dev? aka Talking About The Web
Powerful tools for building web solutions
corporateJavascript
Javascript Update May 2013
Intro to-html-backbone-angular
Javascript Web Applications Otx Alex Maccaw
Having Fun Building Web Applications (Day 1 Slides)
Intro to-html-backbone
Intro to mobile web application development
Ui technologies
Best practices for JavaScript RIAs
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Angular JS - UI Development Online Training
Ad

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