SlideShare a Scribd company logo
1 of 16
Introduction to Full-Stack
JavaScript
Presenter: Vageesh Bhasin, Mindfire Solutions
Date: 12 – May – 2014
Presenter: Vageesh Bhasin, Mindfire Solutions
About Me
By Profession:
 Current - Quality Analyst with Mindfire – Web Application Testing
 Prior - Quality Analyst with Infosys – Database Testing
By Hobby:
 Web application development
 Reading, learning and implementing newer technologies
Contact Me:
 Facebook: Link
 LinkedIn: Link
 My Blog: Link
 Email: vageesh_bhasin@outlook.com ,
vageeshb@mindfiresolutions.com
Agenda
 Introduction to JavaScript
 Why I chose to use JavaScript?
 Full-Stack JavaScript Components
 Work-flow Management Tools
 Demo on creating a small app
Presenter: Vageesh Bhasin, Mindfire Solutions
Introduction to JavaScript
 Is a Dynamic Programming Language
 Most commonly used in web browsers to allow client-side scripts to interact
with the users
 Syntax is related to C and copies many name and naming conventions from
JAVA
 But is otherwise unrelated to JAVA
 Can be used outside of browsers and with the influx of newer VMs and
platforms (notably Node.js), popularity of using JS at server-side has
increased
Presenter: Vageesh Bhasin, Mindfire Solutions
Why I chose to use JavaScript
 Started with my application development hobby with Ruby on Rails
 Learned fundamentals and architectural patterns – MVC, MVW*, etc.
 Had to learn client side libraries for user interaction and DOM manipulation
 Client-side Language vs Server-side Language:
 Different syntax
 Different semantics
 Total chaos :(
 The idea behind unified language on both sides:
 Homogenous programming experience
 Enables reuse of components and resources
 One language to rule them all (LoTR reference :) )
 Popularity rise because of Node.js, puts JS on server-side and also promotes Non-
blocking programming
 JS is the INTERNET
 VBScript's replacement to TypeScript (Compiles to JS)
 Flash's demise due to HTML5 and mobile market
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript – High Level Overview
Client
Middleware
Server
Database
1
2
3
4
5
6
1. User Interactions
2. HTTP Requests
3. DB Queries
4. DB Response / JS Objects
5. JSON
6. DOM Updates
Full-Stack JavaScript Components – Server
 Node.js -
 Server-side JS Platform – Not just a SSJS
 Non-blocking I/O and asynchronous events
 Internally uses Google's V8 JavaScript engine
Example to create HTTP server using Node.js:
var http = require('http');
http.createServer(
function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Worldn');
}
).listen(8000);
console.log('Server running at http://localhost:8000/');
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript Components – Server Components
 Server Components or Middleware are part of the pipeline
 The pipeline processes a request and generates a response
 A middleware component only addresses a part of a request and generates
only a part of a response
 It then delegates to the next piece in the pipeline
 When the last piece finishes processing, the response is sent to the client
 ExpressJS:
 A Node.js application framework that helps in building SPAs, MPAs and Hybrid
Applications
 A minimalistic and flexible framework
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript Components – Database
 A database that uses JavaScript as its query language
 MongoDB:
 A document-oriented NoSQL Database
 Stores documents in BSON format
 Written in C++
 Developed by 10gen (now MongoDB Inc.)
 CouchDB:
 A NoSQL Database that stores data in JSON format
 Written in Erlang
 Opensource under Apache
 Personally use MongoDB in my development projects
Example of querying in MongoDB
db.people.find( { name : 'Vageesh' } ); // db.collection_name.find( { query_parameters } );
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript Components – Client-Side
 There are many Client-Side frameworks to choose from to create SPAs
 The top three frameworks are:
 Angular.js
 Maintained by Google and Community
 Based on MVC design paradigm
 Only requires JS, HTML and CSS on client side
 Backbone.js
 Made by Jeremy Ashkenas (Created CoffeeScript and Underscore.js also)
 Not a complete framework but a library
 Based on MVP design paradigm
 Combine with Marionette.js to simplify construction of large scale SPAs
 Ember.js
 Made by Yehuda Katz (Core contributor of jQuery, RoR, SproutCore), Tom
