+WilsonMendes / @willmendesneto
Google Developer Expert AngularJS
AngularJS
Como? Quem? Porque?
Era uma vez...
Marco inicial: 2009
Primeiro produto: Double Click
Youtube for PS3 foi construído com AngularJS
Single Page Application
Menos Server-side
Mais Client-side
Framework Javascript
Mais poder para o Client-side
Single Page Application
Diminuir o tempo de carregamento do app utilizando o conceito de página única
Aplicações ricas e com várias interações no front-end
Porque usar?
"Angular é o que o HTML teria sido se tivesse sido projetado para aplicações"
Conceitos
Programação: imperativa x declarativa
<h2>Twitter search</h2>
<form >
<input type="text" ng-model="vm.searchTerm" />
<input type="button" ng-click="vm.search()" value="Search" />
</form>
<table>
<thead>
<tr>
<th>Tweet</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="tweet in vm.tweets.results">
<td>{{ tweet.tweet }}</td>
</tr>
</tbody>
</table>
Conceitos
Template: HTML = XML
<h1>About</h1>
<p>The element lorem doesn't exist in HTML by default. Claps for Angular!</p>
<lorem></lorem>
(function() {
'use strict';
function navbar() {
var directive = {
restrict: 'E',
template: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, '
};
return directive;
}
angular.module('angularjsCourseApp')
.directive('lorem', navbar);
}());
Conceitos
Abstração de etapas como data binding e injeção de dependência de forma mais simples
Mean? B-Mean
Breeze
MongoDB
Express
AngularJS
NodeJS
AngularJS
Firebase
AngularJS:
82 kb
Ember.js:
230 kb =
64 kb of ember.js + 74 kb of handlebars.js + 92 kb of jQuery
Primeiros passos
Conhecendo as ferramentas de trabalho
Javascript rodando no back-end
Engine V8
NPM para gerenciar pacotes e package.json com as informações
Sistema de versionamento distribuído
Linus Torvalds
* Atualmente o mais utilizado
Ferramenta certa para o trabalho certo
Adapte ao seu workflow
Turbinando o workflow
Javascript sempre vai te ajudar
Automatizador de tarefas
Todas as tarefas do projeto estão no arquivo Gruntfile.js
Gerenciador de pacotes front-end
Gera um arquivo bower.json com as informações dos componentes utilizados no projeto
Scaffolding para o projeto
Totalmente configurável
Iniciando as atividades
Começando a meter a mão na massa
#obrigado
Wilson Mendes
@willmendesneto