Informações gerais
O livro é composto por 13 capítulos e 3 apêndices. Os apêndices são, basicamente, referências de jQuery e CSS. O livro não é para iniciantes em JavaScript, então quem decidir começar a leitura já deve conhecer o básico de JS. Muitos exemplos no livro se baseiam no uso de jQuery. A seguir, vamos analisar cada capítulo com um pouco mais de detalhe.
Resumo breve dos capítulos
O primeiro capítulo, “MVC e Classes”, trata do padrão homônimo e das classes como um bom mecanismo de modularização. Os exemplos utilizam jQuery. MVC com jQuery e classes em JS parece, se não totalmente bizarro, no mínimo estranho ou confuso. Mas tudo bem, a abordagem é interessante e vale a pena estudar. Também são abordados `bind` e protótipos, o que já é algo positivo.
Capítulo 2 — Eventos e observadores. Explica addEventListener e removeEventListener, cancelamento de eventos. Tudo isso também é analisado em conjunto com jQuery.
Capítulo 3 — Modelos e dados. Aprofunda o conceito de MVC. Trabalha com dados usando uma ORM feita à mão. Introduz jQuery.ajax. Mais uma vez, o livro não é exatamente para iniciantes, então talvez "introdução" não seja a palavra ideal. O resultado é legível, mas como ninguém faz isso hoje em dia, parece estranho também.
Capítulo 4 — Controladores e estados. Eu estava curioso para ver o que o autor escolheria como gerenciador de estado ou se criaria um próprio. O aplicativo explora roteamento usando hashes, o que, como alguém que trabalha com SEO há 8 anos, me incomodou bastante.
Capítulo 5 — Visões e templates. Trata de arquivos de visualização, renderização dinâmica e funcionamento geral. Explica os chamados helpers (funções auxiliares).
Capítulo 6 — Gerenciamento de dependências. Trata do isolamento do JS e da prevenção de conflitos. Menciona ferramentas nativas (que na época provavelmente não funcionavam bem em todos os navegadores) e bibliotecas de terceiros.
Capítulo 7 trata do trabalho com arquivos, incluindo arrastar e soltar, e o uso da área de transferência. As APIs modernas para essas funções melhoraram bastante. Também são mostrados exemplos de upload de arquivos sem recarregar a página.
Capítulo 8 — Tecnologias web em tempo real. Aborda brevemente sockets e Node.js (trabalho com sockets).
Capítulo 9 — Testes e depuração. Apresenta brevemente as bibliotecas QUnit, Jasmine, Selenium, Zombie.js, Ichabod. Com exceção do Selenium, quase não conhecia nenhuma. Também menciona ferramentas de desenvolvedor como o inspetor de código, console e outras abas úteis para depuração.
Capítulo 10 — Implantação. Fala sobre cache, minificação de arquivos, compressão gzip e uso de CDNs. Como esperado, não há menção a CI/CD.
Os três últimos capítulos são dedicados às bibliotecas Spine, Backbone e JavaScriptMVC.
Conclusão
Na primeira vez que li o livro, achei que ele tinha muito mais valor do que quando, cinco anos depois, resolvi fazer anotações completas. Portanto, hoje em dia, eu provavelmente não recomendaria a leitura, mesmo que contenha abordagens interessantes. Apesar da popularidade ainda existente do jQuery, eu não recomendaria este livro.