Dale and community contributors
 Based on MVC design paradigm
 Uses templating library – Handlebars.js
 Which is best for you? Visit http://todomvc.com/
Presenter: Vageesh Bhasin, Mindfire Solutions
Workflow Management Tools
 Why do we need workflow management tools?
 Helps get started
 Maintains dependencies
 Enforces best practices
 Prepares your tools
 Fights regression
 Eases release process
 How to get Started?
 Seed projects – MEAN seeds, Ember seeds
 Generators – YEOMAN
 Git repositories – Personal or community repositories
 Maintain dependencies?
 Front-end package manager – Bower
 Back-end package manager – NPM
 Build your code and automate tasks?
 Grunt – Wider community support
 Gulp – Faster and simple
 Both are equally powerful
Presenter: Vageesh Bhasin, Mindfire Solutions
Workflow Management Tools – Contd.
 Testing:
 Test-Driven Development – Mocha
 Behavior-Driven Development – Jasmine
 Test runner – Karma
 Plenty of other testing and assertion libraries to choose from
 Browser Tools:
 Use Chrome dev tools plugins
 Use Firebug
 Use Ember plugin (for Ember.js debugging)
• Writing Code:
 IDEs - Eclipse(Nodeclipse & Enide), JetBrains plugin
 Text Editors – Sublime Text, VIM, Brackets
Presenter: Vageesh Bhasin, Mindfire Solutions
DEMO
Presenter: Vageesh Bhasin, Mindfire Solutions
Question and Answer
Presenter: Vageesh Bhasin, Mindfire Solutions
www.mindfiresolutions.com
https://www.facebook.com/MindfireSolutions
http://www.linkedin.com/company/mindfire-solutions
http://twitter.com/mindfires
Thank you

More Related Content

What's hot

Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
Rob Davarnia
 

What's hot (20)

Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMSMoving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page Apps
 
Web Applications Development with MEAN Stack
Web Applications Development with MEAN StackWeb Applications Development with MEAN Stack
Web Applications Development with MEAN Stack
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
 
Mean stack
Mean stackMean stack
Mean stack
 
Get MEAN! Node.js and the MEAN stack
Get MEAN!  Node.js and the MEAN stackGet MEAN!  Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
 
Keystone.js 101
Keystone.js 101Keystone.js 101
Keystone.js 101
 
Host, deploy & scale Blazor Server Apps
Host, deploy & scale Blazor Server AppsHost, deploy & scale Blazor Server Apps
Host, deploy & scale Blazor Server Apps
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
Introduction to the MEAN stack
Introduction to the MEAN stackIntroduction to the MEAN stack
Introduction to the MEAN stack
 
JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
 
Meanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraMeanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore Chandra
 
A Gentle Introduction to Blazor
A Gentle Introduction to BlazorA Gentle Introduction to Blazor
A Gentle Introduction to Blazor
 
Gatsby intro
Gatsby introGatsby intro
Gatsby intro
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJS
 
Azure Serverless Conf
Azure Serverless ConfAzure Serverless Conf
Azure Serverless Conf
 

Viewers also liked

Creating Low Fidelity Prototypes
Creating Low Fidelity PrototypesCreating Low Fidelity Prototypes
Creating Low Fidelity Prototypes
Valeria Gasik
 
Importance of Wireframes in Web Design
Importance of Wireframes in Web DesignImportance of Wireframes in Web Design
Importance of Wireframes in Web Design
Hitesh Mehta
 

Viewers also liked (20)

St low fidelity prototype v2
St   low fidelity prototype v2St   low fidelity prototype v2
St low fidelity prototype v2
 
GBL
GBLGBL
GBL
 
How to Visualize a Business
How to Visualize a BusinessHow to Visualize a Business
How to Visualize a Business
 
Practical Product Innovation - Sydney CTO Summit
Practical Product Innovation - Sydney CTO SummitPractical Product Innovation - Sydney CTO Summit
Practical Product Innovation - Sydney CTO Summit
 
