John Resig Bear Bibeault
|
|
|
- Ruth Philippi Mota
- 9 Há anos
- Visualizações:
Transcrição
1 John Resig Bear Bibeault Tradução Rafael Zanolli Novatec
2 Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT USA. Copyright 2009 by Manning Publications. Portuguese-language edition for Brazil copyright 2013 by Novatec Editora. All rights reserved. Edição original em inglês publicada pela Manning Publications Co., Sound View CT.#3B, Greenwich, CT USA. Copyright 2010 pela Manning Publications. Edição em português para o Brasil copyright 2013 pela Novatec Editora. Todos os direitos reservados. Novatec Editora Ltda Todos os direitos reservados e protegidos pela Lei de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Rafael Zanolli Revisão gramatical: Lívia Freitag Editoração eletrônica: Carolina Kuwabata ISBN: Histórico de impressões: Abril/2013 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos São Paulo, SP Brasil Tel.: Fax: [email protected] Site: Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Resig, John Segredos do ninja JavaScript / John Resig, Bear Bibeault ; tradução Rafael Zanolli. -- São Paulo : Novatec Editora, Título original: Secrets of the JavaScript ninja. ISBN JavaScript (Linguagem de programação para computadores) I. Bibeault, Bear. II. Título CDD Índices para catálogo sistemático: 1. JavaScript : Linguagem de programação : Computadores : Processamento de dados VC
3 capítulo 1 Surge o ninja Este capítulo apresenta: uma análise do propósito e da estrutura deste livro; as bibliotecas que analisaremos; o que é programação JavaScript avançada ; autoria cross-browser; exemplos de conjuntos de teste. Se você está lendo este livro, sabe que não há nada de simples na criação de códigos JavaScript eficientes e cross-browser. Além dos desafios normais da elaboração de códigos eficazes, temos a complexidade adicional do tratamento de diferenças e complexidades obtusas de navegadores. Para lidar com esses desafios, desenvolvedores JavaScript frequentemente capturam conjuntos de funcionalidades comuns e reutilizáveis na forma de bibliotecas JavaScript. Essas bibliotecas variam amplamente em abordagem, conteúdo e complexidade, mas uma constante permanece: elas devem ser fáceis de utilizar, implicar a menor quantidade de sobrecarga e ser capazes de funcionar em todos os navegadores que almejamos. É compreensível, então, que o entendimento de como as melhores bibliotecas JavaScript são construídas possa nos fornecer ótimos insights referentes à forma como nosso próprio código pode ser construído para atingir esses mesmos objetivos. Este livro irá prepará-lo para descobrir as técnicas e os segredos utilizados por essas bases de código de destaque e aproveitar tudo isso em um único recurso. Neste livro analisaremos as técnicas que foram (e continuam sendo) utilizadas para criar as bibliotecas JavaScript mais populares. Vamos conhecer essas bibliotecas! 26
4 Capítulo 1 Surge o ninja 1.1 Bibliotecas JavaScript que vamos utilizar As técnicas e práticas utilizadas para criar bibliotecas JavaScript modernas serão o foco de nossa atenção neste livro. A principal biblioteca que vamos analisar é, evidentemente, a jquery, a qual atingiu notoriedade como a biblioteca JavaScript mais onipresente em uso atualmente. A jquery ( foi criada por John Resig e lançada em janeiro de Ela popularizou o uso de seletores CSS para correspondência de conteúdo do DOM (Document Object Model). Dentre suas muitas capacidades, ela fornece manipulação do DOM, Ajax, tratamento de eventos e funcionalidade de animação. Essa biblioteca veio para dominar o mercado de bibliotecas JavaScript, sendo utilizada em centenas de milhares de sites e interagindo com milhões de usuários. Por meio de uso e feedback consideráveis, essa biblioteca foi aprimorada ao longo dos anos e continua a evoluir, tornando-se a base de código ideal que é hoje. Além de analisar o código de exemplo da jquery, vamos também verificar as técnicas utilizadas pelas seguintes bibliotecas: Prototype ( A principal dentre as bibliotecas JavaScript modernas, criada por Sam Stephenson e lançada em Essa biblioteca incorpora DOM, Ajax e funcionalidade de eventos, além de técnicas de programação funcional orientada a objetos e a aspectos. Yahoo! UI ( Resultado do desenvolvimento interno do framework JavaScript no Yahoo! e lançada ao público em fevereiro de A Yahoo! UI (YUI) inclui capacidades de DOM, Ajax, eventos e animação, além de vários widgets pré-construídos (de calendário, grade, expansíveis e outros). base2 ( Criada por Dean Edwards e lançada em março de Essa biblioteca suporta funcionalidades de DOM e de eventos. Seu maior apelo é que ela tenta implementar as várias especificações W3C de uma maneira universal e cross-browser. Todas essas bibliotecas são bem construídas e lidam com as questões a que se propõem de forma detalhada. Por essas razões, elas servirão como uma boa base para análises adicionais, e a compreensão da construção fundamental dessas bases de código nos dará insights quanto ao processo da construção de bibliotecas JavaScript de classe mundial. Mas essas técnicas não são úteis apenas para a construção de grandes bibliotecas; elas podem ser aplicadas a todos os códigos JavaScript, independentemente do tamanho. 27
5 28 Segredos do Ninja JavaScript A composição de uma biblioteca JavaScript pode ser resumida em três aspectos: uso avançado da linguagem JavaScript; construção meticulosa de código cross-browser; uso das melhores práticas atuais que reúnem todos os elementos. Analisaremos cuidadosamente esses três aspectos em cada uma das bibliotecas para coletar uma base de conhecimento completa que possamos utilizar para criar nosso próprio código JavaScript eficiente. 1.2 Compreendendo a linguagem JavaScript Muitos codificadores JavaScript, conforme avançam em suas carreiras, podem chegar ao ponto de utilizar ativamente a ampla gama de elementos que compõem a linguagem, incluindo objetos, funções e (se estiverem prestando atenção às tendências de codificação) até mesmo funções embutidas anônimas. Em muitos casos, no entanto, suas habilidades não podem ser levadas além de seus níveis fundamentais. Além disso, geralmente há um entendimento muito fraco do propósito e da implementação de closures em JavaScript, o que demonstra, fundamental e definitivamente, a importância de funções para a linguagem. O JavaScript consiste de um relacionamento próximo entre objetos, funções e closures (veja a figura 1.1). A compreensão da forte relação entre esses três conceitos pode melhorar amplamente nossa capacidade de programação JavaScript, dando- -nos uma estrutura sólida para qualquer tipo de desenvolvimento de aplicação. OBJETOS CLOSURES FUNÇÕES Figura 1.1 JavaScript consiste de um relacionamento próximo entre objetos, funções e closures. Muitos desenvolvedores JavaScript, especialmente aqueles que vêm de uma experiência orientada a objetos, podem prestar muita atenção a objetos, mas à custa do entendimento da forma como funções e closures contribuem ao panorama maior. Além desses conceitos fundamentais, há duas funcionalidades em JavaScript que são terrivelmente subutilizadas: temporizadores (timers) e expressões regulares. Esses dois conceitos têm aplicação em praticamente qualquer base de código
6 Capítulo 1 Surge o ninja 29 JavaScript, mas nem sempre são utilizados em seu pleno potencial por não serem bem compreendidos. Um bom entendimento da forma como temporizadores operam dentro do navegador, o que frequentemente é um mistério, fornece-nos a capacidade de enfrentar tarefas de codificação complexas como computações de longa duração e animações suaves. E uma compreensão sólida da forma como expressões regulares funcionam permite-nos simplificar o que do contrário seriam fragmentos de código bastante complicados. Como outro ponto de destaque para nosso estudo avançado da linguagem JavaScript, veremos a instrução with, no capítulo 10, e o polêmico método eval(), no capítulo 9 duas funcionalidades importantes, mas controversas, que foram banalizadas, malutilizadas e até mesmo condenadas por muitos programadores JavaScript. Nota: aqueles que vêm acompanhando as repercussões no mundo do desenvolvimento web saberão que ambos esses tópicos são controversos e que se tornarão ou obsoletos ou limitados em versões futuras do JavaScript. Mas como você provavelmente encontrará esses conceitos em códigos existentes, é importante compreendê-los, ainda que não planeje utilizá-los em códigos futuros. Analisando o trabalho de alguns dos melhores codificadores JavaScript, veremos que, quando utilizadas apropriadamente, funcionalidades avançadas da linguagem permitem a criação de alguns fragmentos fantásticos de código que seriam impossíveis sem elas. Em grande parte, essas funcionalidades avançadas também podem ser utilizadas para alguns exercícios interessantes de metaprogramação, moldando o JavaScript no que quisermos que ele seja. Aprender a utilizar funcionalidades avançadas da linguagem certamente elevará nosso código a níveis mais altos, e aprimorar nossas habilidades para agrupar esses conceitos e funcionalidades nos dará um nível de entendimento que colocará a criação de qualquer tipo de aplicação JavaScript dentro de nosso alcance. Essa estrutura nos dará uma base sólida para avançarmos, iniciando pela elaboração de códigos consistentes e cross-browser. 1.3 Considerações sobre cross-browser O aperfeiçoamento de nossas habilidades de programação JavaScript poderá nos ajudar muito, especialmente agora que o JavaScript ultrapassou os limites do navegador e está sendo utilizado no servidor com engines JavaScript como Rhino
7 30 Segredos do Ninja JavaScript e V8 e bibliotecas como Node.js. Mas ao desenvolver aplicações JavaScript com base no navegador (o foco deste livro), mais cedo ou mais tarde vamos nos deparar com os navegadores em si e seus problemas e inconsistências enlouquecedores. Em um mundo perfeito, todos os navegadores estariam livres de bugs e suportariam padrões web de forma consistente, mas todos nós sabemos que com certeza não vivemos nesse mundo. A qualidade dos navegadores melhorou amplamente nos últimos tempos, mas eles ainda têm alguns bugs, APIs faltantes e peculiaridades de navegadores específicos com as quais teremos de lidar. Desenvolver uma estratégia abrangente para o tratamento das questões desses navegadores e tornar-se intimamente familiarizado com suas diferenças e peculiaridades é tão importante, se não mais, quanto a proficiência no JavaScript em si. Ao elaborar aplicações para navegadores, ou bibliotecas JavaScript a serem utilizadas neles, a escolha de quais navegadores suportar é um aspecto importante. Provavelmente gostaríamos de suportar todos os navegadores, mas limitações em recursos de desenvolvimento e testes não permitem isso. Então, como decidimos quais navegadores suportar, e em que nível? Uma abordagem que podemos empregar é uma levemente emprestada de uma abordagem mais antiga do Yahoo! que era chamada de suporte de navegador graduado. Nessa técnica, criamos uma matriz de suporte de navegadores que funciona como uma representação da importância de um navegador e de sua plataforma para nossas necessidades. Em tal tabela, listamos as plataformas-alvo em um eixo e os navegadores no outro. Então, nas células da tabela damos uma graduação (de A a F, ou qualquer outro sistema de graduação que atenda às nossas necessidades) para cada combinação de navegador/plataforma. A tabela 1.1 mostra um exemplo hipotético de tal tabela. Tabela 1.1 Matriz de suporte de navegadores hipotética Windows OS X Linux ios Android IE 6 N/A N/A N/A N/A IE 7, 8 N/A N/A N/A N/A IE 9 N/A N/A N/A N/A Firefox N/A Chrome Safari N/A N/A Opera
8 Capítulo 1 Surge o ninja 31 Note que não preenchemos nenhuma graduação. As graduações que você vai atribuir a uma combinação específica de plataforma e navegador são inteiramente dependentes das necessidades e dos requisitos de seu projeto, assim como de outros fatores importantes, como a composição do público-alvo. Podemos utilizar essa abordagem para formular graduações que meçam quão importante é o suporte para a(o) plataforma/navegador, e combinar essa informação com o custo desse suporte para tentar formular o conjunto ideal de navegadores suportados. Exploraremos isso mais detalhadamente no capítulo 11. Uma vez que não é prático desenvolver para um grande número de combinações de plataforma/navegador, devemos pesar os custos versus os benefícios do suporte para os vários navegadores. Uma análise desse tipo precisa fazer várias considerações, as principais sendo: as expectativas e necessidades do público-alvo; a participação de mercado do navegador; a quantidade de esforço necessária para suportar o navegador. O primeiro item é subjetivo e apenas seu projeto pode determiná-lo. A participação de mercado, por outro lado, frequentemente pode ser medida utilizando informações disponíveis. E uma estimativa aproximada do esforço envolvido no suporte de cada navegador pode ser determinada pela consideração das capacidades dos navegadores e de sua adequação a padrões modernos. A figura 1.2 mostra um quadro de exemplo que representa informações sobre a utilização de navegadores (obtidas a partir do StatCounter para agosto de 2012) e nossas opiniões pessoais quanto ao custo de desenvolvimento para os principais navegadores desktop. IE 6 IE 7,8 IE 9 Firefox Safari Chrome Opera Benefício (participação de mercado) Custo (desenvolvimento e testes) Figura 1.2 Analisar o custo versus o benefício do suporte de vários navegadores desktop indica a que devemos dedicar nossos esforços.
9 32 Segredos do Ninja JavaScript Comparar graficamente o benefício com o custo mostra imediatamente onde podemos dedicar nosso esforço para obter o maior retorno. Aqui estão alguns detalhes destacáveis nesse gráfico: Ainda que exija relativamente muito mais esforço suportar o Internet Explorer 7 e 8 do que os navegadores que obedecem aos padrões, eles ainda têm uma grande participação de mercado, o que faz com que o esforço extra valha a pena se esses usuários fizerem parte do nosso público-alvo. O IE 9, tendo feito grandes avanços no sentido de adequação aos padrões, é mais fácil de suportar do que versões anteriores do IE, e já está ganhando terreno em participação de mercado. A escolha de suporte ao Firefox e ao Chrome é óbvia, pois eles têm uma grande participação de mercado e são fáceis de suportar. Apesar de o Safari ter uma participação de mercado relativamente baixa, ele ainda merece suporte, já que sua natureza de adequação aos padrões torna seu custo baixo. (Como regra prática, se algo funcionar no Chrome, provavelmente funcionará no Safari não obstante casos patológicos.) O Opera, ainda que não demande mais esforço do que o Safari, pode ficar de fora no desktop em razão de sua minúscula participação de mercado. Mas se as plataformas móveis forem importantes para você, o Opera móvel será um participante mais importante; veja a figura 1.3. Nada realmente tem de ser dito quanto ao IE 6. (Veja Tudo muda muito drasticamente quando analisamos o panorama móvel, conforme mostra a figura 1.3. Opera Android Safari Nokia Blackberry Benefício (participação de mercado) Custo (desenvolvimento e testes) Figura 1.3 O panorama móvel, em que custos de desenvolvimento são razoavelmente uniformes, se resume a estatísticas de uso.
10 Capítulo 1 Surge o ninja 33 Evidentemente, nada é nunca tão óbvio. Pode ser seguro dizer que o benefício é mais importante do que o custo, mas, em última análise, tudo se resume às escolhas daqueles que fazem parte do processo de tomada de decisão, considerando fatores como as necessidades do mercado e outras considerações de negócio. Mas a quantificação dos custos versus os benefícios é um bom ponto de partida para a tomada dessas importantes decisões de suporte. Da mesma forma, esteja ciente de que o panorama muda rapidamente. Manter-se atualizado em sites como é uma sábia precaução. Outro fator possível para organizações com limitações de recursos é a capacidade da equipe de desenvolvimento. Ainda que a principal razão para o desenvolvimento de uma aplicação seja seu uso por usuários finais, desenvolvedores podem ter de aprimorar as habilidades necessárias para desenvolver a aplicação e atender às necessidades desses usuários. Tais considerações devem ser consideradas durante a fase de análise de custo. O custo de desenvolvimento cross-browser pode depender significativamente da habilidade e da experiência dos desenvolvedores e este livro pretende impulsionar esse nível de habilidade, por isso vamos seguir em frente e analisar as melhores práticas atuais. 1.4 Melhores práticas atuais Dominar a linguagem JavaScript e ter uma noção de questões de codificação cross- -browser são partes importantes de se tornar um especialista no desenvolvimento de aplicações, mas não representam tudo. Para atingir os níveis mais elevados, você também precisa apresentar os traços que inúmeros desenvolvedores anteriores provaram ser benéficos para o desenvolvimento de códigos de qualidade. Esses traços, que analisaremos mais detalhadamente no capítulo 2, são conhecidos como as melhores práticas, e, além do domínio da linguagem, incluem elementos tais como: realização de testes; análise de desempenho; habilidades de depuração. É de importância vital aderir a essas práticas em sua codificação e fazê-lo com frequência; a complexidade do desenvolvimento cross-browser certamente justifica isso. Vamos analisar algumas dessas práticas.
11 34 Segredos do Ninja JavaScript Melhor prática atual: realização de testes Ao longo deste livro, vamos aplicar várias técnicas de teste que visam garantir que nossos exemplos de código operem de acordo com o pretendido, além de servir de exemplo de como testar códigos gerais. A principal ferramenta que utilizaremos para testes é a função assert(), cujo propósito é declarar se uma premissa é verdadeira ou falsa. A forma geral dessa função é assert(condition, message); na qual o primeiro parâmetro é uma condição que deve ser verdadeira e o segundo é uma mensagem que será apresentada se ela não o for. Considere isto, por exemplo: assert(a == 1, "Disaster! a is not 1!"); Se o valor da variável a não for igual a 1, a asserção falha, e uma mensagem exageradamente dramática será apresentada. Note que a função assert() não é uma funcionalidade inata da linguagem (algumas linguagens, como Java, fornecem tais capacidades), por isso nós mesmos vamos implementá-la. Discutiremos sua implementação e seu uso no capítulo Melhor prática atual: análise de desempenho Outra prática importante é a análise de desempenho. Os engines JavaScript dos navegadores vêm fazendo grande progresso no desempenho do JavaScript em si, mas isso não é desculpa para escrevermos códigos JavaScript desleixados e ineficientes. Mais adiante neste livro, utilizaremos códigos como o que vemos a seguir para coletar informações de desempenho: start = new Date().getTime(); for (var n = 0; n < maxcount; n++) { /* realiza a operação a ser medida */ } elapsed = new Date().getTime() - start; assert(true,"measured time: " + elapsed); Aqui, encapsulamos a execução do código a ser medido com a coleção de carimbos de data e hora (timestamps): um antes de executarmos o código e outro depois. A diferença entre eles nos diz quanto tempo o código demorou para ser executado, informação que podemos comparar com as alternativas de código, as quais medimos utilizando a mesma técnica.
12 Capítulo 1 Surge o ninja 35 Note como o código é efetuado várias vezes; nesse exemplo, efetuamos o código pelo número de vezes representado por maxcount. Uma vez que uma operação individual de código ocorre muito rapidamente para que seja medida de forma confiável, precisamos efetuar o código várias vezes para obtermos um valor mensurável. Frequentemente, essa contagem pode atingir as dezenas de milhares, ou até os milhões, dependendo da natureza do código a ser medido. Um pouco de tentativa e erro permite-nos escolher um valor razoável. Essas técnicas de melhores práticas, assim como outras que aprenderemos ao longo do caminho, vão melhorar muito nosso desenvolvimento JavaScript. O desenvolvimento de aplicações com os recursos restritos que um navegador fornece, acoplado ao mundo cada vez mais complexo da capacidade e da compatibilidade dos navegadores, faz com que ter um conjunto robusto e completo de habilidades seja uma necessidade. 1.5 Resumo Aqui está um resumo do que aprendemos neste capítulo: O desenvolvimento de aplicações web cross-browser é difícil, mais difícil do que pensaria a maioria das pessoas. Para conseguirmos isso, devemos não apenas dominar a linguagem JavaScript, mas também ter um conhecimento completo sobre os navegadores, assim como de suas peculiaridades e inconsistências. É importante ainda ter uma boa base das melhores práticas atuais padronizadas. Ainda que o desenvolvimento JavaScript certamente possa ser desafiador, existem aquelas almas corajosas que já seguiram essa rota tortuosa: os desenvolvedores das bibliotecas JavaScript. Vamos analisar o conhecimento demonstrado na construção dessas bases de código, efetivamente fomentando nossas habilidades de desenvolvimento e elevando-as a um nível de primeira classe. Essa exploração com certeza será informativa e educacional vamos aproveitar essa jornada!
John Resig Bear Bibeault
John Resig Bear Bibeault Tradução Rafael Zanolli Novatec Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830 USA. Copyright 2009 by Manning Publications.
Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach
Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach Novatec Original English language edition published by Manning Publications Co., Copyright 2011 by Manning Publications.
Ben Vinegar Anton Kovalyov
Ben Vinegar Anton Kovalyov Novatec Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830 USA. Copyright 2013 by Manning Publications. Portuguese-language
JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec
JavaScript de Alto Desempenho Nicholas C. Zakas Novatec Authorized translation of the English edition of High Performance JavaScript ISBN 978-0-596-80279-0 2010, Nicholas C. Zakas. This translation is
Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14
Adeel Javed Novatec Original English language edition published by Apress, Copyright 2016 by Apress, Inc. Portugueselanguage edition for Brazil copyright 2017 by Novatec Editora. All rights reserved. Edição
Indira Knight. Novatec
Indira Knight Novatec Original English language edition published by Apress, Copyright 2018 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2018 by Novatec Editora. All rights reserved.
Arduino Básico Michael McRoberts
Arduino Básico Michael McRoberts Novatec Original English language edition published by Apress Inc., Copyright 2010 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2011 by Novatec Editora.
jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec
jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec Copyright 2012 da Novatec Editora Ltda. Todos os direitos reservados
Construindo Aplicações Node com MongoDB e Backbone Mike Wilson
Construindo Aplicações Node com MongoDB e Backbone Mike Wilson Novatec Authorized Portuguese translation of the English edition of titled Building Node Applications with MongoDB and Backbone ISBN 9781449337391
Primeiros Passos com o Netduino
Primeiros Passos com o Netduino Chris Walker Novatec Authorized Portuguese translation of the English edition of titled Getting Started with Netduino, First Edition ISBN 9781449302450 2012 Secret Labs
Web Interativa com Ajax e PHP
Web Interativa com Ajax e PHP Juliano Niederauer Novatec Copyright 2007, 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta
William Pereira Alves
William Pereira Alves Novatec Novatec Editora Ltda. 2017. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Primeiros Passos com o Arduino Massimo Banzi
Primeiros Passos com o Arduino Massimo Banzi Novatec Authorized Portuguese translation of the English edition of Getting Started with Arduino, Second Edition ISBN 9781449309879 2011 Massimo Banzi. This
Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec
Métricas Como melhorar os principais resultados de sua empresa Martin Klubeck Novatec Original English language edition published by Apress Inc., copyright 2011 by Martin Klubeck. Portugueselanguage edition
Ademir Cristiano Gabardo. Novatec
Ademir Cristiano Gabardo Novatec Novatec Editora Ltda. 2012. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec
Guia Mangá Álgebra Linear Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec The Manga Guide to Linear Algebra is a translation of the Japanese original, Manga de wakaru senkeidaisuu, published
A Arte de Escrever Programas Legíveis
A Arte de Escrever Programas Legíveis Técnicas simples e práticas para a elaboração de programas fáceis de serem lidos e entendidos Dustin Boswell Trevor Foucher Novatec Authorized Portuguese translation
Raspberry Pi Manual do Usuário
Raspberry Pi Manual do Usuário Eben Upton Gareth Halfacree Novatec All rights reserved. Authorized translation from the English language edition entitled Raspberry Pi User Guide, published by John Wiley
Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec
Programando para iphone e ipad Aprenda a construir aplicativos para o ios André Milani Novatec Copyright 2012 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.
Osvaldo Santana Thiago Galesi
Osvaldo Santana Thiago Galesi Novatec Copyright 2010 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial,
Criando Relatórios com PHP Pablo Dall Oglio
Criando Relatórios com PHP Pablo Dall Oglio Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo
Luiz Eduardo Borges. Novatec
Luiz Eduardo Borges Novatec Copyright 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
WordPress 3 Básico Stephanie Leary
WordPress 3 Básico Stephanie Leary Novatec Original English language edition published by Apress Inc., Copyright 2010 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2010 by Novatec Editora.
Aditya Y. Bhargava. Novatec
Aditya Y. Bhargava Novatec Original English language edition published by Manning Publications Co., Copyright 2015 by Manning Publications. Portuguese-language edition for Brazil copyright 2017 by Novatec
Ademir Cristiano Gabardo. Novatec
Ademir Cristiano Gabardo Novatec Novatec Editora Ltda. 2012. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Ryan Mitchell. Novatec
Ryan Mitchell Novatec Authorized Portuguese translation of the English edition of titled Web Scraping with Python, ISBN 9781491910290 2015 Ryan Mitchell. This translation is published and sold by permission
Karl Matthias Sean P. Kane
Karl Matthias Sean P. Kane Novatec Authorized Portuguese translation of the English edition of titled Docker: Up and Running, ISBN 9781491917572 2015 Karl Matthias, Sean P. Kane. This translation is published
Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec
Introdução às Expressões Regulares Michael Fitzgerald Novatec Authorized Portuguese translation of the English edition of titled Introducing Regular Expressions, First Edition ISBN 9781449392680 2012 Michael
Jody Culkin e Eric Hagan
Jody Culkin e Eric Hagan Novatec Authorized Portuguese translation of the English edition of Make: Learn Electronics with Arduino ISBN 9781680453744 2017 Jody Culkin and Eric Hagan, published by Maker
desenvolva aplicações web profissionais com uso dos poderosos recursos de estilização das css3 Maurício Samy Silva
CSS3 desenvolva aplicações web profissionais com uso dos poderosos recursos de estilização das css3 Maurício Samy Silva Novatec Copyright 2012 da Novatec Editora Ltda. Todos os direitos reservados e protegidos
Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan
Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan Novatec Authorized Portuguese translation of the English edition of Regular Expressions Cookbook ISBN 9780596520687 2009, Jan Goyvaerts and Steve
Jonathan Weber e a equipe da LunaMetrics
Jonathan Weber e a equipe da LunaMetrics Novatec Original English language edition published by Apress, Copyright 2015 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2016 by Novatec Editora.
Blender 3D jogos e animações interativas Allan Brito
Blender 3D jogos e animações interativas Allan Brito Novatec Copyright 2011 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,
jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec
jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec Copyright 2012, 2013 da Novatec Editora Ltda. Todos os direitos
Allen B. Downey. Novatec
Allen B. Downey Novatec Authorized Portuguese translation of the English edition of Think Python, 2nd Edition ISBN 9781491939369 2016 Allen B. Downey. This translation is published and sold by permission
Benjamin Bengfort Jenny Kim
Benjamin Bengfort Jenny Kim Novatec Authorized Portuguese translation of the English edition of Data Analytics with Hadoop, ISBN 9781491913703 2016 Benjamin Bengfort, Jenny Kim. This translation is published
4ª Edição Revisada e Ampliada Aurelio Marinho Jargas
4ª Edição Revisada e Ampliada Aurelio Marinho Jargas Novatec Copyright 2006, 2008, 2009, 2012 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida
Ademir C. Gabardo. Novatec
Ademir C. Gabardo Novatec Copyright 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
André Gugliotti. Novatec
André Gugliotti Novatec Novatec Editora Ltda. 2014. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem
Análise de Regressão
Guia Mangá Análise de Regressão Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. Novatec The Manga Guide to Regression Analysis is a translation of the japanese original, Manga de wakaru tōkei-gaku kaiki
Introdução ao GitHub Peter Bell e Brent Beer
Introdução ao GitHub Peter Bell e Brent Beer Novatec Authorized Portuguese translation of the English edition of Introducing GitHub, ISBN 9781491949740 2014 Pragmatic Learning, Inc. This translation is
Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec
Pedro Monteiro da Silva Eleutério Marcio Pereira Machado Novatec Copyright 2011 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta
Shyam Seshadri & Brad Green
Shyam Seshadri & Brad Green Novatec Authorized Portuguese translation of the English edition of Angular JS: Up and Running, ISBN 9781491901946 2014 Shyam Seshadri and Brad Green. This translation is published
marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec
marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec Original English language edition published by CA Technologies, Copyright 2011 by CA Technologies.
Ademir Ribeiro dos Passos
Ademir Ribeiro dos Passos Novatec Novatec Editora Ltda. 2018. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Robson Santos da Silva
Robson Santos da Silva Novatec Copyright 2013 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Maurício Samy Silva. Novatec
Maurício Samy Silva Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Aravind Shenoy Anirudh Prabhu
Aravind Shenoy Anirudh Prabhu Novatec Original English language edition published by Apress, Copyright 2016 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2016 by Novatec Editora. All
Simon Holmes. Novatec
Simon Holmes Novatec Original English language edition published by Manning Publications Co., Copyright 2014 by Manning Publications. Portuguese-language edition for Brazil copyright 2016 by Novatec Editora.
Miguel Grinberg. Novatec
Miguel Grinberg Novatec Authorized Portuguese translation of the English edition of Flask Web Development ISBN 9781491991732 2018 Miguel Grinberg. This translation is published and sold by permission of
Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40
David Sklar Novatec Authorized Portuguese translation of the English edition of Learning PHP, ISBN 9781491933572 2016 Davis Sklar. This translation is published and sold by permission of O'Reilly Media,
Primeiros Passos com o Arduino
Primeiros Passos com o Arduino 2ª Edição Massimo Banzi e Michael Shiloh Novatec Authorized Portuguese translation of the English edition of Make: Getting Started with Arduino, 3rd Edition 2014 Massimo
2ª edição. Daniel Adorno Gomes. Novatec
2ª edição Daniel Adorno Gomes Novatec Copyright 2010, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial,
Semmy Purewal. Novatec
Semmy Purewal Novatec Authorized Portuguese translation of the English edition of titled Learning Web App Development, ISBN 9781449370190 2014 Semmy Purewal. This translation is published and sold by permission
Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec
Guia Mangá Microprocessadores Michio Shibuya, Takashi Tonagi e Office Sawa Novatec The Manga Guide to Microprocessors is a translation of the japanese original, Manga de wakaru CPU, published by Ohmsha,
Novatec Editora Ltda
C.J. Date Novatec Authorized Portuguese translation of the English edition of titled View Updating and Relational Theory, ISBN 9781449357849 2012 Chris Date. This translation is published and sold by permission
Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee
Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee Novatec Copyright 2004, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610
Maurício Samy Silva. Novatec
Maurício Samy Silva Novatec Copyright 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Allan Liska e Timothy Gallo. Novatec
Allan Liska e Timothy Gallo Novatec Authorized Portuguese translation of the English edition of Ransomware, ISBN 9781491967881 2017 Allan Liska, Timothy Gallo. This translation is published and sold by
Edécio Fernando Iepsen
Edécio Fernando Iepsen Novatec Novatec Editora Ltda. 2018. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Matheus Marabesi Michael Douglas
Matheus Marabesi Michael Douglas Novatec Novatec Editora Ltda. 2017. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Curso online de. Formação em Front-End. Plano de Estudo
Curso online de Formação em Front-End Plano de Estudo Descrição do programa O Programa de Desenvolvimento Web lhe oferece conhecimentos para desenvolver habilidades necessárias para se tornar um Desenvolvedor
Arduino Básico. 2ª edição. Michael McRoberts. Novatec
Arduino Básico 2ª edição Michael McRoberts Novatec Original English language edition published by Apress, Copyright 2013 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2015 by Novatec
Novatec Editora Ltda
MARK GEDDES novatec Copyright 2016 by Mark Geddes. Title of English-language original: Arduino Project Handbook, ISBN 978-1-59327-690-4, published by No Starch Press. Portuguese-language edition copyright
Hélio Engholm Jr. Novatec
Hélio Engholm Jr. Novatec Copyright 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen
Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen Novatec Authorized Portuguese translation of the English edition of titled Getting Started with Sensors, ISBN 9781449367084 2013 Tero Karvinen,
Guia Mangá Motores elétricos
Guia Mangá Motores elétricos Autor: Masayuki Morimoto Arte: Ren Shimazu Produção: Trend-pro Co., Ltd novatec Original Japanese edition Manga de Wakaru Motors by Masayuki Morimoto and TREND-PRO Co., Ltd.
Adrian Pruteanu. Novatec
Adrian Pruteanu Novatec Copyright Packt Publishing 2019. First published in the English language under the title Becoming the Hacker (9781788627962) Copyright Packt Publishing 2019. Publicação original
Aula 17 Introdução ao jquery
Aula 17 Introdução ao jquery jquery é uma biblioteca JavaScript criada por John Resig e disponibilizada como software livre e aberto, ou seja, de emprego e uso regido segundo licença conforme as regras
Desenvolvimento de Grandes Aplicações Web
Desenvolvimento de Grandes Aplicações Web Kyle Loudon Introdução de Nate Koechley Novatec Authorized Portuguese translation of the English edition of titled Developing Large Web Applications, First Edition,
2ª Edição Cláudio Torres
2ª Edição Cláudio Torres Novatec Novatec Editora Ltda. 2009, 2018. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Rodrigo de Barros Paes
Rodrigo de Barros Paes Novatec Novatec Editora Ltda. 2016. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto
Gerenciamento de projetos Sem Crise Como evitar problemas previsíveis para o sucesso do projeto Bart Gerardi Novatec Original English language edition published by Apress Inc., Copyright 2011 by Apress
Kenneth Reitz Tanya Schlusser
Kenneth Reitz Tanya Schlusser Novatec Authorized Portuguese translation of the English edition of The Hitchhiker s Guide to Python ISBN 9781491933176 2016 Kenneth Reitz, Tanya Schlusser. This translation
Introdução à Programação para Dispositivos Móveis
Introdução à Programação para Dispositivos Móveis Aula 02 Prof. Diemesleno Souza Carvalho [email protected] http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Plataformas
Maurício Samy Silva. Novatec
Maurício Samy Silva Novatec Copyright 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
Jonathan Stark Brian Jepson
Construindo Aplicativos Android com HTML, CSS e JavaScript Jonathan Stark Brian Jepson Novatec Authorized Portuguese translation of the English edition of titled Building Android Apps with HTML, CSS, and
AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec
AngularJS Uma abordagem prática e objetiva Michael Henrique R. Pereira Novatec Novatec Editora Ltda. [2014]. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução
Adriano Pataro. Novatec
Adriano Pataro Novatec Novatec Editora Ltda. 2019. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem
Guia Mangá Circuitos Eletrônicos
Guia Mangá Circuitos Eletrônicos Autor: Kenichi Tanaka Arte: Yama Takayama Produção: Trend-Pro, co., ltd novatec Original Japanese edition Manga de Wakaru Denshi Kairo by Kenichi Tanaka and TREND-PRO Co.,
Chris Binnie. Novatec
Chris Binnie Novatec All rights reserved. This translation is published under license with the original publisher John Wiley & Sons, Inc. Copyright 2016 by John Wiley & Sons, Inc., Indianapolis, Indiana.
Keith Wood. Apresentação de Dave Methvin. Novatec
Keith Wood Apresentação de Dave Methvin Novatec Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830 USA. Copyright 2013 by Manning Publications.
Shelley Powers. Novatec
Shelley Powers Novatec Authorized Portuguese translation of the English edition of Learning Node, 2nd Edition, ISBN 9781491943120 2016 Shelly Powers. This translation is published and sold by permission
Dinâmica dos fluidos
Guia mangá Dinâmica dos fluidos Autor: Masahiro Takei Arte: Mai Matsushita Produção: Office sawa novatec Original Japanese edition Manga de Wakaru Ryuutai Rikigaku by Masahiro Takei and Office Sawa. Copyright
Sérgio de Oliveira. Novatec
Sérgio de Oliveira Novatec Novatec Editora Ltda. 2017. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Desenvolvendo Websites com PHP
Desenvolvendo Websites com PHP 3ª Edição Juliano Niederauer Novatec Copyright 2009, 2011, 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida
Jessey Bullock Jeff T. Parker
Jessey Bullock Jeff T. Parker Novatec All rights reserved. This translation is published under license with the original publisher John Wiley & Sons, Inc. Copyright 2017 by John Wiley & Sons, Inc., Indianapolis,
Novatec Editora Ltda. 2015.
Ben Smith Novatec Original English language edition published by Apress, Copyright 2015 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2015 by Novatec Editora. All rights reserved. Edição
Conteúdo Programático JavaScript Web Developer
Destinatários - Profissionais que pretendam adquirir competências para programar em JavaScript; - Programadores Web; - Gestores de Websites; - Designers; - Todos os que pretendem aprender tudo sobre JavaScript,
Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo
Introdução Geral Prof. Vicente Paulo de Camargo Web e Internet A Internet é uma rede de computadores que conecta milhões de computadores Se comunicam através do protocolos específicos A Web é uma forma
Guia Mangá FISIOLOGIA. Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec
Guia Mangá FISIOLOGIA Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec The Manga Guide to Physiology is a translation of the Japanese original, Manga de wakaru kisoseirigaku, published by Ohmsha,
3ª Edição Nilo Ney Coutinho Menezes
3ª Edição Nilo Ney Coutinho Menezes Novatec Copyright 2010, 2014, 2019 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,
Chris Goward. Novatec
Chris Goward Novatec All rights reserved. This translation is published under license with the original publisher John Wiley & Sons, Inc. from the English language edition entitled You Should Test That
Pré-requisitos: Conhecimentos de informática gerencial e lógica de programação.
CURSO DESENVOLVEDOR FRONT-END HTML5/CSS3/JavaScript Objetivo: Este curso visa introduzir o aluno do mundo do desenvolvimento Web, com aplicabilidade, ensino e capacitação nas principais linguagens de diagramação
A Arte de Escrever Programas Legíveis
A Arte de Escrever Programas Legíveis Técnicas simples e práticas para a elaboração de programas fáceis de serem lidos e entendidos Dustin Boswell Trevor Foucher Novatec Authorized Portuguese translation
Roberto Cohen. Novatec
Roberto Cohen Novatec Copyright 2015 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Guia Mangá Circuitos Eletrônicos
Guia Mangá Circuitos Eletrônicos Autor: Kenichi Tanaka Arte: Yama Takayama Produção: Trend-Pro, co., ltd novatec Original Japanese edition Manga de Wakaru Denshi Kairo by Kenichi Tanaka and TREND-PRO Co.,
Roni Antônio Mendes. Novatec
Roni Antônio Mendes Novatec Copyright 2018 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer
