SlideShare une entreprise Scribd logo
1  sur  77
Télécharger pour lire hors ligne
Building Enterprise Grade Front-End Apps
with Javascript Frameworks
Chad Upton
• Senior	Consultant	@	DEV6	
• Developing	websites	for	20+	years	
• Won	Webby	Award	and	W3	Award	
• Wrote	Adobe’s	Advanced	Video	Course
Leaders	in	Enterprise	Web	Applica2ons	and	Full-
Stack	Development	Training
DEV6.com
@dev6tweet@chadupton
Outline
• Choosing a Framework
• Platforms
• Testing
• Reviewing and Reporting
• Scale
• Performance
• DevOps
ENTERPRISE
What does that even mean?
Enterprise
• Complex
• Scalable
• Distributed
• Component-Based
• Mission Critical
Complex?
• jQuery is great for small apps and utilities within large apps
• Making a small app complex does not make it Enterprise
• Complex is not the goal
• Complex is a result of a feature rich application
• Complex is maintainable when the code is well organized
Scalable
• Grow with user volume
• Grow beyond a single
• database
• app server
• etc
Distributed
• Grow with user distribution
• Grow beyond a single data center
location
• Cross platform
Component-Based
• More testable
• More iterative
• Easier to update
• More collaborative
• More maintainable
Mission Critical
• App is down, revenue is down
• App stability reflects image of
business
• Quality
Enterprise: How
Architecture
Performance
DevOps
FRAMEWORKS
What is a Framework?
• Vehicle that takes a project from start to finish
• You pilot the vehicle successfully (or not)
• Reusable abstractions that help structure application
• Vary in rigidity or opinion/freedom
• Recipe for building an application
• Standardization for current and future collaborators
• Toolset for previously solved problems
Why use a Framework?
Quality Application
Strong Foundation
Invisible Work
Visible Results
Component-Based
80%
Frameworks drive
component-based
architecture, making apps
more: testable, iterative,
updatable, collaborative
and fixable
Which Framework?
The Perfect Framework
• No perfect framework
• You will always require more or less
• Closest fit for your architectural style
• Not going to be perfect here either
• Has most features your project needs
• Compatible with other features needed
Project Needs
• Localization?
• Internationalization?
• Reusable Components?
• Template Syntax?
• Dependency Injection?
• Module loading?
• etc
Framework or DIY
• Multiple libraries may give you more
flexibility
• Multiple libraries could be smaller/
faster than one large framework
• One framework that does
everything will likely have fewer
problems down the road
Tooling
• Code generator
• Build scripting/helper
• IDE Integration
• Easy to deploy/test locally
Popularity
• Community of developers
• 3rd Party Components
• Training
• Books
• Official Support
Most Popular
Angular
• Huge developer community
• 3rd party components
• Training, Books, Tutorials, Examples
• Good documentation
• Official support from Google
Angular 2 Features
• Router
• Code Splitting/Module Loading
• Dependency Injection
• Animation
• Ahead-of-Time Compilation
• Testing framework
• Browser Inspector
• Command Line Interface (CLI)
React
• Nearly as many features as Angular
• More of a library than a framework
• Inline components/templates
• Less opinionated than Angular
• More 3rd party libs usually required
• Routing, Testing, etc
• Smart diff rendering (fast)
Backbone
• Library, not framework
• Underscore.js
• jQuery
• Router
• Data Bindings
• Unopinionated
• No Logic in HTML
• No HTML in Code
Ember.js
• Similar to Angular, full framework
• Router
• Testing Framework
• Inspector (browser add-on)
• CLI with code generation
• Dependency Injection
• Persistent services
PLATFORMS
Where the application lives
Platform Criteria
• Who is going to use your app?
• How are they going to use it (ex. offline)?
• What kind of devices do they have?
• Are web browsers capable enough?
• Does your app need GPS?
• etc…
Platform Environments
• Desktop/Laptops
• Mobile Phones/Tablets
• Kiosks
• Set top boxes
• etc…
Platform Types
• Web App
• AKA “Progressive Web App”
• Hybrid Mobile App
• Packaged for iOS, Android, etc
• Hybrid Desktop App
• Package for Windows, Mac, etc
Web App
• Client Processed
• Most common type of web app in use
• Easy to build, update and serve
• HTML, CSS, JavaScript + Frameworks, Libraries, etc
• Server Processed
• Varying degrees of server processing
• Server may process CSS, State and/or layout, all the way to:
• Page looks to web browser like a static HTML page
Server Processed
• Better search indexing than Client Processed Single Page Applications
• Initial render typically faster than client processed
• Fewer downloads/network operations
• Some content is pre-rendered
• Favorable to teams with greater backend skills
• Angular
• node.js, PhantomJS
• React
• node.js, C#/ASP.NET, Nashorn (Java)
• Backbone
• Rendr = Open source option from AirBNB
Server Processed Frameworks
Mobile Browser Optimized
• Responsive and Adaptive Design
• Layout is programmed to change based on screen/window size
• Best for Search Engine Optimization
• Dynamic Serving
• Server renders different layout/content based on screen size
• Separate URLs
• Mobile users directed to a mobile website
• Not recommended
Hybrid Mobile App
• Packaged for iOS, Android, etc
• Created with HTML, CSS, JavaScript, Frameworks, Libraries, etc
• Container tool to embed web app in a native mobile container
• Typically installed from Google Play, Apple App Store, etc…
Why Hybrid Mobile App?
• Leverage existing web skills or code
• Need additional capabilities of a mobile app
• Update UI, Logic, Data without submitting updates through store
• Not all scenarios allowed on all platforms
Hybrid Mobile App Packagers
• Cordova
• Free and OpenSource
• Adobe PhoneGap
• Cordova + more tooling, plugins, services
• Ionic Framework
• Build on Angular, Runs in Cordova or PhoneGap
• Cloud services
• NativeScript
NativeScript
• Real native app
• Not a web app
• Web content and controls converted
to native content and controls
• One codebase matches native apps
• Controls look and work exactly like
native controls, because they are!
Hybrid Desktop App
• Package web for Windows, Mac, etc
• Like Adobe Air, without Flash Player
• Great for rapid prototyping
• Leverage existing markup and code
• Don’t have the same limitations of
browser
• File system access
• Relaxed cross domain policy
Hybrid Desktop App Solutions
• Electron (by GitHub)
• Windows, Mac, Linux
• Built on Node.js, Chromium
• NW.js
• Leverage node modules from DOM
• More Chrome Apps and API support
• AppJS
• No longer under development
TESTING
Benefits of Testing
• Match design specifications
• Catch regression
• Think like a user
• Find bugs before users do
• Reduce cost
• Improve quality
Types of Tests
• Functional/On device
• Load testing
• User Observation
• Acceptance
• Unit
• Integration
• End-to-End
Manual Testing
• Functional
• Ensure correct function
• Load Testing
• Verify acceptable user quantity
• User Observation
• Improve user experience
• Acceptance
• Meets all requirements (final before release)
Automated Testing
• Unit Tests
• Test isolated“unit” of code (ex. a
function)
• Integration Tests
• Test units interaction with each
other
• End-to-End Tests
• Simulate user and test complete
application flow from start to finish
Automated Testing
• Test Suite
• Collection of automated tests
• Easy to run, run often!
• Before, During, After coding
• Test Driven Development
• Write tests then code to test
• Write once, run on multiple devices
• Budget time for testing
Testing Tools
• Selenium
• Karma - Unit/Integration
• Protractor - End-to-End
• Jasmine, Mocha, QUnit
• Keynote
• Rent real mobile devices in cloud
• Many more…
REVIEWING	
&	
REPORTING
Review code and performance
during submission and deployment
Code Reviews
• Mentor or Senior Developer
• Frequently
• Each submission, each feature
• Talk about
• Why
• Alternatives
• Best ways to continue learning:
• Syntax, Performance, Logic, Debugging, etc
Automated Bug Reporting
• Catches JavaScript Errors
• Stores errors in cloud
• Notifications
• Best
• Metrics
• Breadcrumbs
• Map files for useful stack traces
• Mark as resolved
Logging
• DVR for your application
• Log as much as possible
• Include logs with bug reports
• Who was the user?
• Where in the app were they at the
time?
• Where have they been?
• What data was received from server?
RELIABILITY
Reliable Applications Work
Everywhere for Everyone
Reliability
• Scalable
• Distributed
• Broad Device Support
Scalability
• Load test first and often
• ex. BlazeMeter
• Use CDNs for assets and libraries
• Consider a reliable Proxy
• ex. CloudFlare
• Own your CDN content
• Own your APIs if possible
• Cache public APIs if you can’t own them
Distributed
• Regional Servers
• Not a replacement for scalability
• Each Region Should Scale
• Cloud Infrastructure
• Amazon Web Services
• Google Cloud Platform
• Azure, OpenStack, etc…
Broad Device Support
• People want to use everywhere
• Desktop, Phone, Tablet, etc
• Minimize decisions that will limit
where application can be used
• Phone will soon be primary device
for majority of users
PERFORMANCE
Performance
• Well built applications are fast
• Performance is a feature
• Reduce data transfer and requests
• Minimize code
• Modularize code
• Compress images
• CSS Sprite Sheets
Performance
• Look for a fast framework
• React
• Angular 2
• Measure speed before/after each
• major code addition
• major change/refactor
• Use framework best practices
• Play with and Measure different solutions
DEVELOPMENT	
OPERATIONS	
(DEVOPS)
Software Development
+
Software Delivery Process
=
Development Operations
Development Operations
• Code Management
• Continuous Integration
• Automated Testing
• Package
• Release
• Configuration
• Monitoring
Code Management
• Source Control
• Git, SVN, Mercurial, Perforce…
• Branch Code
• Branch Process
• Automation
• Boilerplate/Generator
• ex. Angular-CLI
Source Control
• Git Preferred
• GitHub
• BitBucket
• Continuous Integration
• Branch and Release Process
• GitFlow
Continuous Integration (CI)
• Brings everything together…
• Compile code
• Minimize Code
• Compress Images
• Run automated tests and linting
• Send failure notifications
• Dashboards
• Store build metrics
Continuous Integration Products
• Jenkins (free, open source)
• TeamCity
• Bamboo/Pipelines
CONCLUSION
• Angular 2
• Angular CLI
• BugSnag + Mixpanel
• ng-bootstrap
• Jasmine, Karma, Protractor
• Bitbucket + Bamboo
Preferred
Front-End Stack
• Culture of Quality
• Test driven development
• Code reviews
• Observe users
• Automate bug collection
• Own CDN and API
• Use fast framework
• Measure and analyze performance
• Budget time for all of these things!
Best Practices
SUCCESS
sales@dev6.com
1-866-464-7790
Leaders in Enterprise Web Applications
and Full-Stack Development Training
DEV6.com
@dev6tweet