Blog-based courses in higher education: experience from Tallinn University
Blog-based courses in higher education: experience from Tallinn UniversityBlog-based courses in higher education: experience from Tallinn University
Blog-based courses in higher education: experience from Tallinn University
 
Build Low Fidelity Wireframes
Build Low Fidelity WireframesBuild Low Fidelity Wireframes
Build Low Fidelity Wireframes
 
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Open Source Thinking Tools in Digital Product Design- VIBE WIRE Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
 
Paper to prototype, or.... How I learned to stop worrying and love Science
Paper to prototype, or.... How I learned to stop worrying and love SciencePaper to prototype, or.... How I learned to stop worrying and love Science
Paper to prototype, or.... How I learned to stop worrying and love Science
 
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
 
Sketching UX: Low-Fidelity Method; High-Fidelity Results
Sketching UX: Low-Fidelity Method; High-Fidelity ResultsSketching UX: Low-Fidelity Method; High-Fidelity Results
Sketching UX: Low-Fidelity Method; High-Fidelity Results
 
How To Write An Awesome Blog Post
How To Write An Awesome Blog PostHow To Write An Awesome Blog Post
How To Write An Awesome Blog Post
 
Paper to-prototype
Paper to-prototypePaper to-prototype
Paper to-prototype
 
Write awesome personalized donor thank you emails using GlobalGiving and Face...
Write awesome personalized donor thank you emails using GlobalGiving and Face...Write awesome personalized donor thank you emails using GlobalGiving and Face...
Write awesome personalized donor thank you emails using GlobalGiving and Face...
 
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
 
Low Fidelity Prototype
Low Fidelity PrototypeLow Fidelity Prototype
Low Fidelity Prototype
 
AgileCamp Silicon Valley 2015: One Dollar Prototype
AgileCamp Silicon Valley 2015: One Dollar PrototypeAgileCamp Silicon Valley 2015: One Dollar Prototype
AgileCamp Silicon Valley 2015: One Dollar Prototype
 
Personas in Interaction Design
Personas in Interaction DesignPersonas in Interaction Design
Personas in Interaction Design
 
Creating Low Fidelity Prototypes
Creating Low Fidelity PrototypesCreating Low Fidelity Prototypes
Creating Low Fidelity Prototypes
 
Importance of Wireframes in Web Design
Importance of Wireframes in Web DesignImportance of Wireframes in Web Design
Importance of Wireframes in Web Design
 
Demystifying User Experience - General Assembly
Demystifying User Experience - General AssemblyDemystifying User Experience - General Assembly
Demystifying User Experience - General Assembly
 

Similar to Introduction to JavaScript Full Stack

Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
ResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedInResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedIn
Michael Berger
 
RajeshBalu_Resume
RajeshBalu_ResumeRajeshBalu_Resume
RajeshBalu_Resume
Rajesh Balu
 
Diwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI DeveloperDiwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI Developer
diwyanshu
 

Similar to Introduction to JavaScript Full Stack (20)

Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web Technologies
 
State of modern web technologies: an introduction
State of modern web technologies: an introductionState of modern web technologies: an introduction
State of modern web technologies: an introduction
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
Bootstrap or React for Front-End Web Development.pdf
Bootstrap or React for Front-End Web Development.pdfBootstrap or React for Front-End Web Development.pdf
Bootstrap or React for Front-End Web Development.pdf
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
AseemMahajan_Resume
AseemMahajan_ResumeAseemMahajan_Resume
AseemMahajan_Resume
 
ResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedInResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedIn
 
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
 
Front End Lecture 1.pptx
Front End Lecture 1.pptxFront End Lecture 1.pptx
Front End Lecture 1.pptx
 
RajeshBalu_Resume
RajeshBalu_ResumeRajeshBalu_Resume
RajeshBalu_Resume
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Dineshotham Kumar Khambhammettu
Dineshotham Kumar KhambhammettuDineshotham Kumar Khambhammettu
Dineshotham Kumar Khambhammettu
 
Diwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI DeveloperDiwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI Developer
 
All You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfAll You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdf
 
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
Asp Net Vs Vue JS Which One You Should Choose for Development.pdfAsp Net Vs Vue JS Which One You Should Choose for Development.pdf
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Angular JS Basics
Angular JS BasicsAngular JS Basics
Angular JS Basics
 

