A Arte de Escrever Programas Legíveis
|
|
|
- Cacilda Tomé Madeira
- 8 Há anos
- Visualizações:
Transcrição
1 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
2 Authorized Portuguese translation of the English edition of titled The Art of Readable Code, First Edition ISBN Dustin Boswell and Trevor Foucher. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra The Art of Readable Code, First Edition ISBN Dustin Boswell e Trevor Foucher. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. 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 técnica: Edgard Damiani Revisão gramatical: Débora Facin Editoração eletrônica: Carolina Kuwabata ISBN: Histórico de impressões: Fevereiro/2012 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) Boswell, Dustin 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 ; [tradução Rafael Zanolli]. -- São Paulo : Novatec Editora ; Sebastopol, CA : O'Reilly, Título original: The art of readable code. ISBN Linguagem de programação (Computadores) 2. Software - Desenvolvimento 3. Teoria da codificação I. Foucher, Trevor. II. Título CDD Índices para catálogo sistemático: 1. Desenvolvimento de linguagens de programação : Computadores : Processamento de dados GRPM
3 Sumário Prefácio...11 Capítulo 1 Códigos devem ser fáceis de entender...15 O que torna um código melhor?...16 Teorema fundamental da legibilidade Menor é sempre melhor? Por acaso o tempo-para-entender entra em conflito com outros objetivos?...18 A parte difícil...18 Parte I Melhorias superficiais...19 Capítulo 2 Criação de nomes informativos...20 Escolha palavras específicas Evite nomes genéricos como tmp e retval...23 Prefira nomes concretos a nomes abstratos...26 Inclusão de informações extras a um nome...29 Qual deve ser o comprimento de um nome?...32 Utilize a formatação dos nomes para transmitir significado...34 Sumário...36 Capítulo 3 Nomes que não podem ser mal interpretados...37 Exemplo: Filter()...38 Exemplo: Clip(text, length)...38 Prefira min e max para limites (inclusivos)...39 Prefira first e last para intervalos inclusivos...40 Prefira begin e end para intervalos do tipo inclusivo/exclusivo...40 Nomenclatura de booleanos Atendendo às expectativas de seus usuários...42 Exemplo: avaliação de vários candidatos a nomes Sumário... 46
4 6 A Arte de Escrever Programas Legíveis Capítulo 4 Estética...47 Por que a estética é importante?...48 Reorganize quebras de linhas para que sejam consistentes e compactas...49 Utilize métodos para eliminar irregularidades...52 Utilize o alinhamento em colunas quando adequado...53 Escolha um ordenamento significativo e utilize-o de modo consistente...54 Organize declarações em blocos...55 Divida seus códigos em parágrafos...56 Estilo pessoal versus consistência...58 Sumário...59 Capítulo 5 Como saber o que comentar...60 O que NÃO devemos comentar Registre seus pensamentos...64 Coloque-se na posição do leitor...67 Considerações finais como superar seu bloqueio de escritor...72 Sumário...73 Capítulo 6 Crie comentários precisos e compactos...74 Mantenha seus comentários compactos...75 Evite pronomes ambíguos...75 Melhore referências imprecisas...76 Descreva o comportamento das funções de modo preciso...76 Utilize exemplos de entrada/saída para ilustrar situações confusas Declare a intenção de seu código...78 Comentários de parâmetros de função nomeados...79 Utilize palavras informativas...80 Sumário Parte II Simplificação de loops e lógica...82 Capítulo 7 Como facilitar a leitura do fluxo de controle...83 Ordem dos argumentos em condicionais...84 Ordem de blocos if/else...85 Expressão condicional?: (também conhecida como operador ternário )...87 Evite loops do/while...89 Retorno antecipado de uma função O infame goto Minimize o uso de aninhamentos...92
5 Sumário 7 Você consegue acompanhar o fluxo de execução?...95 Sumário Capítulo 8 Divisão de expressões gigantes...97 Variáveis de explicação...98 Variáveis de resumo...98 Uso das leis de De Morgan...99 Uso excessivo da lógica de curto-circuito Exemplo: Problemas com lógica complicada Divisão de expressões gigantes Outra forma criativa de simplificarmos expressões Sumário Capítulo 9 Variáveis e legibilidade Eliminação de variáveis Reduza o escopo de suas variáveis Prefira variáveis de gravação única Um exemplo final Sumário Parte III Reorganização de seu código Capítulo 10 Extração de subproblemas não relacionados Exemplo introdutório: findclosestlocation() Código utilitário puro Outros códigos de propósito geral Crie muitos códigos de propósito geral Funcionalidades específicas de projetos Simplificação de uma interface existente Remodele uma interface de acordo com suas necessidades Cuidado para não ir longe demais Sumário Capítulo 11 Uma tarefa de cada vez Tarefas podem ser pequenas Extração de valores de um objeto Um exemplo mais extenso Sumário
6 8 A Arte de Escrever Programas Legíveis Capítulo 12 Como transformar seus pensamentos em código Descreva sua lógica com clareza Vale a pena conhecer suas bibliotecas Aplicação desse método a problemas maiores Sumário Capítulo 13 Escreva menos código Não se preocupe em implementar esse recurso ele não será necessário Questione e divida seus requisitos Mantenha sua base de código pequena Esteja familiarizado com as bibliotecas à disposição Exemplo: Uso de ferramentas Unix em vez de codificação Sumário Parte V Tópicos selecionados Capítulo 14 Testes e legibilidade Facilite a leitura e a manutenção de seus testes O que há de errado com este teste? Como tornar esse teste mais legível Como tornar suas mensagens de erros mais legíveis Escolha de boas entradas de teste Nomenclatura de funções de teste O que havia de errado com aquele teste? Desenvolvimento compatível com testes Como perceber quando exageramos Sumário Capítulo 15 Projeto e implementação de um contador de minutos/horas O problema Definição da interface da classe Tentativa 1: uma solução ingênua Tentativa 2: projeto da esteira rolante Tentativa 3: um projeto com intervalos de tempo agrupados Comparação das três soluções Sumário...200
7 Sumário 9 Apêndice Leituras adicionais Livros que tratam da elaboração de códigos de alta qualidade Livros que tratam de vários tópicos de programação Livros de significado histórico Sobre os autores Índice remissivo...207
8 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
9 Authorized Portuguese translation of the English edition of titled The Art of Readable Code, First Edition ISBN Dustin Boswell and Trevor Foucher. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra The Art of Readable Code, First Edition ISBN Dustin Boswell e Trevor Foucher. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. 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 técnica: Edgard Damiani Revisão gramatical: Débora Facin Editoração eletrônica: Carolina Kuwabata ISBN: Histórico de impressões: Fevereiro/2012 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) Boswell, Dustin 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 ; [tradução Rafael Zanolli]. -- São Paulo : Novatec Editora ; Sebastopol, CA : O'Reilly, Título original: The art of readable code. ISBN Linguagem de programação (Computadores) 2. Software - Desenvolvimento 3. Teoria da codificação I. Foucher, Trevor. II. Título CDD Índices para catálogo sistemático: 1. Desenvolvimento de linguagens de programação : Computadores : Processamento de dados GRPM
10 capítulo 1 Códigos devem ser fáceis de entender 15
11 16 A Arte de Escrever Programas Legíveis Nos últimos cinco anos, colecionamos centenas de exemplos de códigos malfeitos (na maioria dos casos, nossos mesmos) e analisamos o que eles tinham de errado e quais os princípios e técnicas que poderíamos utilizar para melhorá-los. O que percebemos é que todos os princípios têm origem em um único tema. I D E I A C H AV E Códigos devem ser fáceis de entender. Acreditamos que esse é o princípio mais importante que você pode utilizar para decidir como escrever seu código. Neste livro, mostraremos como aplicar esse princípio a diferentes aspectos de sua codificação diária. Antes de iniciarmos, vamos explicar essa ideia e justificar por que ela é tão importante. O que torna um código melhor? A maioria dos programadores (incluindo os autores) toma decisões de programação com base em instinto e intuição. Todos sabemos que um código assim: for (Node* node = list->head; node!= NULL; node = node->next) Print(node->data); é melhor do que outro como este: Node* node = list->head; if (node == NULL) return; while (node->next!= NULL) { Print(node->data); node = node->next; } if (node!= NULL) Print(node->data); (ainda que ambos os exemplos se comportem exatamente da mesma forma). Mas, muitas vezes, a escolha é mais difícil. Por exemplo, o código a seguir: return exponent >= 0? mantissa * (1 << exponent) : mantissa / (1 << -exponent); é melhor ou pior do que este? if (exponent >= 0) { return mantissa * (1 << exponent); } else { return mantissa / (1 << -exponent); }
12 Capítulo 1 Códigos devem ser fáceis de entender 17 A primeira versão é mais compacta, mas a segunda, menos intimidadora. Qual critério é mais importante? Em geral, como você decide a melhor forma de codificar algo? Teorema fundamental da legibilidade Depois de estudar muitos códigos de exemplo como o que vimos, chegamos à conclusão de que há uma métrica de legibilidade mais importante do que qualquer outra. Ela é tão importante que a chamamos de Teorema Fundamental da Legibilidade. I D E I A C H AV E Códigos devem ser escritos de modo a minimizar o tempo necessário para sua compreensão. O que queremos dizer com isso? Literalmente, se você escolhesse determinado colega seu e medisse quanto tempo ele leva para ler e entender seu código, esse tempo-para-entender seria a métrica teórica que deveríamos minimizar. E quando dizemos entender, utilizamos essa palavra em sentido muito abrangente. Para que alguém entenda completamente seu código, ele deve ser capaz de fazer alterações, encontrar bugs e compreender como ele interage com o restante do código. Agora, talvez você esteja pensando, Quem se importa se outra pessoa consegue entendê-lo? Eu sou o único utilizando o código! Ainda que você trabalhe sozinho, vale a pena perseguir esse objetivo. Essa outra pessoa pode ser você mesmo daqui a um ano, quando seu código já não lhe parecer mais familiar. E nunca se sabe alguém pode se juntar ao seu projeto, ou seu código descartável pode ser reutilizado em outro projeto. Menor é sempre melhor? Em termos gerais, quanto menos código você tiver de escrever para solucionar um problema, melhor (consulte o capítulo 13, Escreva menos código). Provavelmente demoraria menos para compreender uma classe de linhas do que uma de linhas. Mas ter menos linhas nem sempre é melhor! Muitas vezes, uma expressão como: assert((!(bucket = FindBucket(key)))!bucket->IsOccupied());
13 18 A Arte de Escrever Programas Legíveis é mais demorada de se entender do que uma versão com duas linhas: bucket = FindBucket(key); if (bucket!= NULL) assert(!bucket->isoccupied()); Do mesmo modo, um comentário pode fazer com que você entenda o código mais rapidamente, ainda que ele acrescente código ao arquivo: // Versão rápida de "hash = (65599 * hash) + c" hash = (hash << 6) + (hash << 16) - hash + c; Assim, ainda que utilizar menos linhas de código seja um bom objetivo, minimizar o tempo-para-entender é uma meta ainda melhor. Por acaso o tempo-para-entender entra em conflito com outros objetivos? Talvez você esteja pensando, Mas e outras preocupações, como tornar o código eficiente, bem projetado, fácil de testar e assim por diante? Objetivos como esses não entram, às vezes, em conflito com a meta de tornar o código fácil de entender? Verificamos que esses outros objetivos não interferem tanto assim no que buscamos. Mesmo em ambientes altamente otimizados, ainda temos como tornar os códigos bastante legíveis. Da mesma forma, tornar seu código fácil de entender muitas vezes faz com que ele também seja bem projetado e fácil de testar. O restante do livro discute como aplicar a ideia de fácil de entender em várias circunstâncias. No entanto, lembre-se de que, quando em dúvida, o Teorema Fundamental da Legibilidade supera qualquer outra regra ou princípio deste livro. Sabemos que alguns programadores têm uma necessidade compulsiva de corrigir qualquer código que não esteja fatorado perfeitamente. É sempre importante dar um passo atrás e perguntar, Este código é fácil de entender? Se afirmativo, provavelmente podemos avançar para outro código. A parte difícil Sim, sabemos que é necessário algum trabalho extra quando temos de pensar sempre se um usuário imaginário considera nosso código fácil de entender. Ao proceder dessa forma, você ativará uma parte de seu cérebro que talvez não esteja acostumada a funcionar durante a codificação. Mas, se você adotar esse objetivo (como nós o fizemos), estamos certos de que se tornará um programador melhor, sofrerá menos com bugs, terá mais orgulho de seu trabalho e produzirá códigos que todos adorarão utilizar. Por isso, vamos começar!
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
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
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
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
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
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
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
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
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
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.
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
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
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,
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
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
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
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
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
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,
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.
PDF Explicado John Whitington
PDF Explicado John Whitington Novatec Authorized Portuguese translation of the English edition of titled PDF Explained, First Edition ISBN 9781449310028 2012 John Whitington. This translation is published
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
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
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,
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
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
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
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,
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,
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
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,
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
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
Guia Prático Richard E. Silverman
Git Guia Prático Richard E. Silverman Novatec Authorized Portuguese translation of the English edition of titled Git Pocket Guide, ISBN 9781449325862 2013 Richard Silverman. This translation is published
Design Centrado no Usuário
Um guia para o desenvolvimento de aplicativos amigáveis Design Centrado no Usuário Travis Lowdermilk Novatec Authorized Portuguese translation of the English edition of titled User Centered Design, ISBN
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
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,
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.
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
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,
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
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
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
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
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
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,
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,
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
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
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.
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
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
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.
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
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,
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,
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,
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.
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
Novatec Editora Ltda. [2014].
Novatec Authorized Portuguese translation of the English edition of Just Hibernate, ISBN 9781449334376 2014 Madhusudhan Konda. This translation is published and sold by permission of O'Reilly Media, Inc.,
Novatec Editora Ltda
Simon Monk Novatec Authorized Portuguese translation of the English edition of Make: Action, ISBN 9781457187797 2016 Simon Monk, published by Maker Media Inc. This translation is published and sold by
Google Analytics Justin Cutroni
Google Analytics Justin Cutroni Novatec Authorized translation of the English edition of Google Analytics ISBN 978-0-596-15800-2 2010, Justin Cutroni. This translation is published and sold by permission
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
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
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
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
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
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
Primeiros Passos com o Raspberry Pi
Primeiros Passos com o Raspberry Pi Matt Richardson Shawn Wallace Novatec Authorized Portuguese translation of the English edition of titled Getting Started with Raspberry Pi, ISBN 9781449344214 2013 Matt
Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec
Aprendendo Unix no OS X Mountain Lion Mergulhando no Terminal e no Shell Dave Taylor Novatec Authorized Portuguese translation of the English edition of titled Learning Unix for OS X Mountain Lion, ISBN
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á 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.,
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
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,
A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec
A Arte de SEO Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle Novatec Authorized Portuguese translation of the English edition of titled The Art of SEO, Second
Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman
Equipes de Software Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas Brian W. Fitzpatrick Ben Collins-Sussman Novatec Authorized Portuguese translation of the English edition
Pete Goodliffe. Novatec
Pete Goodliffe Novatec Authorized Portuguese translation of the English edition of Becoming a Better Programmer, ISBN 9781491905531 2014 Pete Goodliffe. This translation is published and sold by permission
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
Padrões de Projeto em PHP
Aprendendo Padrões de Projeto em PHP William Sanders Novatec Authorized Portuguese translation of the English edition of titled Learning PHP Design Patterns ISBN 9781449344917 2013 William B. Sanders.
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
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
Aaron Newcomb. Novatec
Aaron Newcomb Novatec Authorized Portuguese translation of the English edition of Linux for Makers ISBN 9781680451832 2017 Maker Media Inc. This translation is published and sold by permission of O'Reilly
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.
Segurança em Redes sem Fio
Segurança em Redes sem Fio Aprenda a proteger suas informações em ambientes Wi-Fi e Bluetooth Nelson Murilo de Oliveira Rufino Novatec Copyright 2005, 2011 da Novatec Editora Ltda. Todos os direitos reservados
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
As Leis Fundamentais do Projeto de Software
As Leis Fundamentais do Projeto de Software Max Kanat-Alexander Novatec Authorized Portuguese translation of the English edition of titled Code Simplicity, First Edition ISBN 9781449313890 2011 Max Kanat-Alexander.
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
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
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.
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,
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,
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
PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec
PHP Programando com Orientação a Objetos Pablo Dall Oglio Novatec Copyright 2007, 2009, 2016 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida
Adrian Mouat. Novatec
Adrian Mouat Novatec Authorized Portuguese translation of the English edition of Using Docker, ISBN 9781491915769 2015 Adrian Mouat. This translation is published and sold by permission of O'Reilly Media,
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
Aprendendo Programação. ios. Alasdair Allan. Novatec
Aprendendo Programação ios Alasdair Allan Novatec Authorized Portuguese translation of the English edition of titled Learning ios Programming, 3rd edition, ISBN 9781449359348 2013 Alasdair Allan. This
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.
