SlideShare a Scribd company logo
1 of 82
Grown-up JavaScript.
       with AngularJS

              Mykhailo Kotsur
              @sotomajor_ua
We will talk about

• Different ways to build a web-app
• Why in Javascript?
• AngularJS: things that make it rock
• Samples
• Code talks
Multi page application
... Downloading page
... Downloading page

... Rendering page
... Downloading page

... Rendering page       ... Loading external resources
... Downloading page

... Rendering page       ... Loading external resources

               ... Executing scripts
We want:
We want:

Smooth user experience
We want:

Smooth user experience
  Unload our servers
Single page application
http://www.flickr.com/photos/60988113@N06/5996111491/sizes/z/in/photostream/




    http://www.lurvely.com/photo/491666425/Thin_tree_at_Lagoinha_Beach/
Thick server
Thick server


- Grab data
                    - Talk to server
- Business stuff
                    - Prepare HTML
- Prepare HTML
Thick server


- Grab data
                    - Talk to server
- Business stuff
                    - Prepare HTML
- Prepare HTML
We want
We want

Smooth experience!
We want
              Also
                 for
                     form
Smooth experience!        s!
We want
              Also
                 for
                     form
Smooth experience!        s!

  Unload servers!
We want
              Also
                 for
                     form
Smooth experience!        s!

  Unload servers!

Simplify development!
We want
              Also
                 for
                     form
Smooth experience!        s!

  Unload servers!

Simplify development!

Make server reusable!
Many clients - one
     server
Thin server



- Grab data           - Talk to server
- Business stuff      - Prepare view
Thin server

                   ?
- Grab data            - Talk to server
- Business stuff       - Prepare view
State
                                                 Transfer
                                                 REpresentational




http://www.flickr.com/photos/film_images/5687432148/
Verbs

POST
 GET
 PUT
DELETE
Verbs

POST     CREATE
 GET      READ
 PUT     UPDATE
DELETE   DELETE
Nouns
 people
Nouns
      people


Content types
      text/xml
     text/html
  application/json
Responses

• 200 - OK
• 201 - Created
• 204 - No content
• 404 - Not found
• ... many more
“Sentences”
GET me /people in format of application/json
“Sentences”
GET me /people in format of application/json

200! Here is your application/json
“Sentences”
GET me /people in format of application/json

200! Here is your application/json
[
  {id: 1, name: “Mike”},
  {id: 2, name: “Tom”}
]
“Sentences”
POST to /people in format of application/json

{name: “Jason”}
“Sentences”
POST to /people in format of application/json

{name: “Jason”}



200! Here is your application/json

{id: 3, name: “Jason”}
Our achievements:
• Happy users
• Less hardware
• Fair responsibility separation
• To be used by many clients
Our achievements:
• Happy users
• Less hardware
• Fair responsibility separation
• To be used by many clients
Any drawbacks?
http://www.flickr.com/photos/chalkbass/2334850242/sizes/z/in/photostream/
                                                                           SEO
What now?

• Data binding
• Routing
• Template engine
• Tests
2.5 years in development
2.5 years in development
Version 1.0 few weeks ago
2.5 years in development
Version 1.0 few weeks ago
Used in Google’s production projects
2.5 years in development
Version 1.0 few weeks ago
Used in Google’s production projects
3 people of core team + hundreds of community
2.5 years in development
Version 1.0 few weeks ago
Used in Google’s production projects
3 people of core team + hundreds of community
Makes web development fun again!
Easy data binding
Easy data binding
Declarative approach
Easy data binding
Declarative approach
Routing and templating
Easy data binding
Declarative approach
Routing and templating
DI and TDD as a design base (15000+ tests)
Easy data binding
Easy data binding
   <h1>Hello, <span id="namePlaceholder"></span></h1>
    <input id="name" type="text">

    <script type="text/javascript">
        $(
            $('#name').keydown(function(e) {
                $('#namePlaceholder').html(e.target.value);
            })
        );
    </script>
<h1>Hello, {{name}}</h1>
<input type="text" ng-model="name">
Declarative approach
<div id="base"></div>

<script type="text/javascript">
  $(
      $([['Ciao', '‫' ,'שלום‬Привіт']]).each( function(k,v) {
          $('#base').append($('<h1>Hello, ' + v + '</h1>'));
      })
  );
</script>
<h1 ng-repeat="n in ['Ciao', '‫' ,'שלום‬Привіт']">
   Hello, {{n}}