Contenu connexe

Tendances

JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 TakeawaysMir Ali
 
Next generation frontend tooling
Next generation frontend toolingNext generation frontend tooling
Next generation frontend toolingpksjce
 
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLHigh Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLSteve Purkis
 
A tale of 3 databases
A tale of 3 databasesA tale of 3 databases
A tale of 3 databasesChris Skardon
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentIrfan Maulana
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?Weng Wei
 
Afrimadoni the power of docker
Afrimadoni   the power of dockerAfrimadoni   the power of docker
Afrimadoni the power of dockerPHP Indonesia
 
How NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeRadosław Scheibinger
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsAchievers Tech
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?Netlight Consulting
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack DiscussionZaiyang Li
 
Webpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need itWebpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need itMike Wilcox
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsDor Kalev
 
Tech Stack Ideas
Tech Stack IdeasTech Stack Ideas
Tech Stack Ideasnsclark
 

Tendances (20)

Gatsby intro
Gatsby introGatsby intro
Gatsby intro
 
JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 Takeaways
 
Next generation frontend tooling
Next generation frontend toolingNext generation frontend tooling
Next generation frontend tooling
 
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLHigh Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
 
A tale of 3 databases
A tale of 3 databasesA tale of 3 databases
A tale of 3 databases
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?
 
Javascript for Wep Apps
Javascript for Wep AppsJavascript for Wep Apps
Javascript for Wep Apps
 
Afrimadoni the power of docker
Afrimadoni   the power of dockerAfrimadoni   the power of docker
Afrimadoni the power of docker
 
How NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscape
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
 
Webpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need itWebpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need it
 
2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Iconus 2016
Iconus 2016Iconus 2016
Iconus 2016
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page Applications
 
Tech Stack Ideas
Tech Stack IdeasTech Stack Ideas
Tech Stack Ideas
 

En vedette

Javascript Libraries & Frameworks | Connor Goddard
Javascript Libraries & Frameworks | Connor GoddardJavascript Libraries & Frameworks | Connor Goddard
Javascript Libraries & Frameworks | Connor GoddardConnor Goddard
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...
(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...
(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...Amazon Web Services
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)Andrew Barickman
 
JavaOne 2014: Java vs JavaScript
JavaOne 2014:   Java vs JavaScriptJavaOne 2014:   Java vs JavaScript
JavaOne 2014: Java vs JavaScriptChris Bailey
 
Java vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJava vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJAXLondon_Conference
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsPiyush Katariya
 
Choosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentChoosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentEdward Apostol
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 
Webinar AWS 201 Delivering apps without servers
Webinar AWS 201 Delivering apps without serversWebinar AWS 201 Delivering apps without servers
Webinar AWS 201 Delivering apps without serversAmazon Web Services
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewDiacode
 
Charity apprentice logo-blue-6675
Charity apprentice logo-blue-6675Charity apprentice logo-blue-6675
Charity apprentice logo-blue-6675FITC
 
Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)Addy Osmani
 
Hardware for a_soft_world_bkup
Hardware for a_soft_world_bkupHardware for a_soft_world_bkup
Hardware for a_soft_world_bkupFITC
 
A New Era for Animators
A New Era for AnimatorsA New Era for Animators
A New Era for AnimatorsFITC
 
5 Things Every Designer Should be Doing Right Now
5 Things Every Designer Should be Doing Right Now5 Things Every Designer Should be Doing Right Now
5 Things Every Designer Should be Doing Right NowFITC
 
CSS: A Slippery Slope to the Backend
CSS: A Slippery Slope to the BackendCSS: A Slippery Slope to the Backend
CSS: A Slippery Slope to the BackendFITC
 
Managing The Process
Managing The ProcessManaging The Process
Managing The ProcessFITC
 
Learning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg BorensteinLearning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg BorensteinFITC
 

En vedette (20)

Javascript Libraries & Frameworks | Connor Goddard
Javascript Libraries & Frameworks | Connor GoddardJavascript Libraries & Frameworks | Connor Goddard
Javascript Libraries & Frameworks | Connor Goddard
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...
(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...
(DEV306) Building Cross-Platform Applications Using the AWS SDK for JavaScrip...
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)
 
Javascript libraries
Javascript librariesJavascript libraries
Javascript libraries
 
JavaOne 2014: Java vs JavaScript
JavaOne 2014:   Java vs JavaScriptJavaOne 2014:   Java vs JavaScript
JavaOne 2014: Java vs JavaScript
 
Java vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJava vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris Bailey
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise Applications
 
Choosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentChoosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for Development
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
Webinar AWS 201 Delivering apps without servers
Webinar AWS 201 Delivering apps without serversWebinar AWS 201 Delivering apps without servers
Webinar AWS 201 Delivering apps without servers
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
Charity apprentice logo-blue-6675
Charity apprentice logo-blue-6675Charity apprentice logo-blue-6675
Charity apprentice logo-blue-6675
 
Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)
 
Hardware for a_soft_world_bkup
Hardware for a_soft_world_bkupHardware for a_soft_world_bkup
Hardware for a_soft_world_bkup
 
A New Era for Animators
A New Era for AnimatorsA New Era for Animators
A New Era for Animators
 
5 Things Every Designer Should be Doing Right Now
5 Things Every Designer Should be Doing Right Now5 Things Every Designer Should be Doing Right Now
5 Things Every Designer Should be Doing Right Now
 
CSS: A Slippery Slope to the Backend
CSS: A Slippery Slope to the BackendCSS: A Slippery Slope to the Backend
CSS: A Slippery Slope to the Backend
 
