Arquitetura e Desenvolvimento MEAN

Carga horária: 100hs

Objetivo: Preparar o profissional para criar aplicações Web utilizando MEAN (MongoDB, Express JS, Angular4, NodeJS) com uma formação Fullstack. Criação todas as camadas daarquitetura de software: backend baseado em serviços REST, persistência com o uso do banco de dados MongoDB orientado a documentos , interface do usuário responsiva utilizando Typescript com Orientação a Objetos, Javascript, Design Patterns (MVC, DDD, etc), princípios de programação funcional, programação orientada a eventos, testes unitários com AVA, compilação e publicação do projeto na nuvem.

Próximas turmas

AngularJS

  •  Princípios de orientação a objeto (OOP)
  • Diferenças da Arquitetura baseada em componentes (Webcomponents architecture) para arquitetura MVC (Model, View, Controller)
  • Visão geral do ECMASCRIPT 6 e novos padrões de projeto
  • Classes
  • Modificadores de acesso: public, private, protected e default
  • Tipos de variáveis: Boolean, String, Number, any, Array, Object, Date
  • Clausura
  • Declaração de métodos e métodos autoinvocados
  • Analogia do Typescript com o JAVA
  • Loops: for, while, do while, continue, break;
  • Objetos globais e locais
  • Diferenças entre declaração de variáveis e métodos: var, let, const, readonly, static, abstract
  • Sintaxe de Construtores
  • Métodos públicos e privados
  • Argumentos opcionais e obrigatórios de métodos
  • Construtores cheios e vazios
  • Getters & Setters
  • Entidades, Enums, Constantes
  • Interfaces e Herança (Implents, Extends)
  • Serviços e injeção de dependência
  • Entendendo Prototype
  • Callbacks
  • Call vs Apply
  • Sort para ordenação de Arrays
  • Entendendo Promises
  • AJAX e chamadas assíncronas
  • Serviços REST (GET, POST, PUT, DELETE) com protocolo HTTP
  • Entendendo formato de dados (JSON, JSONP, XML, etc)
  • Headers de requisição
  • Interceptando requisições
  • Entendendo o Angular4 Components e two-way-data-binding
  • Entendendo o app.module
  • Formulários reativos controlados na Classe
  • Regex, Máscaras e validação de campos
  • Rotas
  • Decorators
  • Entendendo Observables e o subscribe      
  • Criação de componentes e comunicação com @Inputs, @Outputs e Events
  • LocalStorage e SessionStorage
  • Conversão de variáveis (truncamento, arredondamento, etc)
  • Animações
  • Temas, CSS, SCSS
  • Bootstrap para criação de elementos: tables, buttons, inputs, panels, accordions, menu, forms
  • Criação de iframes e mapas
  • Angular generators com angular-cli: component, directive, pipe, service, class, interface, enum, module
  • Geradores de projetos com o Gulp, Grunt e Yeoman
  • Compilando o projeto como ng build
  • Condicionais de view ( ngIf, ngHide, ngClass, ngStyle, ngSwitch)         
  • Inputs File e tratamento de imagens (Base64, binary, FileReader, blob, atob, btoa)
  • Entendendo princípios de programação funcional (filter, map, reduce)
  • Design Patterns
  • Introdução ao Ionic, Phonegap e Cordova para criação de apps

 

NodeJS e ExpressJS

 

  • Criando projetos com o NPM como gerenciador de dependências
  • Configurando o package.json
  • Configurando o Express.JS
  • Criando rotas
  • Protegendo rotas
  • Criando módulos
  • Entendendo CORS, JSONP
  • Criando middlewares para tratamento de erros
  • Renderizando HTML com Template Engine Jade e EJS
  • Utilizando Websocket com comunicação bidirecional
  • Socket.io para criação de aplicação de chat
  • Criptografando senhas para persistência em banco
  • Rotas protegidas com o JWT (JSON Web Token) e Express-JWT
  • Integração do Express com o MongoDB utilizando o Mongoose
  • Compreendendo Roles de aplicação e ambientes de desenvolvimento, homologação e produção
  • Criando um módulo para tratamento e persistência de imagens (encode, decode, compress, save, buffer, binary)
  • Criando logs da aplicação
  • Criando scripts Shellscripts para automação de rotinas e deploys
  • Enviando email via SMTP
  • Introdução ao deploy na Amazon AWS

 

 

MongoDB

 

  • Mongo Shell
  • Diferença de SQL para noSQL
  • Fazendo CRUD com MongoDB (Create, Read, Update, Delete)
  • Inserindo documents em collections
  • Recuperando e atualizando documents
  • Removendo um document
  • Consultas avançadas: find, findOneAndUpdate, getCollection, limit, findById, upsert, etc
  • Atualizando documentos em massa
  • Regex no mongoDB para tratamento de acentuação
  • Queries de similaridade no MongoDB
  • Ordenação de dados
  • Criando Ids dinâmicos baseados no timestamp atual
  • Otimizações e queries performáticas
  • Fazendo backup da base de dados
  • Paginando documentos
  • Operadores lógicos em queries: $or, $and, $not, $nor
  • Operadores de comparação em queries: $lte, $in, $gte, etc
  • Operadores de queries baseadas em arrays: $all, $elemMatch, $size
  • Validações e schemas com Mongoose

 

Testes Automatizados

  •  Automatize sua aplicação com o AVA
  • Criação de testes unitários de integração de API
  • Testes automatizados com MOCK

Aplicações e Projetos a serem realizados no curso

  • Aplicação de Listagem e busca de produtos
  • Login de usuários com autenticação JWT
  • Aplicação de funcionários com persistência de imagens
  • Carrinho de Compras
  • Autocomplete para Busca em estoques
  • Envio de email com o log da aplicação
  • Deploy da aplicação no Heroku e no Hostinger com registro de domínio
  • Chat em tempo real