</h1>
Routing and templating


   http://example.com/#!/register
???
$routeProvider.when(
  '/example',
  {templateUrl: './js/templates/example.html'}
);
???
var SomeCtrl = function($scope, $element, $location) {
...
}
it('should just work', inject(function($controller) {
     var location = {path: function() {return '/';}}
     $controller(
        TabsCtrl,
        {$scope: scope, $element: base, $location: location}
     );

    expect(something).toBeTruthy();
}));
$httpBackend.whenGET('http://api.com').respond({...});
$httpBackend.whenGET(/.*/).passThrough();
Production examples
Hello world example
 If you read this presentation on your own, checkout the
example from: http://github.com/mkotsur/flatometer and walk thru all
                 steps with http://bit.ly/N2MyVU
                 and read commit messages...
Questions?
                       http://mkotsur.github.com/gitoscop/




http://angularjs.org                        http://github.com/mkotsur/flatometer

More Related Content

What's hot

What is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itWhat is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itBobWP.com
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsHypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsToru Kawamura
 
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011Georgiana Laudi
 
WordCamp Kent 2019 - WP 101: Local Development - Themes and Plugins
WordCamp Kent 2019 - WP 101: Local Development - Themes and PluginsWordCamp Kent 2019 - WP 101: Local Development - Themes and Plugins
WordCamp Kent 2019 - WP 101: Local Development - Themes and PluginsJoe Querin
 
WordCamp Boston 2012 - Creating Content With Shortcodes
WordCamp Boston 2012 - Creating Content With ShortcodesWordCamp Boston 2012 - Creating Content With Shortcodes
WordCamp Boston 2012 - Creating Content With ShortcodesJon Bishop
 
电子商务网站前端开放实战
电子商务网站前端开放实战电子商务网站前端开放实战
电子商务网站前端开放实战macji
 
D2-超级旺铺
D2-超级旺铺D2-超级旺铺
D2-超级旺铺supershop
 
Custom WordPress theme development
Custom WordPress theme developmentCustom WordPress theme development
Custom WordPress theme developmentTammy Hart
 
Html css crash course may 11th, atlanta
Html css crash course may 11th, atlantaHtml css crash course may 11th, atlanta
Html css crash course may 11th, atlantaThinkful
 
SEO for WordPress in 10 Simple Steps
SEO for WordPress in 10 Simple Steps SEO for WordPress in 10 Simple Steps
SEO for WordPress in 10 Simple Steps Santosh Raut
 
Wordpress theme submission requirement for Themeforest
Wordpress theme submission requirement for ThemeforestWordpress theme submission requirement for Themeforest
Wordpress theme submission requirement for ThemeforestEnayet Rajib
 
Simple WordPress SEO
Simple WordPress SEOSimple WordPress SEO
Simple WordPress SEOSantosh Raut
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalChandra Prakash Thapa
 
The WordPress REST API as a Springboard for Website Greatness
The WordPress REST API as a Springboard for Website GreatnessThe WordPress REST API as a Springboard for Website Greatness
The WordPress REST API as a Springboard for Website GreatnessWP Engine UK
 
Amazon.com's Web Services Opportunity
Amazon.com's Web Services OpportunityAmazon.com's Web Services Opportunity
Amazon.com's Web Services OpportunityTim O'Reilly
 
From PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeFrom PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeDerek Christensen
 
Basic web page designing
Basic web page designingBasic web page designing
Basic web page designingShakil Mahmood
 
New Web Typography
New Web TypographyNew Web Typography
New Web TypographyMonotype
 

What's hot (19)

What is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itWhat is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About it
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsHypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
 
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
 
WordCamp Kent 2019 - WP 101: Local Development - Themes and Plugins
WordCamp Kent 2019 - WP 101: Local Development - Themes and PluginsWordCamp Kent 2019 - WP 101: Local Development - Themes and Plugins
WordCamp Kent 2019 - WP 101: Local Development - Themes and Plugins
 
WordCamp Boston 2012 - Creating Content With Shortcodes
WordCamp Boston 2012 - Creating Content With ShortcodesWordCamp Boston 2012 - Creating Content With Shortcodes
WordCamp Boston 2012 - Creating Content With Shortcodes
 
电子商务网站前端开放实战
电子商务网站前端开放实战电子商务网站前端开放实战
电子商务网站前端开放实战
 
D2-超级旺铺
D2-超级旺铺D2-超级旺铺
D2-超级旺铺
 
