PORTUGUESE

Java Efetivo

Book information

Publisher
Alta Books
Year
2019
ISBN
9788550813288, 9780134685991
Language
portuguese
Format
PDF
Filesize
67 MB (70562972 bytes)
Edition
3
Pages
\461
Topic
Computers\\Programming
Time added
2022-04-11 22:13:48

Description

O Guia Definitivo das Melhores Práticas com Java ― Atualizado para o Java 7, 8 e 9 Desde a publicação anterior de Java Efetivo, após o lançamento da versão 6, o Java mudou radicalmente. Este clássico vencedor do prêmio Jolt foi todo atualizado para aproveitar ao máximo os recursos mais recentes da plataforma e de suas bibliotecas. A diversidade de paradigmas no Java moderno demanda recomendações específicas quanto às melhores práticas, e este livro as disponibiliza.Como nas edições anteriores, cada capítulo de Java Efetivo, Terceira Edição é composto de inúmeros “itens” apresentados como ensaios independentes e curtos quetrazem recomendações específicas, informações sobre as sutilezas da plataforma e exemplos de códigos atualizados.As descrições e explicações completas de cada item esclarecem o que fazer, o que não fazer e o porquê.Esta edição aborda os recursos e as bibliotecas do Java 7, 8 e 9, como as construções de programação funcional, adicionadas às raízes da programação orientada a objetos.Adicionou-se muitos itens novos também, incluindo um capítulo dedicado aos lambdas e às streams. A NOVA EDIÇÃO INCLUI• Interfaces funcionais, expressões lambdas,referências para método e streams• Métodos estáticos e padrões para interfaces• Inferência de tipo, incluindo o operador para os tipos genéricos• Anotação @SafeVarargs• Instruções try-with-resources• Recursos das bibliotecas novas, como a interface Optional , a java.time e a facilidade dos métodos de fabricação para as coleções Este livro foi elaborado para ajudá-lo a utilizar de modo efetivo a linguagem e as bibliotecas de programação Java: java.lang, java.util e java.io, e os subpacotesJava, tais como, o java.util.concurrent e o java.util.function. Outras bibliotecas são discutidas eventualmente.Esta obra é composta de 90 Itens, e cada um deles aborda o conhecimento de uma regra. Geralmente, as regras descrevem as práticas consideradas produtivaspelos melhores e mais experientes programadores. Os Itens são agrupados em 11 capítulos, cada qual abrange um aspecto amplo da arquitetura de software. A finalidade da obra não é ser lida do princípio ao fim: cada Item é mais ou menos independente. Os Itens estão amplamente correlacionados; desse modo, você pode facilmente trilhar o próprio caminho através das páginas.Introduziram-se muitos recursos à plataforma desde a publicação da última edição deste livro. A maioria dos Itens desta obra usa de alguma forma essas funcionalidades. A tabela a seguir lhe mostra onde encontrar as principais funcionalidades elencadas: Funcionalidade Itens VersãoLambdas Itens 42–44 Java 8Streams Itens 45–48 Java 8Opcionais Item 55 Java 8Métodos padrões nas interfaces Item 21 Java 8try-with-resources Item 9 Java 7@SafeVarargs Item 32 Java 7Modules Item 15 Java 9. Apresentação Prefácio Agradecimentos Introdução Criar e Destruir Objetos Item 1: Considere os métodos static factory em vez dos construtores Item 2: Cogite o uso de um builder quando se deparar com muitos parâmetros no construtor Item 3: Implemente a propriedade de um singleton com um construtor privado ou um tipo enum Item 4: Implemente a não instanciação através de construtores privados Item 5: Dê preferência à injeção de dependência para integrar recursos Item 6: Evite a criação de objetos desnecessários Item 7: Elimine referências obsoletas de objetos Item 8: Evite o uso dos finalizadores e dos cleaners Item 9: Prefira o uso do try-with-resources ao try-finally Métodos Comuns para Todos os Objetos Item 10: Obedeça ao contrato geral ao sobrescrever o equals Item 11: Sobrescreva sempre o método hashCode ao sobrescrever o método equals Item 12: Sobrescreva sempre o toString Item 13: Sobrescreva o clone de modo sensato Item 14: Pense na possibilidade de implementar a Comparable Classes e Interfaces Item 15: Reduza ao mínimo a acessibilidade das classes e de seus membros Item 16: Use os métodos getters em classes públicas e não os campos públicos Item 17: Reduza a mutabilidade das classes ao mínimo Item 18: Prefira a composição à herança Item 19: Projete e documente as classes para a herança ou a iniba Item 20: Prefira as interfaces em vez das classes abstratas Item 21: Projete as interfaces para a posteridade Item 22: Use as interfaces somente para definir tipos Item 23: Dê preferência às hierarquias de classes em vez das classes tagged Item 24: Prefira as classes membro estáticas às não estáticas Item 25: Limite os arquivos fonte a uma única classe de nível superior Genéricos Item 26: Não use tipos brutos Item 27: Elimine as advertências não verificadas Item 28: Prefira as listas aos arrays Item 29: Priorize os tipos genéricos Item 30: Priorize os métodos genéricos Item 31: Use os wildcards limitados para aumentar a flexibilidade da API Item 32: Seja criterioso ao combinar os genéricos com os varargs Item 33: Pense na possibilidade de usar contêineres heterogêneos typesafe Enums e Anotações Item 34: Use enums em vez de constantes int Item 35: Use os campos de instância em vez dos valores ordinais Item 36: Use a classe EnumSet em vez dos campos de bits Item 37: Use EnumMap em vez da indexação ordinal Item 38: Emule enums extensíveis por meio de interfaces Item 39: Prefira as anotações aos padrões de nomenclatura Item 40: Use a anotação Override com frequência Item 41: Use as interfaces marcadoras para definir tipos Lambdas e Streams Item 42: Prefira os lambdas às classes anônimas Item 43: Dê preferência às referências para métodos em vez dos lambdas Item 44: Prefira o uso das interfaces funcionais padrão Item 45: Seja criterioso ao utilizar as streams Item 46: Dê preferência às funções sem efeitos colaterais nas streams Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream Item 48: Tenha cuidado ao fazer streams paralelas Métodos Item 49: Verifique a validade dos parâmetros Item 50: Faça cópias defensivas quando necessário Item 51: Projete as assinaturas de método com cuidado Item 52: Utilize a sobrecarga com critério Item 53: Use os varargs com sabedoria Item 54: Retorne coleções ou arrays vazios, em vez de nulos Item 55: Seja criterioso ao retornar opcionais Item 56: Escreva comentários de documentação para todos os elementos da API exposta Programação Geral Item 57: Minimize o escopo das variáveis locais Item 58: Dê preferência aos loops for-each em vez dos tradicionais loops for Item 59: Conheça e utilize as bibliotecas Item 60: Evite o float e o double caso sejam necessárias respostas exatas Item 61: Dê preferência aos tipos primitivos em vez dos tipos primitivos empacotados Item 62: Evite as strings onde outros tipos forem mais adequados Item 63: Cuidado com o desempenho da concatenação de strings Item 64: Referencie os objetos através das interfaces deles Item 65: Dê preferência às interfaces em vez da reflexão Item 66: Utilize os métodos nativos com sabedoria Item 67: Seja criterioso ao otimizar Item 68: Adote as convenções de nomenclatura geralmente aceitas Exceções Item 69: Utilize as exceções somente em circunstâncias excepcionais Item 70: Utilize as exceções verificadas para condições recuperáveis e exceções de runtime para erros de programação Item 71: Evite o uso desnecessário das exceções verificadas Item 72: Priorize o uso das exceções padrões Item 73: Lance exceções adequadas para a abstração Item 74: Documente todas as exceções lançadas por cada método Item 75: Inclua as informações a respeito das capturas de falhas nos detalhes da mensagem Item 76: Empenhe-se para obter a atomicidade de falha Item 77: Não ignore as exceções Concorrência Item 78: Sincronize o acesso aos dados mutáveis compartilhados Item 79: Evite a sincronização excessiva Item 80: Dê preferência aos executores, às tarefas e às streams em vez das threads Item 81: Prefira os utilitários de concorrência ao wait e ao notify Item 82: Documente a thread safety Item 83: Utilize a inicialização preguiçosa com parcimônia Item 84: Não dependa do agendador de threads Serialização Item 85: Prefira alternativas à serialização Java Item 86: Tenha cautela ao implementar a Serializable Item 87: Pense na possibilidade de usar uma forma serializada customizada Item 88: Escreva métodos readObject defensivamente Item 89: Dê preferência aos tipos enum em vez do readResolve para controle de instância Item 90: Pense em usar proxies de serialização em vez de instâncias serializadas Itens Correspondentes aos Itens da Segunda Edição Referências

Similar books