SlideShare a Scribd company logo
1 of 101
Download to read offline
Tooling for
Modern Web App
developer
About
me Praveen Vijayan
decodize.com
@praveen_vijaya
Agenda
Javascript CSS HTML
Boilerplate
Backbone
Angular
Backbone + amd
Normalize.css HTML5 Boilerplate
Mobile Boilerplates
Emailer Boilerplate
Authoring
abstractions
Coffeescript
Typescript
Dart
SCSS
LESS
Stylus
Markdown
JADE
HAML
Frameworks
jQuery, Backbone,
Angular, Ember
Bootstrap, Topcoat, Pure,
Foundation
Bootstrap, html5 Boilerplate
Iteration
workflow
Grunt, Brunch, Yeoman, Codekit, Prepros, Livereload
Performance
tuning and code
quality
Chrome dev tools, Heap
profile, Timeline, Tracing,
linting
Frame rate
Continuous painting
Selector profile
CSSLint
Recess
Network panel
Validation
W3C validator
HTML inspector
DOM Monster
Optimization
Uglifyjs
Closure compiler
r.js
Cssmin
YUI compressor
cssoo
Htmlmin
Image optimization
Shared
understanding
YUI Doc
Docco
KSS
Styledocco
TODO Project
Model
View
Events
jQuery never tell how
to structure your app
JS
Structure
Your
Model View View
Adapter
StructureJS
MV *
Model View Presenter
Model View Controller
Model View ViewController
Model View ViewModel
ViewData
View
View
View
Model
Collection
View
MV*Frameworks
MV*Library Spine JS
VS
... ...
Scaling backbone apps
Backbone never tell
how to create
reusable modules
and load it on
demand
Asynchronous
Module
Definition (AMD)
Modular Javascript
ModularJavascript
Purpose
Module?Highly decoupled, distinct pieces of
functionality stored in modules
Dependency References
ModularJavascript
Two
Steps
1. Define module
2. Require it
ModularJavascript
ModularJavascript
Configuration
Require module
Define module & its dependencies1
2
ModularJavascript
Combine related scripts together
Minifies it via UglifyJS/ Closure Compiler
Optimize CSS
r.js optimizer
$ node r.js -o baseUrl=. paths.
jquery=some/other/jquery name=main out=main-
built.js
ModularJavascript
AMD
loaders
curljs
ES6
Module
Test
Driven
Development
TDD/BDD
TDD/BDD
Why TDD?
Design your code well
Build confidence to use your code
Don’t let same bug popup twice
Seamless change requests adaption
Automatic Documentation
Continuous Integration
Fail
PassRefactor
TDD/BDD
PROCESS
TDD/BDD
Qunit
Fixture
Source file
Tests
TDD/BDD
Qunit
Group test
Test cases
TDD/BDD
Qunit
Javascript
transcompiler
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
c
o
ff
e
e
s
c
ri
p
t
t
y
p
e
s
c
ri
p
t
Performance
tuning
&
Optimization
Javascript lint
Code Quality Tools for
detecting potential
problem in your
javascript
Chrome dev tool
Timeline
Chrome dev tool
Profiling
Chrome dev tool
Tracing
chrome://tracing/
JavaScript performance
http://jsperf.com/ http://dromaeo.com/
Documentation YUI
Natural
Docs
Docco
Documentation
Continuous
Integration
&
Code coverage
Codecoverage
http://jsoverson.github.io/plato/examples/jquery/
Plato
Code coverage
plato
istanbul
jscover
blanket.js
jscomplexity.org
Tools
Continuous
Integration
Continuous integration – the practice
of frequently integrating one's new or
changed code with the existing code
repository – should occur frequently
enough that no intervening window
remains between commit and build,
and such that no errors can arise
without developers noticing them and
correcting them immediately
CI
-wikipedia
Travis-ci.org
Tests
Gitpush
Session Summary
Structure your app
Optimise it
Document it
Continuous integration
CSS
CSS Libraries
Bootstrap
Pure
Foundation
Topcoat
inuit
CSS
Preprocessors
What is CSS
Preprocessors
Stylesheet meta language that
is interpreted into CSS
$basecolor: #f1f1f1;
body{
background: $basecolor
}
body {
background: #f1f1f1;
}
SC
SS
C
SS
CSS is
Awesome!
but
Maintaining
:)
:(
S
C
S
S
S
C
S
S
partials
@import
@extend
@include
@if
@for
%placeholder
Compiling
Deployment Server Client Local
Compile as
part of
deployment
process
(Capistrano,
Fabric).
Compile and
cache up on
request.
Compile
using
javascript at
browser end
(not
recommended)
Compile
using tools.
Tools
Prepros
Online
Tool
Preprocessors
don't output bad
code, bad
developers do
Structure
your
CSS
Repetition
Maintainability
Decoupling
Specificity
OOCSS
BEM
SMACSS
Methodologies
OOCSS
Purpose of OOCSS is to identify common
pattern & encourage code reuse
Main principles
Separate structure and skin
Separate container and content
BEMBlock : A block is an independent entity.
Element : An element is a part of a block that
performs a certain function. Blocks and
elements constitute page content.
Modifier : Similar block with slightly altered its
appearance or behavior..
SMACSSBase : Base rules are the defaults.
Layout : Divide the page into sections. Layouts hold one
or more modules together.
Module : are the reusable, modular parts of our design.
State : are ways to describe how our modules or layouts
will look when in a particular state. Is it hidden or
expanded?
Theme : are similar to state rules in that they describe
how modules or layouts might look.
Living
Style guide
Create style guide as
you code!!
Githubstyleguide
https://github.com/styleguide/css
KSSstyleguide
/*
A button suitable for giving stars to someone.
:hover - Subtle hover highlight.
.stars-given - A highlight indicating you've already given a star.
.stars-given:hover - Subtle hover highlight on top of stars-given
styling.
.disabled - Dims the button to indicate it cannot be used.
Styleguide 2.1.3.
*/
a.button.star{
...
}
a.button.star.stars-given{
...
}
a.button.star.disabled{
...
}
KSS
Styledoco
Performance
Optimization
Performance
Performance
Performance
Session Summary
Bootstrap using libraries
Structure your CSS
Optimise it
Document it
HTML
JADE
HAML
Markdown
JADE
JADE
Syntax
Filters
Code
Iteration
Conditionals
Template inheritance
Block append / prepend
Includes
Mixins
Performance
optimization
Performanceoptimization
tools Minify CSS, HTML, JS
Concat CSS, JS
Optimise image using
optipng, jpegtran etc..
W3C Validator, HTML InspectorPerformanceoptimization
tools
Performanceoptimization
tools
Pagespeed
Yslow
Webpagetest
GTMetrix
GA
Session Summary
Use templating langs prudently
Measure & Optimize for
performance
Validate your code
ToolingTooling
Yo
Grunt
Bower
Lightning-fast scaffolding
Great build process
Automatically compile CoffeeScript & Compass
Automatically lint your scripts
Built-in preview server
Awesome Image Optimization
Killer package management
PhantomJS Unit Testing
Yeoman
It's a workflow
collection of tools and best practices
Yeoman
Yeoman = Yo + Grunt + Bower
Yeoman
Install
npm install -g yo grunt-cli bower
npm install -g generator-webapp
yo webapp
Usage
grunt server
grunt test
grunt
Yeoman
Anatomy
Project folder
App folder
Grunt file
Package json
Unit tests
Bower json
Grunt
Gruntfile.js
Config
Tasks
Targets
This file used to
configure or
define tasks and
load grunt
plugins
package.json
Config
This file contain all
information about
npm packages
Grunt
Grunt
Bower
A Project
Production Environment
Production Environment
Production Environment
180+ scss files, 550+ jade files
Demo
Thanks

More Related Content

What's hot

jQueryMobile Jump Start
jQueryMobile Jump StartjQueryMobile Jump Start
jQueryMobile Jump Start
Haim Michael
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
mowd8574
 

What's hot (14)

Advanced JQuery Mobile tutorial with Phonegap
Advanced JQuery Mobile tutorial with Phonegap Advanced JQuery Mobile tutorial with Phonegap
Advanced JQuery Mobile tutorial with Phonegap
 
Introduction to the jQuery mobile framework
Introduction to the jQuery mobile frameworkIntroduction to the jQuery mobile framework
Introduction to the jQuery mobile framework
 
Basic wordpress editing
Basic wordpress editingBasic wordpress editing
Basic wordpress editing
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5
 
Overview on jQuery mobile
Overview on jQuery mobileOverview on jQuery mobile
Overview on jQuery mobile
 
Using class suffixes
Using class suffixesUsing class suffixes
Using class suffixes
 
jQueryMobile Jump Start
jQueryMobile Jump StartjQueryMobile Jump Start
jQueryMobile Jump Start
 
JSN Cube Customization Manual
JSN Cube Customization ManualJSN Cube Customization Manual
JSN Cube Customization Manual
 
Accomplish It With Core: Sliders, Galleries and More
Accomplish It With Core: Sliders, Galleries and MoreAccomplish It With Core: Sliders, Galleries and More
Accomplish It With Core: Sliders, Galleries and More
 
Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
WordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsWordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big words
 
Intro to emberjs
Intro to emberjsIntro to emberjs
Intro to emberjs
 

Viewers also liked (6)

Tech bites
Tech bitesTech bites
Tech bites
 
Coffee@DBG - Evolution of html
Coffee@DBG - Evolution of htmlCoffee@DBG - Evolution of html
Coffee@DBG - Evolution of html
 
Coffee@DBG - TechBites Sept 2015
Coffee@DBG - TechBites Sept 2015Coffee@DBG - TechBites Sept 2015
Coffee@DBG - TechBites Sept 2015
 
Cross Device UI Designing
Cross Device UI DesigningCross Device UI Designing
Cross Device UI Designing
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Era
 
Getting ready for the cloud iaa s
Getting ready for the cloud iaa sGetting ready for the cloud iaa s
Getting ready for the cloud iaa s
 

Similar to Front end workflow Presentation at Coffee@DBG by Praveen Vijayan

Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Erin M. Kidwell
 

Similar to Front end workflow Presentation at Coffee@DBG by Praveen Vijayan (20)

CSS101 - Concept Fundamentals for non UI Developers
CSS101 - Concept Fundamentals for non UI DevelopersCSS101 - Concept Fundamentals for non UI Developers
CSS101 - Concept Fundamentals for non UI Developers
 
CSC103 Web Technologies: HTML, CSS, JS
CSC103 Web Technologies: HTML, CSS, JSCSC103 Web Technologies: HTML, CSS, JS
CSC103 Web Technologies: HTML, CSS, JS
 
Fewd week2 slides
Fewd week2 slidesFewd week2 slides
Fewd week2 slides
 
CSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSCSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSS
 
Styling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS EditionStyling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS Edition
 
Rock Solid CSS Architecture
Rock Solid CSS ArchitectureRock Solid CSS Architecture
Rock Solid CSS Architecture
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
 
Bootstrap Workout 2015
Bootstrap Workout 2015Bootstrap Workout 2015
Bootstrap Workout 2015
 
Building and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextBuilding and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and Context
 
Developing large scale JavaScript applications
Developing large scale JavaScript applicationsDeveloping large scale JavaScript applications
Developing large scale JavaScript applications
 
Pfnp slides
Pfnp slidesPfnp slides
Pfnp slides
 
Angular js
Angular jsAngular js
Angular js
 
AngularJS.pptx
AngularJS.pptxAngularJS.pptx
AngularJS.pptx
 
Knockout js session
Knockout js sessionKnockout js session
Knockout js session
 
Angular js
Angular jsAngular js
Angular js
 
Angular js
Angular jsAngular js
Angular js
 
Organize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS TricksOrganize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS Tricks
 
Best Angularjs tutorial for beginners - TIB Academy
Best Angularjs tutorial for beginners - TIB AcademyBest Angularjs tutorial for beginners - TIB Academy
Best Angularjs tutorial for beginners - TIB Academy
 
html5_css3
html5_css3html5_css3
html5_css3
 
BEM it!
BEM it!BEM it!
BEM it!
 

More from Deepu S Nath

Greetings & Response - English Communication Training
Greetings & Response - English Communication TrainingGreetings & Response - English Communication Training
Greetings & Response - English Communication Training
Deepu S Nath
 

More from Deepu S Nath (20)

Design Thinking, Critical Thinking & Innovation Design
Design Thinking, Critical Thinking & Innovation DesignDesign Thinking, Critical Thinking & Innovation Design
Design Thinking, Critical Thinking & Innovation Design
 
GTECH ATFG µLearn Framework Intro
GTECH ATFG µLearn Framework IntroGTECH ATFG µLearn Framework Intro
GTECH ATFG µLearn Framework Intro
 
Future of learning - Technology Disruption
Future of learning  - Technology DisruptionFuture of learning  - Technology Disruption
Future of learning - Technology Disruption
 
Decentralized Applications using Ethereum
Decentralized Applications using EthereumDecentralized Applications using Ethereum
Decentralized Applications using Ethereum
 
How machines can take decisions
How machines can take decisionsHow machines can take decisions
How machines can take decisions
 
Artificial Intelligence: An Introduction
 Artificial Intelligence: An Introduction Artificial Intelligence: An Introduction
Artificial Intelligence: An Introduction
 
FAYA PORT 80 Introduction
FAYA PORT 80 IntroductionFAYA PORT 80 Introduction
FAYA PORT 80 Introduction
 
How machines can take decisions
How machines can take decisionsHow machines can take decisions
How machines can take decisions
 
Simplified Introduction to AI
Simplified Introduction to AISimplified Introduction to AI
Simplified Introduction to AI
 
Mining Opportunities of Block Chain and BitCoin
Mining Opportunities of Block Chain and BitCoinMining Opportunities of Block Chain and BitCoin
Mining Opportunities of Block Chain and BitCoin
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Coffee@DBG - TechBites March 2016
Coffee@DBG - TechBites March 2016Coffee@DBG - TechBites March 2016
Coffee@DBG - TechBites March 2016
 
REACT.JS : Rethinking UI Development Using JavaScript
REACT.JS : Rethinking UI Development Using JavaScriptREACT.JS : Rethinking UI Development Using JavaScript
REACT.JS : Rethinking UI Development Using JavaScript
 
SEO For Developers
SEO For DevelopersSEO For Developers
SEO For Developers
 
Life Cycle of an App - From Idea to Monetization
Life Cycle of an App - From Idea to Monetization  Life Cycle of an App - From Idea to Monetization
Life Cycle of an App - From Idea to Monetization
 
Uncommon Python - What is special in Python
Uncommon Python -  What is special in PythonUncommon Python -  What is special in Python
Uncommon Python - What is special in Python
 
Techbites July 2015
Techbites July 2015Techbites July 2015
Techbites July 2015
 
Apple Watch - Start Your Developer Engine
Apple Watch -  Start Your Developer EngineApple Watch -  Start Your Developer Engine
Apple Watch - Start Your Developer Engine
 
Greetings & Response - English Communication Training
Greetings & Response - English Communication TrainingGreetings & Response - English Communication Training
Greetings & Response - English Communication Training
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - Xamarin
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Front end workflow Presentation at Coffee@DBG by Praveen Vijayan