Boas Práticas
  • Introdução
  • Configurando o NPM e Criando o package.json
  • Criando o gitignore de forma simples
  • Criando arquivos para documentação
  • Padrões de Código - Styleguides
  • Instalando e Usando o Eslint
  • UPDATE: Atualizando o Eslint para 4+
  • Configurando o editorconfig
  • Criando um Npm Script
  • Configurando hooks no git
Aprendendo ES6
  • 1 - Introdução ao ES6
  • 2.1 - Escopo do JS
  • 2.2 - Variável let no JS
  • 2.3 - Variável const no JS
  • 2.4 - Temporal Dead Zone
  • 3.1 - Introdução a Arrow Function
  • 3.2 - Arrow Function e o Lexical This
  • 4.1 - Introdução a Template Literals
  • 4.2 - Usando Template Literals para Html Fragments
  • 4.3 - Tagged Template
  • 5.1 - Shorthand Properties
  • 5.2 - Default Parameters
  • 5.3 - Novos métodos para Strings
  • 6.1 - Array.from()
  • 6.2 - Array.of()
  • 6.3 - Array.find() e Array.findIndex()
  • 6.4 - array.fill()
  • 7.1 - Introdução ao Destructuring
  • 7.2 - Destructuring em Arrays
  • 7.3 - Fazendo swap de variáveis com destructuring
  • 8.1 - Introdução ao Spread Operator
  • 8.2 - Usando o spread dentro de funções
  • 8.3 - Rest params
  • 9.1 - Introdução a Promises
  • 9.2 - Exemplo Real de Promises
  • 9.3 - Manipulando múltiplas Promises
  • 10.1 - Herança Prototipal
  • 10.2 - Criando Classes do ES6
  • 10.3 - Usando extended classes
  • 11.1 - Introdução a Symbols
  • 11.2 - Iterators e Iterables - for...of
  • 12.1 - Introdução a Generators
  • 12.2 - Usando Generators para fluxos assíncronos
  • 13.1 - Introdução ao Proxy
  • 14.1 - Introdução ao Set
  • 14.2 - Introdução ao WeakSet
  • 15.1 - Introdução ao Map
  • 15.2 - Introdução ao WeakMap
Atualizações ES7/ES8
  • Introdução ao Async/Await
  • Tratando erros em async/await
  • Async/Await com Multiplas Promises
  • padStart e padEnd
  • Exponentiation
  • Array.prototype.includes
  • Object.entries
  • Object.values
  • Trailing Commas
Módulos em JS
  • Introdução a Módulos em JS
  • Configurando o Webpack
  • Trabalhando com Imports no ES6
  • Trabalhando com Exports no ES6
  • UglifyJS no Webpack
  • Variáveis de Ambiente no Webpack
  • Adicionando Sourcemaps em nosso código
  • Inicializando um server com Webpack
Teoria de Testes
  • Qualidade de Software
  • Alguns fatores para alcançar qualidade em seu projeto
  • Por que testar?
  • Como funciona o fluxo do TDD?
  • Como pensar em testes? Padrão de teste.
  • Tipos de Testes
  • Algumas dicas para os tipos de testes
  • Spies, Stubs e Mocks
Unindo conceitos na prática
  • Apresentando Ferramentas
  • Iniciando a estrutura com Mocha e Chai
  • Funcionamento do Mocha - describe, context, it...
  • Reporters do Mocha
  • Comandos Skip, Only, Bail
  • Introdução aos Hooks do Mocha
  • Hooks na Prática
  • Métodos do Chai
  • Criando uma calculadora simples - Pt1
  • Criando uma calculadora simples - Pt2
  • Convertendo e testando em ES6
  • Criando um FizzBuzz com TDD
  • Aplicando o Code Coverage
  • Rodando check-coverage antes de cada push
Criando uma Biblioteca Wrapper da API do Spotify
  • Introdução da Biblioteca
  • Clonando o Boilerplate e editando
  • Criando Smoke Tests
  • Instalando Sinon e dependências
  • Utilizando o calledOnce
  • Utilizando o calledWith