More from Mindfire Solutions

More from Mindfire Solutions (20)

Physician Search and Review
Physician Search and ReviewPhysician Search and Review
Physician Search and Review
 
diet management app
diet management appdiet management app
diet management app
 
Business Technology Solution
Business Technology SolutionBusiness Technology Solution
Business Technology Solution
 
Remote Health Monitoring
Remote Health MonitoringRemote Health Monitoring
Remote Health Monitoring
 
Influencer Marketing Solution
Influencer Marketing SolutionInfluencer Marketing Solution
Influencer Marketing Solution
 
ELMAH
ELMAHELMAH
ELMAH
 
High Availability of Azure Applications
High Availability of Azure ApplicationsHigh Availability of Azure Applications
High Availability of Azure Applications
 
IOT Hands On
IOT Hands OnIOT Hands On
IOT Hands On
 
Glimpse of Loops Vs Set
Glimpse of Loops Vs SetGlimpse of Loops Vs Set
Glimpse of Loops Vs Set
 
Oracle Sql Developer-Getting Started
Oracle Sql Developer-Getting StartedOracle Sql Developer-Getting Started
Oracle Sql Developer-Getting Started
 
Adaptive Layout In iOS 8
Adaptive Layout In iOS 8Adaptive Layout In iOS 8
Adaptive Layout In iOS 8
 
Introduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/MacIntroduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/Mac
 
LINQPad - utility Tool
LINQPad - utility ToolLINQPad - utility Tool
LINQPad - utility Tool
 
Get started with watch kit development
Get started with watch kit developmentGet started with watch kit development
Get started with watch kit development
 
Swift vs Objective-C
Swift vs Objective-CSwift vs Objective-C
Swift vs Objective-C
 
Material Design in Android
Material Design in AndroidMaterial Design in Android
Material Design in Android
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
 
Ext js Part 2- MVC
Ext js Part 2- MVCExt js Part 2- MVC
Ext js Part 2- MVC
 
ExtJs Basic Part-1
ExtJs Basic Part-1ExtJs Basic Part-1
ExtJs Basic Part-1
 
Spring Security Introduction
Spring Security IntroductionSpring Security Introduction
Spring Security Introduction
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Recently uploaded (20)

IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 

