Com o passar dos anos, conquistei, no local onde trabalho, confiança o suficiente para conduzir entrevistas. Se estamos procurando alguém com skills em JavaScript, minha primeira pergunta seria... bem, isso não é verdade. Primeiramente verifico se a(o) candidata(o) precisar ir ao banheiro ou se gostaria de beber água (conforto é importante), mas passada a parte relaciona à entrada e saída de fluidos, começo a avaliar se a(o) candidata(o) conhece JavaScript ou apenas jQuery.
Não que haja algo errado com jQuery. Ela permite que você faça muito sem a necessidade de realmente saber JavaScript e isso é uma feature e não um bug. Porém, se a vaga requer habilidades avançadas em JavaScript relacionadas à performance e mantenabilidade, você precisa de alguém que entenda a forma com que bibliotecas como jQuery são feitas. Você precisa aproveitar os fundamentos do JavaScript da mesma forma que ela aproveita.
Se quero ter uma ideia do conhecimento de alguém em relação aos fundamentos de JavaScript, estou mais interessado em saber o que essa pessoa faz com closures (você já leu este livro da série, certo?) e como obtém o máximo da assincronicidade, o que nos leva a este livro.
Como entrada, você será conduzida(o) por callbacks, o principal aperitivo da programação assíncrona. É claro que um aperitivo não é exatamente uma refeição satisfatória, mas o próximo prato está cheio de promises deliciosas!
Se você não conhece promises, agora é a hora de aprender. Promises são, atualmente, a maneira oficial de provermos retornos de valores asíncronos tanto no JavaScript quanto no DOM. Todas as futuras APIs assíncronas do DOM as utilizarão, muitas já utilizam, portanto prepare-se! No momento que escrevemos isso, Promises estão disponíveis nos principais browsers (em breve no IE). Assim que você terminar, espero que tenha guardado espaço para o próximo prato, Generators.
Generators chegaram às versões estáveis do Chrome e Firefox sem muita pompa ou cerimônia pois, francamente, são mais complicadas do que interessantes. Pelo menos é o que eu pensava até vê-los combinados com Promises, quando tornam-se uma importante ferramenta para legibilidade e manutenção.
Para sobremesa, bem, não vou estragar a surpresa, mas prepare-se para olhar o futuro do JavaScript! Funcionalidades que lhe darão mais e mais controle sobre concorrência e assincronicidade.
Bem, não vou mais bloquear sua diversão com o livro, que siga o espetáculo! Se você já leu alguma parte do livro antes desta introdução, lhe presenteie com 10 pontos assíncronos! Você merece!
Jake Archibald
jakearchibald.com, @jaffathecake
Developer Advocate na Google Chrome