Managing The Process
Managing The ProcessManaging The Process
Managing The Process
 
Learning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg BorensteinLearning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg Borenstein
 

Similaire à Building Enterprise Grade Front-End Applications with JavaScript Frameworks

Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotchaphegaro
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularMark Leusink
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud ComputingITviec
 
A night at the spa
A night at the spaA night at the spa
A night at the spaChris Love
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserAutodesk
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Adam Mokan
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...Alexander Meijers
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadSoftware Guru
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Web Automation Testing for developers?
Web Automation Testing for developers?Web Automation Testing for developers?
Web Automation Testing for developers?Victor Kushchenko
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBrian Benz
 
Angular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and WorkshopAngular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and WorkshopNitin Bhojwani
 

Similaire à Building Enterprise Grade Front-End Applications with JavaScript Frameworks (20)

Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotcha
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
 
A night at the spa
A night at the spaA night at the spa
A night at the spa
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the Browser
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Web Automation Testing for developers?
Web Automation Testing for developers?Web Automation Testing for developers?
Web Automation Testing for developers?
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
Angular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and WorkshopAngular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and Workshop
 
JetvsAdf
JetvsAdfJetvsAdf
JetvsAdf
 

Plus de FITC

Cut it up
Cut it upCut it up
Cut it upFITC
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital HealthFITC
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript PerformanceFITC
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech StackFITC
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR ProjectFITC
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerFITC
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryFITC
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday InnovationFITC
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight WebsitesFITC
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is TerrifyingFITC
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanFITC
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)FITC
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameFITC
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare SystemFITC
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignFITC
 
The Power of Now
The Power of NowThe Power of Now
The Power of NowFITC
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAsFITC
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstackFITC
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFITC
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForFITC
 

Plus de FITC (20)

Cut it up
Cut it upCut it up
Cut it up
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital Health
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript Performance
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR Project
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the Answer
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s Story
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday Innovation
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight Websites
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is Terrifying
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future Human
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR Game
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare System
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product Design
 
The Power of Now
The Power of NowThe Power of Now
The Power of Now
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAs
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstack
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self Discovery
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time For
 

Dernier

Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...sonatiwari757
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistKHM Anwar
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Dernier (20)

Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization Specialist
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 