Introduction to JavaScript Full Stack

  • 1. Introduction to Full-Stack JavaScript Presenter: Vageesh Bhasin, Mindfire Solutions Date: 12 – May – 2014
  • 2. Presenter: Vageesh Bhasin, Mindfire Solutions About Me By Profession:  Current - Quality Analyst with Mindfire – Web Application Testing  Prior - Quality Analyst with Infosys – Database Testing By Hobby:  Web application development  Reading, learning and implementing newer technologies Contact Me:  Facebook: Link  LinkedIn: Link  My Blog: Link  Email: vageesh_bhasin@outlook.com , vageeshb@mindfiresolutions.com
  • 3. Agenda  Introduction to JavaScript  Why I chose to use JavaScript?  Full-Stack JavaScript Components  Work-flow Management Tools  Demo on creating a small app Presenter: Vageesh Bhasin, Mindfire Solutions
  • 4. Introduction to JavaScript  Is a Dynamic Programming Language  Most commonly used in web browsers to allow client-side scripts to interact with the users  Syntax is related to C and copies many name and naming conventions from JAVA  But is otherwise unrelated to JAVA  Can be used outside of browsers and with the influx of newer VMs and platforms (notably Node.js), popularity of using JS at server-side has increased Presenter: Vageesh Bhasin, Mindfire Solutions
  • 5. Why I chose to use JavaScript  Started with my application development hobby with Ruby on Rails  Learned fundamentals and architectural patterns – MVC, MVW*, etc.  Had to learn client side libraries for user interaction and DOM manipulation  Client-side Language vs Server-side Language:  Different syntax  Different semantics  Total chaos :(  The idea behind unified language on both sides:  Homogenous programming experience  Enables reuse of components and resources  One language to rule them all (LoTR reference :) )  Popularity rise because of Node.js, puts JS on server-side and also promotes Non- blocking programming  JS is the INTERNET  VBScript's replacement to TypeScript (Compiles to JS)  Flash's demise due to HTML5 and mobile market Presenter: Vageesh Bhasin, Mindfire Solutions
  • 6. Full-Stack JavaScript – High Level Overview Client Middleware Server Database 1 2 3 4 5 6 1. User Interactions 2. HTTP Requests 3. DB Queries 4. DB Response / JS Objects 5. JSON 6. DOM Updates
  • 7. Full-Stack JavaScript Components – Server  Node.js -  Server-side JS Platform – Not just a SSJS  Non-blocking I/O and asynchronous events  Internally uses Google's V8 JavaScript engine Example to create HTTP server using Node.js: var http = require('http'); http.createServer( function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello Worldn'); } ).listen(8000); console.log('Server running at http://localhost:8000/'); Presenter: Vageesh Bhasin, Mindfire Solutions
  • 8. Full-Stack JavaScript Components – Server Components  Server Components or Middleware are part of the pipeline  The pipeline processes a request and generates a response  A middleware component only addresses a part of a request and generates only a part of a response  It then delegates to the next piece in the pipeline  When the last piece finishes processing, the response is sent to the client  ExpressJS:  A Node.js application framework that helps in building SPAs, MPAs and Hybrid Applications  A minimalistic and flexible framework Presenter: Vageesh Bhasin, Mindfire Solutions
  • 9. Full-Stack JavaScript Components – Database  A database that uses JavaScript as its query language  MongoDB:  A document-oriented NoSQL Database  Stores documents in BSON format  Written in C++  Developed by 10gen (now MongoDB Inc.)  CouchDB:  A NoSQL Database that stores data in JSON format  Written in Erlang  Opensource under Apache  Personally use MongoDB in my development projects Example of querying in MongoDB db.people.find( { name : 'Vageesh' } ); // db.collection_name.find( { query_parameters } ); Presenter: Vageesh Bhasin, Mindfire Solutions
  • 10. Full-Stack JavaScript Components – Client-Side  There are many Client-Side frameworks to choose from to create SPAs  The top three frameworks are:  Angular.js  Maintained by Google and Community  Based on MVC design paradigm  Only requires JS, HTML and CSS on client side  Backbone.js  Made by Jeremy Ashkenas (Created CoffeeScript and Underscore.js also)  Not a complete framework but a library  Based on MVP design paradigm  Combine with Marionette.js to simplify construction of large scale SPAs  Ember.js  Made by Yehuda Katz (Core contributor of jQuery, RoR, SproutCore), Tom Dale and community contributors  Based on MVC design paradigm  Uses templating library – Handlebars.js  Which is best for you? Visit http://todomvc.com/ Presenter: Vageesh Bhasin, Mindfire Solutions
  • 11. Workflow Management Tools  Why do we need workflow management tools?  Helps get started  Maintains dependencies  Enforces best practices  Prepares your tools  Fights regression  Eases release process  How to get Started?  Seed projects – MEAN seeds, Ember seeds  Generators – YEOMAN  Git repositories – Personal or community repositories  Maintain dependencies?  Front-end package manager – Bower  Back-end package manager – NPM  Build your code and automate tasks?  Grunt – Wider community support  Gulp – Faster and simple  Both are equally powerful Presenter: Vageesh Bhasin, Mindfire Solutions
  • 12. Workflow Management Tools – Contd.  Testing:  Test-Driven Development – Mocha  Behavior-Driven Development – Jasmine  Test runner – Karma  Plenty of other testing and assertion libraries to choose from  Browser Tools:  Use Chrome dev tools plugins  Use Firebug  Use Ember plugin (for Ember.js debugging) • Writing Code:  IDEs - Eclipse(Nodeclipse & Enide), JetBrains plugin  Text Editors – Sublime Text, VIM, Brackets Presenter: Vageesh Bhasin, Mindfire Solutions
  • 13. DEMO Presenter: Vageesh Bhasin, Mindfire Solutions
  • 14. Question and Answer Presenter: Vageesh Bhasin, Mindfire Solutions