Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aplicando Clean Code e DDD em entidades Hibernate/JPA

Aplicando Clean Code e DDD em entidades Hibernate/JPA

Palestra apresentada no TDC2013 em Florianópolis

Objetos bem encapsulados, uso adequado de herança, imutabilidade de objetos, princípios de código limpo (SOLID) e prática do Effective Java não são tão usuais quanto se gostaria em equipes de desenvolvimento atuais. A maioria dos desenvolvedores se esforça, mas tem grandes dificuldades em aplicar estas técnicas em sistemas com entidades mutáveis JPA (ou Hibernate). Esta palestra apresentará algumas lições aprendidas em como aplicar estas técnicas num ambiente JavaEE utilizando entidades JPA (ou Hibernate). Também avaliaremos como estas práticas podem ser aplicadas em outras implementações de JPA e JPA 2.1.

Código disponível em https://github.com/yanaga/clean-jpa

Edson Yanaga

May 25, 2013
Tweet

More Decks by Edson Yanaga

Other Decks in Technology

Transcript

  1. Aplicando Clean Code
    e DDD em entidades
    Hibernate/JPA
    Edson Yanaga
    @edsonyanaga

    View Slide

  2. Edson Yanaga
    • Bacharel em Ciência da Computação/UEM
    • Mestre em Engenharia Elétrica/UTFPR
    • Desenvolvedor Java desde 1997
    • Administrador Unix desde 1999
    • Líder Técnico na Produtec desde 2012
    • Instrutor Líder da GlobalCode desde 2012

    View Slide

  3. Certificações
    • Oracle Certified Professional, Java Platform,
    Enterprise Edition 6 Enterprise JavaBeans
    Developer
    • Sun Certified Enterprise Architect for the Java
    Platform,Enterprise Edition 5 (i)
    • Certified ScrumMaster
    • Sun Certified Developer for Java Web Services 5
    • Sun Certified Specialist for NetBeans IDE
    • Sun Certified Web Component Developer for J2EE
    1.4
    • Sun Certified Programmer for Java 2 Platform 1.4

    View Slide

  4. Software é artesanal

    View Slide

  5. Ou não?

    View Slide

  6. Software Craftsmanship

    View Slide

  7. Deus?

    View Slide

  8. View Slide

  9. Nós não precisamos de mais
    programadores!

    View Slide

  10. O que você sabe/
    aprendeu sobre OO?

    View Slide

  11. Herança
    Polimorfismo
    Encapsulamento

    View Slide

  12. Herança
    Polimorfismo
    Encapsulamento

    View Slide

  13. public class Pessoa {
    private String nome;
    private String cpf;
    private String telefone;
    private Date nascimento;
    }

    View Slide

  14. Code Smells

    View Slide

  15. Primitive Obsession

    View Slide

  16. View Slide

  17. public class Pessoa {
    private String nome;
    private Cpf cpf;
    private Telefone telefone;
    private Date nascimento;
    }

    View Slide

  18. Tell, dont’ ask

    View Slide

  19. What if...

    View Slide

  20. Null Object

    View Slide

  21. View Slide

  22. Cuide do seu código.

    View Slide

  23. Software melhor,
    mundo melhor

    View Slide

  24. Edson Yanaga
    [email protected]
    @edsonyanaga
    www.yanaga.com.br

    View Slide