Please dont touch-3.6-jsday
Please dont touch-3.6-jsdayPlease dont touch-3.6-jsday
Please dont touch-3.6-jsday
 
Custom WordPress theme development
Custom WordPress theme developmentCustom WordPress theme development
Custom WordPress theme development
 
Html css crash course may 11th, atlanta
Html css crash course may 11th, atlantaHtml css crash course may 11th, atlanta
Html css crash course may 11th, atlanta
 
SEO for WordPress in 10 Simple Steps
SEO for WordPress in 10 Simple Steps SEO for WordPress in 10 Simple Steps
SEO for WordPress in 10 Simple Steps
 
Wordpress theme submission requirement for Themeforest
Wordpress theme submission requirement for ThemeforestWordpress theme submission requirement for Themeforest
Wordpress theme submission requirement for Themeforest
 
Simple WordPress SEO
Simple WordPress SEOSimple WordPress SEO
Simple WordPress SEO
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
 
The WordPress REST API as a Springboard for Website Greatness
The WordPress REST API as a Springboard for Website GreatnessThe WordPress REST API as a Springboard for Website Greatness
The WordPress REST API as a Springboard for Website Greatness
 
Amazon.com's Web Services Opportunity
Amazon.com's Web Services OpportunityAmazon.com's Web Services Opportunity
Amazon.com's Web Services Opportunity
 
From PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeFrom PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to life
 
Basic web page designing
Basic web page designingBasic web page designing
Basic web page designing
 
New Web Typography
New Web TypographyNew Web Typography
New Web Typography
 

Viewers also liked

Media Matters Bootcamp may 2012
Media Matters Bootcamp may 2012Media Matters Bootcamp may 2012
Media Matters Bootcamp may 2012Media Matters
 
РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...
РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...
РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...Тарасов Константин
 
03 New Linked In Profile Presentation112010
03 New Linked In Profile Presentation11201003 New Linked In Profile Presentation112010
03 New Linked In Profile Presentation112010amiracali
 
Варвари біля воріт. Принципи корпоративного управління.
Варвари біля воріт. Принципи корпоративного управління.Варвари біля воріт. Принципи корпоративного управління.
Варвари біля воріт. Принципи корпоративного управління.FormulaS
 
Nanotechnology Mae Baan 311009
Nanotechnology  Mae Baan 311009Nanotechnology  Mae Baan 311009
Nanotechnology Mae Baan 311009NSTDA THAILAND
 
למה אני אוהב כדורגל
למה אני אוהב כדורגללמה אני אוהב כדורגל
למה אני אוהב כדורגלyossi koren
 
РИФ 2016, Поисковая оптимизация для мобильных приложений на практике
РИФ 2016, Поисковая оптимизация для мобильных приложений на практикеРИФ 2016, Поисковая оптимизация для мобильных приложений на практике
РИФ 2016, Поисковая оптимизация для мобильных приложений на практикеТарасов Константин
 
РИФ 2016, Перформанс в регионах. Блондинка.ру.
РИФ 2016, Перформанс в регионах. Блондинка.ру.РИФ 2016, Перформанс в регионах. Блондинка.ру.
РИФ 2016, Перформанс в регионах. Блондинка.ру.Тарасов Константин
 
איך להפיק את המטיב מהערכת ביצועים 3
איך להפיק את המטיב מהערכת ביצועים   3איך להפיק את המטיב מהערכת ביצועים   3
איך להפיק את המטיב מהערכת ביצועים 3yossi koren
 
РИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламе
РИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламеРИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламе
РИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламеТарасов Константин
 
РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...
РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...
РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...Тарасов Константин
 
Emerveillez vous [fr-gr] vvv
Emerveillez vous [fr-gr] vvvEmerveillez vous [fr-gr] vvv
Emerveillez vous [fr-gr] vvvKostas Tampakis
 
Microsoft word taiwan club chinese class tutor course
Microsoft word   taiwan club chinese class tutor courseMicrosoft word   taiwan club chinese class tutor course
Microsoft word taiwan club chinese class tutor courseshiauchin.su
 
רמי לוי רוצה להיות גדול
רמי לוי רוצה להיות גדולרמי לוי רוצה להיות גדול
רמי לוי רוצה להיות גדולyossi koren
 

Viewers also liked (20)

Media Matters Bootcamp may 2012
Media Matters Bootcamp may 2012Media Matters Bootcamp may 2012
Media Matters Bootcamp may 2012
 
Cow Banner
Cow  BannerCow  Banner
Cow Banner
 
РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...
РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...
РИФ 2016, Аналитика и ее автоматизация при поисковом продвижении трафиковых п...
 
! иде про автоматическое кп
! иде про автоматическое кп! иде про автоматическое кп
! иде про автоматическое кп
 
03 New Linked In Profile Presentation112010
03 New Linked In Profile Presentation11201003 New Linked In Profile Presentation112010
03 New Linked In Profile Presentation112010
 
ο δρόμος
ο δρόμοςο δρόμος
ο δρόμος
 
Варвари біля воріт. Принципи корпоративного управління.
Варвари біля воріт. Принципи корпоративного управління.Варвари біля воріт. Принципи корпоративного управління.
Варвари біля воріт. Принципи корпоративного управління.
 
Nanotechnology Mae Baan 311009
Nanotechnology  Mae Baan 311009Nanotechnology  Mae Baan 311009
Nanotechnology Mae Baan 311009
 
למה אני אוהב כדורגל
למה אני אוהב כדורגללמה אני אוהב כדורגל
למה אני אוהב כדורגל
 
РИФ 2016, Поисковая оптимизация для мобильных приложений на практике
РИФ 2016, Поисковая оптимизация для мобильных приложений на практикеРИФ 2016, Поисковая оптимизация для мобильных приложений на практике
РИФ 2016, Поисковая оптимизация для мобильных приложений на практике
 
РИФ 2016, Перформанс в регионах. Блондинка.ру.
РИФ 2016, Перформанс в регионах. Блондинка.ру.РИФ 2016, Перформанс в регионах. Блондинка.ру.
РИФ 2016, Перформанс в регионах. Блондинка.ру.
 
איך להפיק את המטיב מהערכת ביצועים 3
איך להפיק את המטיב מהערכת ביצועים   3איך להפיק את המטיב מהערכת ביצועים   3
איך להפיק את המטיב מהערכת ביצועים 3
 
РИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламе
РИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламеРИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламе
РИФ 2016, Сквозная аналитика как метод контроля подрядчика по рекламе
 
Floating point
Floating pointFloating point
Floating point
 
Seo Astra-Web
Seo Astra-WebSeo Astra-Web
Seo Astra-Web
 
РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...
РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...
РИФ 2016, Как главенство данных меняет бизнес-процессы высоконагруженного про...
 
Kantara Overview June 2013
Kantara Overview June 2013Kantara Overview June 2013
Kantara Overview June 2013
 
Emerveillez vous [fr-gr] vvv
Emerveillez vous [fr-gr] vvvEmerveillez vous [fr-gr] vvv
Emerveillez vous [fr-gr] vvv
 
Microsoft word taiwan club chinese class tutor course
Microsoft word   taiwan club chinese class tutor courseMicrosoft word   taiwan club chinese class tutor course
Microsoft word taiwan club chinese class tutor course
 
רמי לוי רוצה להיות גדול
רמי לוי רוצה להיות גדולרמי לוי רוצה להיות גדול
רמי לוי רוצה להיות גדול
 

Similar to Grown-up javascript with AngularJS

Hilfe, wir brauchen ein Frontend
Hilfe, wir brauchen ein FrontendHilfe, wir brauchen ein Frontend
Hilfe, wir brauchen ein FrontendOPEN KNOWLEDGE GmbH
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’sVisug
 
From Design to Delivery
From Design to DeliveryFrom Design to Delivery
From Design to DeliveryJeff Cortez
 
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...Reuven Lerner
 
Modern Web Technologies — Jerusalem Web Professionals, January 2011
Modern Web Technologies — Jerusalem Web Professionals, January 2011Modern Web Technologies — Jerusalem Web Professionals, January 2011
Modern Web Technologies — Jerusalem Web Professionals, January 2011Reuven Lerner
 
Modernizing i5 Applications
Modernizing i5 ApplicationsModernizing i5 Applications
Modernizing i5 ApplicationsZendCon
 
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeploy
Easing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeployEasing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeploy
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeployEduardo Castro
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developerslisab517
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRaymond Camden
 
The Enterprise Architecture You Always Wanted
The Enterprise Architecture You Always WantedThe Enterprise Architecture You Always Wanted
The Enterprise Architecture You Always WantedThoughtworks
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery GuideMark Rackley
 
Notes (2012-06-08)
Notes (2012-06-08)Notes (2012-06-08)
Notes (2012-06-08)Chris Pitt
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsMike Pack
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Vinícius Carvalho
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...VMware Tanzu
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on RailsAvi Kedar
 
