Casa do Código - Livros e Tecnologia

  • Programação
  • Lógica
  • Java
  • .NET
  • PHP
  • Games
  • OO
  • Funcional
  • Python
  • Outros
  • Todos
  • Mobile
  • iOS
  • Android
  • Multiplataforma
  • Outros
  • Todos
  • Front-end
  • HTML e CSS
  • JavaScript
  • Outros
  • Todos
  • Infraestrutura
  • Web
  • Dados
  • Outros
  • Todos
  • Business
  • Startups
  • Marketing Digital
  • Gestão
  • Agile
  • Outros
  • Todos
  • Design & UX
  • Você tem 0 itens na sacola 0 Abrir navegação por categorias e busca Ir para ao topo da página

    Use o código e tenha 10% de desconto!

    Cangaceiro JavaScript Uma aventura no sertão da programação

    Flávio Almeida
    Livro de Cangaceiro Javascript

    *Você terá acesso às futuras atualizações do livro.

    Conteúdo

    Talvez nenhuma outra linguagem tenha conseguido invadir o coletivo imaginário dos desenvolvedores como JavaScript fez. Em sua história fabular em busca de identidade, foi a única que conseguiu se enraizar nos navegadores, tornando-se uma linguagem em que todo desenvolvedor precisa ter algum nível de conhecimento.

    Neste livro completíssimo, adentre o sertão do JavaScript com o cangaceiro Flávio Almeida percorrendo os principais recursos das versões ES5, ES6, ES7 e ES8. Transite entre os paradigmas Orientado a Objetos e o Funcional e aplique padrões de projetos para sobreviver durante sua caminhada.

    Transcenda seu conhecimento incluindo em seu arsenal de desenvolvedor IndexedDB, Babel e Webpack, tornando-se um Cangaceiro JavaScript!

    Saiba o que você vai aprender

     

    Sumário

    Parte 1 - O caminho do cangaceiro

    • 1 Prólogo: era uma vez no sertão
    • 1.1 O problema do nosso código
    • 1.2 O padrão MVC (Model-View-Controller)

     

    • 2 Negociar com o cangaceiro, tem coragem?
    • 2.1 O papel de um modelo
    • 2.2 A classe Negociação
    • 2.3 Construtor de classe
    • 2.4 Métodos de classe
    • 2.5 Encapsulamento
    • 2.6 A sintaxe get
    • 2.7 Objetos imutáveis
    • 2.8 A instância é imutável mesmo?
    • 2.9 Programação defensiva
    • 2.10 Menos verbosidade no constructor com Object.assign
    • 2.11 Atalho para propriedades de objetos literais
    • 2.12 As surpresas de declarações com var
    • 2.13 Declaração de variáveis com let
    • 2.14 Temporal Dead Zone

     

      • 3 No cangaço, é ação para todo lado
      • 3.1 O papel de um controlador
      • 3.2 A classe NegociacaoController
      • 3.3 Associando métodos do controller às ações do usuário
      • 3.4 Evitando percorrer desnecessariamente o DOM
      • 3.5 Criando uma instância de Negociação
      • 3.6 Criando um objeto Date a partir da entrada do usuário
      • 3.7 Um desafio com datas
      • 3.8 Resolvendo um problema com o paradigma funcional
      • 3.9 Arrow functions: deixando o código ainda menos verboso

     

      • 4 Dois pesos, duas medidas?
      • 4.1 Isolando a responsabilidade de conversão de datas
      • 4.2 Métodos estáticos
      • 4.3 Template string
      • 4.4 A boa prática do fail-fast

     

      • 5 O bando deve seguir uma regra
      • 5.1 Criando um novo modelo
      • 5.2 O tendão de Aquiles do JavaScript
      • 5.3 Blindando o nosso modelo

     

      • 6 A moda no cangaço
      • 6.1 O papel da View
      • 6.2 Nossa solução de View
      • 6.3 Construindo um template dinâmico com a função map
      • 6.4 Totalizando o volume de negociações
      • 6.5 Totalizando com reduce

     

    • 7 O plano
    • 7.1 Parâmetro default
    • 7.2 Criando a classe MensagemView
    • 7.3 Herança e reutilização de código
    • 7.4 Classes abstratas?
    • 7.5 Para saber mais: super
    • 7.6 Adquirindo um novo hábito com const

     

    Parte 2 - Força Volante

      • 8 Um cangaceiro sabe delegar tarefas
      • 8.1 E se atualizarmos a View quando o modelo for alterado?
      • 8.2 Driblando o this dinâmico
      • 8.3 Arrow function e seu escopo léxico

     

      • 9 Enganaram o cangaceiro, será?
      • 9.1 O padrão de projeto Proxy
      • 9.2 Aprendendo a trabalhar com Proxy
      • 9.3 Construindo armadilhas de leitura
      • 9.4 Construindo armadilhas de escrita
      • 9.5 Reflect API
      • 9.6 Um problema não esperado
      • 9.7 Uma solução para que nossas armadilhas funcionem
      • 9.8 Construindo armadilhas para métodos
      • 9.9 Uma pitada do ES2016 (ES7)
      • 9.10 Aplicando a solução em NegociacaoController

     

      • 10 Cúmplice na emboscada
      • 10.1 O padrão de projeto Factory
      • 10.2 Nosso proxy ainda não está 100%!
      • 10.3 Associando modelo e View através da classe Bind
      • 10.4 Parâmetros REST

     

      • 11 Data dos infernos!
      • 11.1 O problema com o input date
      • 11.2 Ajustando nosso converter
      • 11.3 Lidando com exceções
      • 11.4 Criando nossa própria exceção: primeira tentativa
      • 11.5 Criando nossa própria exceção: segunda tentativa

     

      • 12 Pilhando o que interessa!
      • 12.1 Servidor e infraestrutura
      • 12.2 Requisições Ajax com o objeto XMLHttpRequest
      • 12.3 Realizando o parse da resposta
      • 12.4 Separando responsabilidades

     

    • 13 Lutando até o fim
    • 13.1 Callback HELL
    • 13.2 O padrão de projeto Promise
    • 13.3 Criando Promises
    • 13.4 Criando um serviço para isolar a complexidade do XMLHttpRequest
    • 13.5 Resolvendo Promises sequencialmente
    • 13.6 Resolvendo Promises paralelamente
    • 13.7 Ordenando o período
    • 13.8 Impedindo importações duplicadas
    • 13.9 As funções filter() e some()

     

    Parte 3 - A revelação

      • 14 A algibeira está furada!
      • 14.1 IndexedDB, o banco de dados do navegador
      • 14.2 A conexão com o banco
      • 14.3 Nossa primeira store
      • 14.4 Atualização do banco
      • 14.5 Transações e persistência
      • 14.6 Cursores

     

      • 15 Colocando a casa em ordem
      • 15.1 A classe ConnectionFactory
      • 15.2 Criando Stores
      • 15.3 Garantindo uma conexão apenas por aplicação
      • 15.4 O padrão de projeto Module Pattern
      • 15.5 Monkey Patch: grandes poderes trazem grandes responsabilidades

     

      • 16 Entrando na linha
      • 16.1 O padrão de projeto DAO
      • 16.2 Criando nosso DAO de negociações
      • 16.3 Implementando a lógica de inclusão
      • 16.4 Implementando a lógica da listagem
      • 16.5 Criando uma DAOFactory
      • 16.6 Combinando padrões de projeto
      • 16.7 Exibindo todas as negociações
      • 16.8 Removendo todas as negociações

     

      • 17 Dividir para conquistar
      • 17.1 Módulos do ES2015 (ES6)
      • 17.2 Instalando o loader
      • 17.3 Transformando scripts em módulos
      • 17.4 O papel de um transcompilador
      • 17.5 Babel, instalação e build-step
      • 17.6 Sourcemap
      • 17.7 Compilando arquivos em tempo real
      • 17.8 Barrel, simplificando a importação de módulos

     

      • 18 Indo além
      • 18.1 ES2017 (ES8) e o açúcar sintático async/await
      • 18.2 Para saber mais: generators
      • 18.3 Refatorando o projeto com async/wait
      • 18.4 Garantindo a compatibilidade com ES2015
      • 18.5 Lidando melhor com exceções
      • 18.6 Debounce pattern: controlando a ansiedade
      • 18.7 Implementando o Debounce pattern

     

      • 19 Chegando ao limite
      • 19.1 O padrão de projeto Decorator
      • 19.2 Suportando Decorator através do Babel
      • 19.3 Um problema não esperado com nosso Decorator
      • 19.4 Elaborando um DOM Injector
      • 19.5 Decorator de classe
      • 19.6 Simplificando requisições Ajax com a API Fetch
      • 19.7 Configurando uma requisição com API Fetch
      • 19.8 Atalho para a propriedade de objetos literais
      • 19.9 Validação com parâmetro default
      • 19.10 Reflect-metadata: avançando na metaprogramação
      • 19.11 Adicionando metadados com Decorator de método
      • 19.12 Extraindo metadados com um Decorator de classe

     

    • 20 Enfrentamento final
    • 20.1 Webpack, agrupador de módulos
    • 20.2 Preparando o terreno para o Webpack
    • 20.3 O temível webpack.config.js
    • 20.4 Babel-loader, a ponte entre o Webpack e o Babel
    • 20.5 Preparando o build de produção
    • 20.6 Mudando o ambiente com cross-env
    • 20.7 Webpack Dev Server e configuração
    • 20.8 Tratando arquivos CSS como módulos
    • 20.9 Resolvendo o FOUC (Flash of Unstyled Content)
    • 20.10 Resolvemos um problema e criamos outro, mas tem solução!
    • 20.11 Importando scripts
    • 20.12 Lidando com dependências globais
    • 20.13 Otimizando o build com Scope Hoisting
    • 20.14 Separando nosso código das bibliotecas
    • 20.15 Gerando a página principal automaticamente
    • 20.16 Simplificando ainda mais a importação de módulos
    • 20.17 Code splitting e Lazy loading
    • 20.18 System.import vs import
    • 20.19 Quais são os arquivos de distribuição?
    • 20.20 Deploy do projeto no Github Pages
    • 20.21 Alterando o endereço da API no build de produção
    • 20.22 Considerações finais

    Autor

    Flávio Almeida

    Flávio Almeida é desenvolvedor e instrutor na Caelum. Possui mais de 14 anos de experiência na área de desenvolvimento com ampla atuação em segmentos da indústria de shopping centers e varejo. Bacharel em Informática com MBA em Gestão de Negócios em TI, possui Psicologia como segunda graduação e procura aplicar o que aprendeu no desenvolvimento de software e na educação. Trabalha com a plataforma Java desde 2004, mas, atualmente, tem focado na plataforma Node.js e na linguagem JavaScript, tentando aproximar ainda mais front-end e back-end. Participou das edições 2013 e 2014 da MobileConf e costuma contribuir com o Blog da Caelum sobre os mais diversos assuntos. Elabora treinamentos para a plataforma online Alura, atividade que vem se tornando cada vez mais prazerosa. Possui uma conta no Twitter e outra no GitHub.

    Dados do produto

    Número de páginas:
    502
    ISBN:
    978-85-94188-00-7
    Data publicação:
    08/2017
    Submeter errata Fórum de discussões

    Compartilhe!

    Compartilhe no Facebook Compartilhe no Twitter

    Impulsione sua carreira aprendendo também...

    Coleção Cangaceiro JavaScript
    Coleção Cangaceiro JavaScript
    +
    Livro de UX Research com sotaque brasileiro
    UX Research com sotaque brasileiro
    altLogoFooter

    Links da
    Casa do Código

    • Meus ebooks
    • Sobre a Casa do Código
    • Todos os livros
    • Nossas coleções
    • Quero escrever um livro ou fazer parceria
    • Perguntas Frequentes
    • Política de Privacidade
    • Fale conosco

    Nas redes sociais

    • /CasaDoCodigo
    • @casadocodigo
    • @casadocodigo

    Receba novidades e lançamentos

    Este site aceita Pix, Cartão de Crédito, Débito

    • pagarme
    • paypal

    Grupo Alura

    • Educação em Tecnologia

      • FIAP
      • Casa do Código
      • PM3 - Cursos de Produto
    • Mais Alura

      • Alura Start
      • Alura Língua
      • Alura Para Empresas
      • Alura LATAM
    • Comunidade

      • Tech Guide
      • 7 days of code
      • Hipsters ponto Jobs
    • Podcasts

      • Hipsters ponto Tech
      • Dev sem Fronteiras
      • Layers ponto Tech
      • Like a Boss
      • Scuba Dev