Deixe seu código limpo e brilhante Desmistificando Clean Code com Java e Python
JOSÉ YOSHIRIROConteúdo
Programar frequentemente envolverá consertar, melhorar ou ampliar o código. As práticas de Código Limpo (Clean Code) difundidas por Robert Martin visam ajudar programadores a criar códigos mais coerentes, organizados, fáceis de ler e, consequentemente, de dar manutenção. Códigos não limpos consomem muito mais tempo e demandam mais custos para se manter, e seria ideal se seus conceitos já fossem utilizados desde o princípio por todos os desenvolvedores e desenvolvedoras, independente do nível técnico. Porém este assunto costuma ser abordado apenas em esferas ocupadas por profissionais experientes, tendo alta curva de aprendizagem para quem está começando.
Neste livro, José Yoshiriro traz uma coleção de códigos de exemplos em Java e Python voltados para iniciantes em programação visando explorar os principais conceitos de Código Limpo. As práticas são demonstradas de forma acessível e sem mistério, mas sem diminuir a profundidade dos assuntos tratados, o que faz desta obra um excelente guia para que pessoas de todos os níveis de proficiência consigam aperfeiçoar seus códigos para que fiquem mais organizados, limpos e brilhantes.
Sumário
- 1 O que é Código Limpo
- 1.1 O importante é que funcione?
- 1.2 As orientações de Código Limpo são usadas no mundo real?
- 1.3 O código deve ser 100% limpo?
- 2 Bons nomes
- 2.1 Use nomes que deixem claro o objetivo da entidade
- 2.2 O nome não deve causar confusão sobre o que a entidade é
- 2.3 Cuidado com caracteres parecidos — 0, O, 1, l
- 2.4 Evite nomes parecidos
- 2.5 Ações semelhantes, nomes semelhantes
- 2.6 Mesma palavra, mesmo propósito
- 2.7 Se travou a língua ou causou constrangimento, mude o nome
- 2.8 Evite caracteres especiais
- 2.9 Não precisa dizer o que a entidade é no nome
- 2.10 Evite mapeamentos mentais
- 2.11 Nomes de classes
- 2.12 Nomes de métodos (ou funções)
- 2.13 Não seja engraçadinho
- 2.14 Use termos técnicos de programação a seu favor
- 2.15 Não adicione termos desnecessários e repetitivos
- 3 Funções
- 3.1 Funções devem resolver um problema bem específico
- 3.2 Nossa, quantos parâmetros você tem!
- 3.3 Evite flags
- 3.4 Listas como argumentos
- 3.5 Surpresa! Eu odeio surpresas!
- 3.6 Faça algo OU conte-me algo
- 3.7 DRY — Don't Repeat Yourself (Não repita a si mesmo)
- 4 Comentários de código
- 4.1 O que são comentários de código
- 4.2 Comentários ajudam a explicar o código?
- 4.3 Um código limpo não pode ter nenhum comentário?
- 4.4 Sou dev iniciante, por isso comento todo o meu código. E agora?
- 4.5 Comentários com palavras-chave (TODO, FIXME)
- 4.6 Comentários para documentar o código
- 4.7 Sem comentários!
- 5 Formatação de código
- 5.1 Indentação
- 5.2 Agrupamento de código em linhas
- 5.3 Olha que linha grande! Cuidado!
- 6 Objetos
- 6.1 Abstração de dados
- 6.2 Princípio do menor conhecimento (lei de Demeter)
- 6.3 DTO (Data Transfer Objects) — e seus "primos" VO e POJO/POPO
- 7 Tratamento de erros
- 7.1 Diga que houve um erro... E diga qual foi
- 7.2 Não retorne nulo! Lance uma exceção!
- 7.3 Crie suas próprias exceções
- 7.4 Em projetos Java, use exceções não checadas
- 8 Testes de unidade (ou unitários)
- 8.1 Por que criar testes de unidade (ou testes unitários)?
- 8.2 Qual a tradução mais correta? Testes "de unidade" ou "unitários"?
- 8.3 Como criar testes de unidade
- 8.4 Estudo de caso — Calculadora de vale-transporte (VT)
- 8.5 Boas práticas em testes de unidade
- 8.6 Cobertura de testes
- 9 Classes
- 9.1 Organização de uma classe por tipo de elemento
- 9.2 Encapsulamento
- 9.3 Olha que classe grande! Cuidado com a baixa coesão!
- 9.4 SOLID (resumo)
- 9.5 Princípio da Responsabilidade Única
- 9.6 Princípio aberto-fechado
- 9.7 Princípio da Substituição de Liskov
- 9.8 Princípio da Segregação de Interface
- 9.9 Princípio da Inversão de Dependência
- 10 Apêndice A — Convenções de código
- 10.1 Padrões de escrita de nomes
- 10.2 Convenções da linguagem Java
- 10.3 Convenções da linguagem Python
- 11 Apêndice B — Ferramentas
- 12 Referências
Autor
José Yoshiriro
Bacharel em sistemas de informação (IESAM), especialista em engenharia de sistemas (ESAB) e mestre em ciências (USP). Ministra aulas em cursos de nível universitário desde 2010. É líder pedagógico na Faculdade São Paulo Tech School (SPTech) onde trabalha desde 2014. Já foi professor da FIAP e conteudista da FIAP ON entre 2017 e 2018. Trabalha com desenvolvimento/arquitetura de software desde 2004, tendo trabalhado principalmente com Java, Groovy, JavaScript e Python. Já atuou na criação e/ou evolução de sistemas usados em empresas como BrasilPrev, Citibank, Caixa Econômica Federal, Rico Home Broker, BNP, Tribunal de Justiça do Pará, American Red Cross (EUA) e OneBlood (EUA). Já contribuiu em vários projetos open source. É criador do validador de Bitcoin do Hibernate Validator. Detém certificações internacionais Oracle (SCJP 6, SCWCD 5 e SCBCD 5) e OMG (OCUP). Possui vários artigos sobre programação publicados no Brasil e EUA e já palestrou em vários eventos de tecnologia como FISL (2015), Virada Tecnológica de São Paulo de 2017 e TDC São Paulo (2014, 2015 e 2017). É autor dos livros "Spock framework: Testes automatizados ágeis para Java e REST" e "Deixe seu código limpo e brilhante: Desmistificando Clean Code com Java e Python", ambos pela Casa do Código.
Dados do produto
- Número de páginas:
- 213
- ISBN:
- 978-85-5519-337-8
- Data publicação:
- 05/2023