Scale, baby, scale!
Scale, baby, scale!Scale, baby, scale!
Scale, baby, scale!Julien SIMON
 

Similar to Grown-up javascript with AngularJS (20)

Hilfe, wir brauchen ein Frontend
Hilfe, wir brauchen ein FrontendHilfe, wir brauchen ein Frontend
Hilfe, wir brauchen ein Frontend
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’s
 
soa
soasoa
soa
 
From Design to Delivery
From Design to DeliveryFrom Design to Delivery
From Design to Delivery
 
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
 
Modern Web Technologies — Jerusalem Web Professionals, January 2011
Modern Web Technologies — Jerusalem Web Professionals, January 2011Modern Web Technologies — Jerusalem Web Professionals, January 2011
Modern Web Technologies — Jerusalem Web Professionals, January 2011
 
Modernizing i5 Applications
Modernizing i5 ApplicationsModernizing i5 Applications
Modernizing i5 Applications
 
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeploy
Easing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeployEasing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeploy
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeploy
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoop
 
The Enterprise Architecture You Always Wanted
The Enterprise Architecture You Always WantedThe Enterprise Architecture You Always Wanted
The Enterprise Architecture You Always Wanted
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 
Notes (2012-06-08)
Notes (2012-06-08)Notes (2012-06-08)
Notes (2012-06-08)
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion Dollars
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
 
Introducing LINQ
Introducing LINQIntroducing LINQ
Introducing LINQ
 
Scale, baby, scale!
Scale, baby, scale!Scale, baby, scale!
Scale, baby, scale!
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Grown-up javascript with AngularJS

Editor's Notes

  1. What do I mean &amp;#x201C;Grown-up&amp;#x201D; Javascript?\nLecture:\n- Different approaches of web app;\n- Key features of AngularJS;\n- An example of angular JS app;\n- Let&amp;#x2019;s dive into the code and see what it takes to build an app from scratch.\n\nQuestions:\n- Who writes in JS at least once a week?\n- Who tried high-level JS frameworks. Something more fancy then Jquery?\n- Who is familiar with TDD?\n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. Forms submit breaks SPA.\nUnload servers - same problem, but on different scales.\nSmaller components - more complex development.\nThe last one is important!\n
  16. Forms submit breaks SPA.\nUnload servers - same problem, but on different scales.\nSmaller components - more complex development.\nThe last one is important!\n
  17. Forms submit breaks SPA.\nUnload servers - same problem, but on different scales.\nSmaller components - more complex development.\nThe last one is important!\n
  18. Forms submit breaks SPA.\nUnload servers - same problem, but on different scales.\nSmaller components - more complex development.\nThe last one is important!\n
  19. Forms submit breaks SPA.\nUnload servers - same problem, but on different scales.\nSmaller components - more complex development.\nThe last one is important!\n
  20. \n
  21. \n
  22. What is REST? It&amp;#x2019;s just a style of communication between services in the Internet which employs HTTP as a language.\n\nStateless\nCacheable\nClean\n
  23. It has verbs\n
  24. It has resources\n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. But let&amp;#x2019;s focus on web usage only. Now we have our server fully prepared to send us loads of data which we need.\n
  31. \n
  32. Javascript duck typing.\n
  33. \n
  34. \n
  35. \n
  36. If you build a really nice app, it will be recognized by the name;\nThere is still a way to do few almost static pages served by some backend, or CMS. But it will be separate app.\n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. Declarative: what the program should accomplish, rather than describing how to go about accomplishing it.\nAnd what is important, you don&amp;#x2019;t need to torture your brain each time you are going to write something like this. It comes very natural.\n
  54. \n
  55. \n
  56. Declatative: what the program should accomplish, rather than describing how to go about accomplishing it.\nAnd what is important, you don&amp;#x2019;t need to torture your brain each time you are going to write something like this. It comes very natural.\n
  57. \n
  58. \n
  59. Declatative: what the program should accomplish, rather than describing how to go about accomplishing it.\nAnd what is important, you don&amp;#x2019;t need to torture your brain each time you are going to write something like this. It comes very natural.\n
  60. Declatative: what the program should accomplish, rather than describing how to go about accomplishing it.\nAnd what is important, you don&amp;#x2019;t need to torture your brain each time you are going to write something like this. It comes very natural.\n
  61. Those of you who were into automated testing, know very well about this problem.\n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n