Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Hey, I just met 
AngularJS! 
Alessandro Nadalin, NAMSHI.com - Madrid, November 2014
small, internal tools
mobile
checkout.namshi.com
Killer Features
Killer Features 
2-way data binding
Model changes the View
View changes the Model
http://jsfiddle.net/okL0e297/
function Ctrl($scope) { 
$scope.title = 'Lorem Ipsum'; 
}
<div ng-app="myModule"> 
<div ng-controller="Ctrl"> 
Title: <input ng-model="title"> 
<hr> 
Title again: <input ng-model="...
<div ng-app="myModule"> 
<div ng-controller="Ctrl"> 
Title: <input ng-model="title"> 
<hr> 
Title again: <input ng-model="...
<div ng-app="myModule"> 
<div ng-controller="Ctrl"> 
Title: <input ng-model="title"> 
<hr> 
Title again: <input ng-model="...
function Ctrl($scope) { 
$scope.title = 'Lorem Ipsum'; 
}
<div ng-app="myModule"> 
<div ng-controller="Ctrl"> 
Title: <input ng-model="title"> 
<hr> 
Title again: <input ng-model="...
function Ctrl($scope) { 
$scope.title = 'Lorem Ipsum'; 
} 
Title: <input ng-model="title">
function Ctrl($scope) { 
$scope.title = 'Lorem Ipsum'; 
} 
Title: <input ng-model="title">
http://docs.angularjs.org/guide/databinding
Killer Features 
Dependency Injection
function Ctrl($scope) { 
// WHAT THE HECK SHALL I DO HERE??? 
}
function Ctrl($scope, $location) { 
// WHAT THE HECK SHALL I DO HERE??? 
}
function Ctrl($scope, $location) { 
// WHAT THE HECK SHALL I DO HERE??? 
}
function Ctrl($scope, $location) { 
$scope.whereAmI = $location.host(); 
}
http://jsfiddle.net/9J7u5/2/
Killer Features 
Support
https://github.com/angular/protractor
Killer Features 
Directives
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<menu /> 
</div> 
</div>
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<menu /> 
</div> 
</div>
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<div menu></div> 
</div> 
</div>
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<div data-menu></div> 
</div> 
</div>
var links = { 
home: { 
link: 'http://example.com', 
title: 'Home' 
}, 
about: { 
link: 'http://example.com/about', 
title...
var links = { 
home: { 
link: 'http://example.com', 
title: 'Home' 
}, 
about: { 
link: 'http://example.com/about', 
title...
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<menu /> 
</div> 
</div>
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<div data-menu /> 
</div> 
</div>
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
<div ng-app="sf-con"> 
<div ng-controller="Ctrl"> 
<menu /> 
</div> 
</div>
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
angular.module('sf-con', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
angular.module('confoo', []) 
.directive('menu', function(){ 
return { 
restrict: 'AE', 
scope: {}, 
template: ‘path/to/tp...
<body ng-app="sf-con"> 
<sf-con-header> 
<div> 
<div ng-controller=”MainCtrl”> 
<sf-con-sidebar> 
</div> 
<sf-con-footer> ...
<body ng-app="sf-con"> 
<sf-con-header> 
<div> 
<div ng-controller=”MainCtrl”> 
<sf-con-sidebar> 
</div> 
<sf-con-footer> ...
<body ng-app="sf-con"> 
<sf-con-header> 
<div> 
<div ng-controller=”MainCtrl”> 
<sf-con-sidebar> 
</div> 
<sf-con-footer> ...
<body ng-app="sf-con"> 
<sf-con-header> 
<div> 
<div sf-con-main-content> 
<sf-con-sidebar> 
</div> 
<sf-con-footer> 
</di...
http://jsfiddle.net/Lj6CH/6/
“Controllers, Directives and Services” http://is.gd/QlGYID
and much much more :)
Why do we like 
AngularJS?
Solid and clear foundation
$routeProvider.when(‘/about’, { 
templateUrl: '/views/about.html', 
controller: 'AboutController', 
}); 
Solid and clear f...
$http({ method: 'GET', url: '/milk.html }). 
success(function(...) { 
alert(‘YEAH!’); 
}). 
error(function(...) { 
alert(‘...
Works well with the JS ecosystem
Works well with the JS ecosystem
.container(data-bindonce) 
.row 
#my-whatever 
p {{ myModel.text }} 
Works well with the JS ecosystem
.container(data-bindonce) 
.row 
#my-whatever 
input(ng-model=”myModel”) 
Works well with the JS ecosystem
Modern API-oriented architectures
APIfy everything
Easier to scale
No sessions on the servers
maintain state on the client (LS)
What will you hate 
about AngularJS?
ehm...
https://www.destroyallsoftware.com/talks/wat
Watchers
lotsa bindings, lotsa watchers
lotsa watchers, lotsa computation
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul>
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul> 
prepare for N...
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul> 
N * 1
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
</a> 
</li> 
</ul> 
N * 2
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
<menu 
ng-if=”item.links” 
links=”item...
<ul> 
<li ng-repeat="item in items"> 
<a href="{{ item.link }}"> 
{{ item.title }} 
<menu 
ng-if=”item.links” 
links=”item...
use 1-way data binding if possible
https://github.com/Pasvaz/bindonce
try to stay under ~800 watchers
UI screws for real 
at ~2000 
;-)
Will probably be able to 
turn watchers off in 
Angular 2.0
ehm...
but also…
memory, rendering, ...
they don’t just render anymore
The browser is your 
platform
and the VM on which 
your application runs
is implemented in 
different ways, based on 
the browsers themselves
What will you need to 
know about AngularJS?
“Best way to serve AngularJS 
from a Symfony2 app?”
Angular 1.3
Terrific performance 
improvements (at a cost)
Homogeneous VS heterogeneous team
Learning curve might be harder than 
what you think
The asynchronous trap
Get someone to dive into DevTools
Get someone to dive into DevTools 
https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1
Get someone to dive into DevTools 
https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1 
http://devtoolsecrets.c...
Get someone to dive into DevTools 
https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1 
http://devtoolsecrets.c...
Get someone to dive into DevTools 
https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1 
http://devtoolsecrets.c...
(almost) no question
Testing will always be hard
AngularJS 2.0
Controllers, Directive Definition, 
$scope, angular.module, jqLite
http://www.infoq.com/news/2014/10/angular-2-atscript
AtScript 
https://docs.google.com/document/d/11YUzC-1d0V1-Q3V0fQ7KSit97HnZoKVygDxpWzEYW0U/edit#heading=h.c5wfaadh5aor
Angular design documents 
https://drive.google.com/drive/u/0/#folders/0BxgtL8yFJbacUnUxc3l5aTZrbVk
Shit’s gonna change
Is AngularJS the future?
Maybe.
Or, I mean...
We will still need backends
Or use WordPress a lot
but
Natural evolution, decoupled apps
Handy solution for some scenarios
It is a future
Isomorphic apps, “same” code on the 
client and the server
Feedback?
AngularJS has served as a great introduction 
to scaling on the client. 
A good team will find it easy after a couple week...
AngularJS has served as a great introduction 
to scaling on the client. 
A good team will find it easy after a couple week...
AngularJS has served as a great introduction 
to scaling on the client. 
A good team will find it easy after a couple week...
Without paying too much attention, 
performances are very decent. 
Very easy for a backend / HMVC guy 
to understand how i...
Without paying too much attention, 
performances are very decent. 
Very easy for a backend / HMVC guy 
to understand how i...
Without paying too much attention, 
performances are very decent. 
Very easy for a backend / HMVC guy 
to understand how i...
Write smaller apps without getting 
tangled in a single codebase, reuse modules. 
Decouple, decouple, decouple. 
Decouple ...
Write smaller apps without getting 
tangled in a single codebase, reuse modules. 
Decouple, decouple, decouple. 
Decouple ...
Write smaller apps without getting 
tangled in a single codebase, reuse modules. 
Decouple, decouple, decouple. 
Decouple ...
...yawn...
Alessandro Nadalin
Alessandro Nadalin 
@_odino_
Alessandro Nadalin 
@_odino_ 
Namshi
Alessandro Nadalin 
@_odino_ 
Namshi 
VP Technology
Alessandro Nadalin 
@_odino_ 
Namshi 
VP Technology 
odino.org
Thanks! 
Alessandro Nadalin 
@_odino_ 
Namshi 
VP Technology 
odino.org
tech.namshi.com/join-us 
we are hiring! 
tech.namshi.com 
github.com/namshi 
twitter.com/TechNamshi
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe
Upcoming SlideShare
Loading in …5
×

Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe

2,635 views

Published on

Published in: Technology

Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s use it maybe

  1. 1. Hey, I just met AngularJS! Alessandro Nadalin, NAMSHI.com - Madrid, November 2014
  2. 2. small, internal tools
  3. 3. mobile
  4. 4. checkout.namshi.com
  5. 5. Killer Features
  6. 6. Killer Features 2-way data binding
  7. 7. Model changes the View
  8. 8. View changes the Model
  9. 9. http://jsfiddle.net/okL0e297/
  10. 10. function Ctrl($scope) { $scope.title = 'Lorem Ipsum'; }
  11. 11. <div ng-app="myModule"> <div ng-controller="Ctrl"> Title: <input ng-model="title"> <hr> Title again: <input ng-model="title"> </div> </div>
  12. 12. <div ng-app="myModule"> <div ng-controller="Ctrl"> Title: <input ng-model="title"> <hr> Title again: <input ng-model="title"> </div> </div>
  13. 13. <div ng-app="myModule"> <div ng-controller="Ctrl"> Title: <input ng-model="title"> <hr> Title again: <input ng-model="title"> </div> </div>
  14. 14. function Ctrl($scope) { $scope.title = 'Lorem Ipsum'; }
  15. 15. <div ng-app="myModule"> <div ng-controller="Ctrl"> Title: <input ng-model="title"> <hr> Title again: <input ng-model="title"> </div> </div>
  16. 16. function Ctrl($scope) { $scope.title = 'Lorem Ipsum'; } Title: <input ng-model="title">
  17. 17. function Ctrl($scope) { $scope.title = 'Lorem Ipsum'; } Title: <input ng-model="title">
  18. 18. http://docs.angularjs.org/guide/databinding
  19. 19. Killer Features Dependency Injection
  20. 20. function Ctrl($scope) { // WHAT THE HECK SHALL I DO HERE??? }
  21. 21. function Ctrl($scope, $location) { // WHAT THE HECK SHALL I DO HERE??? }
  22. 22. function Ctrl($scope, $location) { // WHAT THE HECK SHALL I DO HERE??? }
  23. 23. function Ctrl($scope, $location) { $scope.whereAmI = $location.host(); }
  24. 24. http://jsfiddle.net/9J7u5/2/
  25. 25. Killer Features Support
  26. 26. https://github.com/angular/protractor
  27. 27. Killer Features Directives
  28. 28. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <menu /> </div> </div>
  29. 29. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <menu /> </div> </div>
  30. 30. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <div menu></div> </div> </div>
  31. 31. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <div data-menu></div> </div> </div>
  32. 32. var links = { home: { link: 'http://example.com', title: 'Home' }, about: { link: 'http://example.com/about', title: 'About Us' } };
  33. 33. var links = { home: { link: 'http://example.com', title: 'Home' }, about: { link: 'http://example.com/about', title: 'About Us' } };
  34. 34. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  35. 35. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  36. 36. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  37. 37. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  38. 38. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  39. 39. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  40. 40. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  41. 41. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <menu /> </div> </div>
  42. 42. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  43. 43. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  44. 44. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <div data-menu /> </div> </div>
  45. 45. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  46. 46. <div ng-app="sf-con"> <div ng-controller="Ctrl"> <menu /> </div> </div>
  47. 47. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  48. 48. angular.module('sf-con', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  49. 49. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  50. 50. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  51. 51. angular.module('confoo', []) .directive('menu', function(){ return { restrict: 'AE', scope: {}, template: ‘path/to/tpl.html’, link: function (scope) { scope.items = links; } } });
  52. 52. <body ng-app="sf-con"> <sf-con-header> <div> <div ng-controller=”MainCtrl”> <sf-con-sidebar> </div> <sf-con-footer> </div>
  53. 53. <body ng-app="sf-con"> <sf-con-header> <div> <div ng-controller=”MainCtrl”> <sf-con-sidebar> </div> <sf-con-footer> </div>
  54. 54. <body ng-app="sf-con"> <sf-con-header> <div> <div ng-controller=”MainCtrl”> <sf-con-sidebar> </div> <sf-con-footer> </div>
  55. 55. <body ng-app="sf-con"> <sf-con-header> <div> <div sf-con-main-content> <sf-con-sidebar> </div> <sf-con-footer> </div>
  56. 56. http://jsfiddle.net/Lj6CH/6/
  57. 57. “Controllers, Directives and Services” http://is.gd/QlGYID
  58. 58. and much much more :)
  59. 59. Why do we like AngularJS?
  60. 60. Solid and clear foundation
  61. 61. $routeProvider.when(‘/about’, { templateUrl: '/views/about.html', controller: 'AboutController', }); Solid and clear foundation
  62. 62. $http({ method: 'GET', url: '/milk.html }). success(function(...) { alert(‘YEAH!’); }). error(function(...) { alert(‘AWWW, SNAP!’); }); Solid and clear foundation
  63. 63. Works well with the JS ecosystem
  64. 64. Works well with the JS ecosystem
  65. 65. .container(data-bindonce) .row #my-whatever p {{ myModel.text }} Works well with the JS ecosystem
  66. 66. .container(data-bindonce) .row #my-whatever input(ng-model=”myModel”) Works well with the JS ecosystem
  67. 67. Modern API-oriented architectures
  68. 68. APIfy everything
  69. 69. Easier to scale
  70. 70. No sessions on the servers
  71. 71. maintain state on the client (LS)
  72. 72. What will you hate about AngularJS?
  73. 73. ehm...
  74. 74. https://www.destroyallsoftware.com/talks/wat
  75. 75. Watchers
  76. 76. lotsa bindings, lotsa watchers
  77. 77. lotsa watchers, lotsa computation
  78. 78. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul>
  79. 79. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul> prepare for N...
  80. 80. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul> N * 1
  81. 81. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} </a> </li> </ul> N * 2
  82. 82. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} <menu ng-if=”item.links” links=”item.links” /> </a> </li> </ul>
  83. 83. <ul> <li ng-repeat="item in items"> <a href="{{ item.link }}"> {{ item.title }} <menu ng-if=”item.links” links=”item.links” /> </a> </li> </ul>
  84. 84. use 1-way data binding if possible
  85. 85. https://github.com/Pasvaz/bindonce
  86. 86. try to stay under ~800 watchers
  87. 87. UI screws for real at ~2000 ;-)
  88. 88. Will probably be able to turn watchers off in Angular 2.0
  89. 89. ehm...
  90. 90. but also…
  91. 91. memory, rendering, ...
  92. 92. they don’t just render anymore
  93. 93. The browser is your platform
  94. 94. and the VM on which your application runs
  95. 95. is implemented in different ways, based on the browsers themselves
  96. 96. What will you need to know about AngularJS?
  97. 97. “Best way to serve AngularJS from a Symfony2 app?”
  98. 98. Angular 1.3
  99. 99. Terrific performance improvements (at a cost)
  100. 100. Homogeneous VS heterogeneous team
  101. 101. Learning curve might be harder than what you think
  102. 102. The asynchronous trap
  103. 103. Get someone to dive into DevTools
  104. 104. Get someone to dive into DevTools https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1
  105. 105. Get someone to dive into DevTools https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1 http://devtoolsecrets.com/
  106. 106. Get someone to dive into DevTools https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1 http://devtoolsecrets.com/ http://devtoolstips.com/
  107. 107. Get someone to dive into DevTools https://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1 http://devtoolsecrets.com/ http://devtoolstips.com/ http://addyosmani.com/blog/tag/devtools/
  108. 108. (almost) no question
  109. 109. Testing will always be hard
  110. 110. AngularJS 2.0
  111. 111. Controllers, Directive Definition, $scope, angular.module, jqLite
  112. 112. http://www.infoq.com/news/2014/10/angular-2-atscript
  113. 113. AtScript https://docs.google.com/document/d/11YUzC-1d0V1-Q3V0fQ7KSit97HnZoKVygDxpWzEYW0U/edit#heading=h.c5wfaadh5aor
  114. 114. Angular design documents https://drive.google.com/drive/u/0/#folders/0BxgtL8yFJbacUnUxc3l5aTZrbVk
  115. 115. Shit’s gonna change
  116. 116. Is AngularJS the future?
  117. 117. Maybe.
  118. 118. Or, I mean...
  119. 119. We will still need backends
  120. 120. Or use WordPress a lot
  121. 121. but
  122. 122. Natural evolution, decoupled apps
  123. 123. Handy solution for some scenarios
  124. 124. It is a future
  125. 125. Isomorphic apps, “same” code on the client and the server
  126. 126. Feedback?
  127. 127. AngularJS has served as a great introduction to scaling on the client. A good team will find it easy after a couple weeks. On a larger scale you might want to look into something less full-stack.
  128. 128. AngularJS has served as a great introduction to scaling on the client. A good team will find it easy after a couple weeks. On a larger scale you might want to look into something less full-stack.
  129. 129. AngularJS has served as a great introduction to scaling on the client. A good team will find it easy after a couple weeks. On a larger scale you might want to look into something less full-stack.
  130. 130. Without paying too much attention, performances are very decent. Very easy for a backend / HMVC guy to understand how it works. Tooling is extremely powerful.
  131. 131. Without paying too much attention, performances are very decent. Very easy for a backend / HMVC guy to understand how it works. Tooling is extremely powerful.
  132. 132. Without paying too much attention, performances are very decent. Very easy for a backend / HMVC guy to understand how it works. Tooling is extremely powerful.
  133. 133. Write smaller apps without getting tangled in a single codebase, reuse modules. Decouple, decouple, decouple. Decouple again.
  134. 134. Write smaller apps without getting tangled in a single codebase, reuse modules. Decouple, decouple, decouple. Decouple again.
  135. 135. Write smaller apps without getting tangled in a single codebase, reuse modules. Decouple, decouple, decouple. Decouple again.
  136. 136. ...yawn...
  137. 137. Alessandro Nadalin
  138. 138. Alessandro Nadalin @_odino_
  139. 139. Alessandro Nadalin @_odino_ Namshi
  140. 140. Alessandro Nadalin @_odino_ Namshi VP Technology
  141. 141. Alessandro Nadalin @_odino_ Namshi VP Technology odino.org
  142. 142. Thanks! Alessandro Nadalin @_odino_ Namshi VP Technology odino.org
  143. 143. tech.namshi.com/join-us we are hiring! tech.namshi.com github.com/namshi twitter.com/TechNamshi

×