SlideShare a Scribd company logo
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
Front end workflow Presentation at Coffee@DBG by Praveen Vijayan
Front end workflow Presentation at Coffee@DBG by Praveen Vijayan
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

PDF
What is jQuery?
PDF
Fundamental JQuery
PPTX
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
PPTX
Introduction to jQuery Mobile
PPTX
WebMatrix 100-level presentation
PPTX
Introduction to jquery mobile with Phonegap
PDF
Front-end Rails-приложений приложений, основанный на БЭМ
PPT
jQuery Mobile with HTML5
What is jQuery?
Fundamental JQuery
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Introduction to jQuery Mobile
WebMatrix 100-level presentation
Introduction to jquery mobile with Phonegap
Front-end Rails-приложений приложений, основанный на БЭМ
jQuery Mobile with HTML5

What's hot (14)

PDF
Advanced JQuery Mobile tutorial with Phonegap
PPTX
Introduction to the jQuery mobile framework
PPTX
Basic wordpress editing
PPTX
Jquery mobile
PDF
jQuery Mobile: Progressive Enhancement with HTML5
PDF
Overview on jQuery mobile
DOCX
Using class suffixes
PDF
jQueryMobile Jump Start
PDF
JSN Cube Customization Manual
PDF
Accomplish It With Core: Sliders, Galleries and More
PDF
Building Better Web Apps with Angular.js (SXSW 2014)
PPTX
jQuery Mobile
PPT
WordPress development paradigms, idiosyncrasies and other big words
PDF
Intro to emberjs
Advanced JQuery Mobile tutorial with Phonegap
Introduction to the jQuery mobile framework
Basic wordpress editing
Jquery mobile
jQuery Mobile: Progressive Enhancement with HTML5
Overview on jQuery mobile
Using class suffixes
jQueryMobile Jump Start
JSN Cube Customization Manual
Accomplish It With Core: Sliders, Galleries and More
Building Better Web Apps with Angular.js (SXSW 2014)
jQuery Mobile
WordPress development paradigms, idiosyncrasies and other big words
Intro to emberjs
Ad

Viewers also liked (6)

PDF
Tech bites
PPTX
Coffee@DBG - Evolution of html
PPT
Coffee@DBG - TechBites Sept 2015
PDF
Cross Device UI Designing
PDF
Tooling for the JavaScript Era
PPTX
Getting ready for the cloud iaa s
Tech bites
Coffee@DBG - Evolution of html
Coffee@DBG - TechBites Sept 2015
Cross Device UI Designing
Tooling for the JavaScript Era
Getting ready for the cloud iaa s
Ad

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

PDF
Style Guide Driven Development: All Hail the Robot Overlords!
PPTX
Archetype
PDF
What is Modular CSS?
PPTX
WELCOME (recovernjkgnjvnvnfjkvnjknnbfjked).pptx
PDF
Fii Practic Frontend BeeNear - laborator 1
PPTX
PRAKHAR-Building-the-Web.pptx on web development
PPTX
What Are The Different Types Of Web Technologies.pptx
PDF
A Complete Guide to Frontend - UI Developer
PDF
Killing the Angle Bracket
PPTX
Html,CSS & UI/UX design
PDF
Front-End Frameworks: a quick overview
PDF
Beginner & Intermediate Guide to HTML5/CSS3 In Drupal
PPTX
Curtin University Frontend Web Development
PDF
Introduction-to-HTML-CSS-and-Bootstrap.pdf
PDF
Css tools and methodologies
PPTX
Html5 Basic Structure
PPTX
Angular JS
PDF
Teams, styles and scalable applications
PDF
Web Dev - 1 PPT.pdf
PPTX
Web Development Course - HTML5 & CSS3 by RSOLUTIONS
Style Guide Driven Development: All Hail the Robot Overlords!
Archetype
What is Modular CSS?
WELCOME (recovernjkgnjvnvnfjkvnjknnbfjked).pptx
Fii Practic Frontend BeeNear - laborator 1
PRAKHAR-Building-the-Web.pptx on web development
What Are The Different Types Of Web Technologies.pptx
A Complete Guide to Frontend - UI Developer
Killing the Angle Bracket
Html,CSS & UI/UX design
Front-End Frameworks: a quick overview
Beginner & Intermediate Guide to HTML5/CSS3 In Drupal
Curtin University Frontend Web Development
Introduction-to-HTML-CSS-and-Bootstrap.pdf
Css tools and methodologies
Html5 Basic Structure
Angular JS
Teams, styles and scalable applications
Web Dev - 1 PPT.pdf
Web Development Course - HTML5 & CSS3 by RSOLUTIONS

More from Deepu S Nath (20)

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

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Encapsulation_ Review paper, used for researhc scholars
Programs and apps: productivity, graphics, security and other tools
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
Advanced methodologies resolving dimensionality complications for autism neur...
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
cuic standard and advanced reporting.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
MIND Revenue Release Quarter 2 2025 Press Release
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Front end workflow Presentation at Coffee@DBG by Praveen Vijayan