Building Enterprise Grade Front-End Applications with JavaScript Frameworks

  • 1. Building Enterprise Grade Front-End Apps with Javascript Frameworks
  • 2. Chad Upton • Senior Consultant @ DEV6 • Developing websites for 20+ years • Won Webby Award and W3 Award • Wrote Adobe’s Advanced Video Course Leaders in Enterprise Web Applica2ons and Full- Stack Development Training DEV6.com @dev6tweet@chadupton
  • 3. Outline • Choosing a Framework • Platforms • Testing • Reviewing and Reporting • Scale • Performance • DevOps
  • 5. What does that even mean? Enterprise • Complex • Scalable • Distributed • Component-Based • Mission Critical
  • 6. Complex? • jQuery is great for small apps and utilities within large apps • Making a small app complex does not make it Enterprise • Complex is not the goal • Complex is a result of a feature rich application • Complex is maintainable when the code is well organized
  • 7. Scalable • Grow with user volume • Grow beyond a single • database • app server • etc
  • 8. Distributed • Grow with user distribution • Grow beyond a single data center location • Cross platform
  • 9. Component-Based • More testable • More iterative • Easier to update • More collaborative • More maintainable
  • 10. Mission Critical • App is down, revenue is down • App stability reflects image of business • Quality
  • 13. What is a Framework? • Vehicle that takes a project from start to finish • You pilot the vehicle successfully (or not) • Reusable abstractions that help structure application • Vary in rigidity or opinion/freedom • Recipe for building an application • Standardization for current and future collaborators • Toolset for previously solved problems
  • 14. Why use a Framework?
  • 16. Component-Based 80% Frameworks drive component-based architecture, making apps more: testable, iterative, updatable, collaborative and fixable
  • 18. The Perfect Framework • No perfect framework • You will always require more or less • Closest fit for your architectural style • Not going to be perfect here either • Has most features your project needs • Compatible with other features needed
  • 19. Project Needs • Localization? • Internationalization? • Reusable Components? • Template Syntax? • Dependency Injection? • Module loading? • etc
  • 20. Framework or DIY • Multiple libraries may give you more flexibility • Multiple libraries could be smaller/ faster than one large framework • One framework that does everything will likely have fewer problems down the road
  • 21. Tooling • Code generator • Build scripting/helper • IDE Integration • Easy to deploy/test locally
  • 22. Popularity • Community of developers • 3rd Party Components • Training • Books • Official Support
  • 24. Angular • Huge developer community • 3rd party components • Training, Books, Tutorials, Examples • Good documentation • Official support from Google
  • 25. Angular 2 Features • Router • Code Splitting/Module Loading • Dependency Injection • Animation • Ahead-of-Time Compilation • Testing framework • Browser Inspector • Command Line Interface (CLI)
  • 26. React • Nearly as many features as Angular • More of a library than a framework • Inline components/templates • Less opinionated than Angular • More 3rd party libs usually required • Routing, Testing, etc • Smart diff rendering (fast)
  • 27. Backbone • Library, not framework • Underscore.js • jQuery • Router • Data Bindings • Unopinionated • No Logic in HTML • No HTML in Code
  • 28. Ember.js • Similar to Angular, full framework • Router • Testing Framework • Inspector (browser add-on) • CLI with code generation • Dependency Injection • Persistent services
  • 31. Platform Criteria • Who is going to use your app? • How are they going to use it (ex. offline)? • What kind of devices do they have? • Are web browsers capable enough? • Does your app need GPS? • etc…
  • 32. Platform Environments • Desktop/Laptops • Mobile Phones/Tablets • Kiosks • Set top boxes • etc…
  • 33. Platform Types • Web App • AKA “Progressive Web App” • Hybrid Mobile App • Packaged for iOS, Android, etc • Hybrid Desktop App • Package for Windows, Mac, etc
  • 34. Web App • Client Processed • Most common type of web app in use • Easy to build, update and serve • HTML, CSS, JavaScript + Frameworks, Libraries, etc • Server Processed • Varying degrees of server processing • Server may process CSS, State and/or layout, all the way to: • Page looks to web browser like a static HTML page
  • 35. Server Processed • Better search indexing than Client Processed Single Page Applications • Initial render typically faster than client processed • Fewer downloads/network operations • Some content is pre-rendered • Favorable to teams with greater backend skills
  • 36. • Angular • node.js, PhantomJS • React • node.js, C#/ASP.NET, Nashorn (Java) • Backbone • Rendr = Open source option from AirBNB Server Processed Frameworks
  • 37. Mobile Browser Optimized • Responsive and Adaptive Design • Layout is programmed to change based on screen/window size • Best for Search Engine Optimization • Dynamic Serving • Server renders different layout/content based on screen size • Separate URLs • Mobile users directed to a mobile website • Not recommended
  • 38. Hybrid Mobile App • Packaged for iOS, Android, etc • Created with HTML, CSS, JavaScript, Frameworks, Libraries, etc • Container tool to embed web app in a native mobile container • Typically installed from Google Play, Apple App Store, etc…
  • 39. Why Hybrid Mobile App? • Leverage existing web skills or code • Need additional capabilities of a mobile app • Update UI, Logic, Data without submitting updates through store • Not all scenarios allowed on all platforms
  • 40. Hybrid Mobile App Packagers • Cordova • Free and OpenSource • Adobe PhoneGap • Cordova + more tooling, plugins, services • Ionic Framework • Build on Angular, Runs in Cordova or PhoneGap • Cloud services • NativeScript
  • 41. NativeScript • Real native app • Not a web app • Web content and controls converted to native content and controls • One codebase matches native apps • Controls look and work exactly like native controls, because they are!
  • 42. Hybrid Desktop App • Package web for Windows, Mac, etc • Like Adobe Air, without Flash Player • Great for rapid prototyping • Leverage existing markup and code • Don’t have the same limitations of browser • File system access • Relaxed cross domain policy
  • 43. Hybrid Desktop App Solutions • Electron (by GitHub) • Windows, Mac, Linux • Built on Node.js, Chromium • NW.js • Leverage node modules from DOM • More Chrome Apps and API support • AppJS • No longer under development
  • 45. Benefits of Testing • Match design specifications • Catch regression • Think like a user • Find bugs before users do • Reduce cost • Improve quality
  • 46. Types of Tests • Functional/On device • Load testing • User Observation • Acceptance • Unit • Integration • End-to-End
  • 47. Manual Testing • Functional • Ensure correct function • Load Testing • Verify acceptable user quantity • User Observation • Improve user experience • Acceptance • Meets all requirements (final before release)
  • 48. Automated Testing • Unit Tests • Test isolated“unit” of code (ex. a function) • Integration Tests • Test units interaction with each other • End-to-End Tests • Simulate user and test complete application flow from start to finish
  • 49. Automated Testing • Test Suite • Collection of automated tests • Easy to run, run often! • Before, During, After coding • Test Driven Development • Write tests then code to test • Write once, run on multiple devices • Budget time for testing
  • 50. Testing Tools • Selenium • Karma - Unit/Integration • Protractor - End-to-End • Jasmine, Mocha, QUnit • Keynote • Rent real mobile devices in cloud • Many more…
  • 52. Review code and performance during submission and deployment
  • 53. Code Reviews • Mentor or Senior Developer • Frequently • Each submission, each feature • Talk about • Why • Alternatives • Best ways to continue learning: • Syntax, Performance, Logic, Debugging, etc
  • 54. Automated Bug Reporting • Catches JavaScript Errors • Stores errors in cloud • Notifications • Best • Metrics • Breadcrumbs • Map files for useful stack traces • Mark as resolved
  • 55. Logging • DVR for your application • Log as much as possible • Include logs with bug reports • Who was the user? • Where in the app were they at the time? • Where have they been? • What data was received from server?
  • 59. Scalability • Load test first and often • ex. BlazeMeter • Use CDNs for assets and libraries • Consider a reliable Proxy • ex. CloudFlare • Own your CDN content • Own your APIs if possible • Cache public APIs if you can’t own them
  • 60. Distributed • Regional Servers • Not a replacement for scalability • Each Region Should Scale • Cloud Infrastructure • Amazon Web Services • Google Cloud Platform • Azure, OpenStack, etc…
  • 61. Broad Device Support • People want to use everywhere • Desktop, Phone, Tablet, etc • Minimize decisions that will limit where application can be used • Phone will soon be primary device for majority of users
  • 62.
  • 64. Performance • Well built applications are fast • Performance is a feature • Reduce data transfer and requests • Minimize code • Modularize code • Compress images • CSS Sprite Sheets
  • 65. Performance • Look for a fast framework • React • Angular 2 • Measure speed before/after each • major code addition • major change/refactor • Use framework best practices • Play with and Measure different solutions
  • 67. Software Development + Software Delivery Process = Development Operations
  • 68. Development Operations • Code Management • Continuous Integration • Automated Testing • Package • Release • Configuration • Monitoring
  • 69. Code Management • Source Control • Git, SVN, Mercurial, Perforce… • Branch Code • Branch Process • Automation • Boilerplate/Generator • ex. Angular-CLI
  • 70. Source Control • Git Preferred • GitHub • BitBucket • Continuous Integration • Branch and Release Process • GitFlow
  • 71. Continuous Integration (CI) • Brings everything together… • Compile code • Minimize Code • Compress Images • Run automated tests and linting • Send failure notifications • Dashboards • Store build metrics
  • 72.
  • 73. Continuous Integration Products • Jenkins (free, open source) • TeamCity • Bamboo/Pipelines
  • 75. • Angular 2 • Angular CLI • BugSnag + Mixpanel • ng-bootstrap • Jasmine, Karma, Protractor • Bitbucket + Bamboo Preferred Front-End Stack
  • 76. • Culture of Quality • Test driven development • Code reviews • Observe users • Automate bug collection • Own CDN and API • Use fast framework • Measure and analyze performance • Budget time for all of these things! Best Practices SUCCESS
  • 77. sales@dev6.com 1-866-464-7790 Leaders in Enterprise Web Applications and Full-Stack Development Training DEV6.com @dev6tweet