Curso Arquitetura e Design de Projetos Java

FD9E034F-C706-472D-ABA4-310433A703E5 Created with sketchtool. 40 horas/aula
Veja as próximas turmas

O que você vai fazer

Para quem é esse curso?

Este curso é destinado para quem já tem uma boa experiência em projetos que utilizam linguagens Orientada a Objetos e que queira discutir diversas boas práticas relacionadas a várias fases do desenvolvimento e também relacionadas aos mais diversos tipos de projeto. Por mais que todos os exemplos sejam baseados em Java, as discussões transcendem a linguagem e as ideias podem ser aplicadas em qualquer linguagem que siga o paradigma Orientado a Objetos.

Conteúdo detalhado do curso FJ-91

    Um treinamento sobre arquitetura

  1. Design e Arquitetura?
  2. Indo da visão micro para a visão macro e gerenciamento

    A Plataforma Java

  1. Java
  2. JSRs e o JCP
  3. Open source e o Java
  4. Exercícios: explorando o JCP
  5. Java Virtual Machine
  6. Implementações da JVM
  7. Outras plataformas: .NET
  8. Outras linguagens na JVM
  9. Exercícios: Scala integrdo com Java
  10. Exercícios: Scripting API com Rhino
  11. Para saber mais: Como aprender Scala

    JVM: Java Virtual Machine

  1. A JVM por dentro
  2. JIT Compiler: compilação em tempo de execução
  3. Exercícios: Análise de performance de uma aplicação Java com o JIT
  4. Garbage Collector
  5. VisualVM, VisualGC e profiling
  6. System.gc
  7. finalizer
  8. Exercícios: Garbage Collector e tuning de memória
  9. ClassLoaders
  10. Exercícios: Como funcionam os Classloaders e o Classloader Hell

    Tópicos avançados de Orientação a Objetos e Design

  1. Orientação a objetos
  2. Fundamentos de OO: Encapsulamento e interfaces de uso
  3. JavaBeans e getters e setters
  4. Anemic Domain Model e objetos fantoches
  5. Exercícios: Boa prática de orientação à objetos - Encapsulamento
  6. Fundamentos de OO: Polimorfismo
  7. Herança versus Composição
  8. Interface versus Implementação
  9. Exercícios: Cuidados com a herança e a composição com alternativa
  10. Acoplamento e Coesão
  11. Acoplamento sintático e acoplamento semântico
  12. Testes de unidade e TDD
  13. Testes de integração, Selenium e WebDriver
  14. Exercícios: Teste de unidade e o acoplamento semântico
  15. Fluent Interface
  16. Exercícios: Código mais expressivo e o padrão Builder
  17. Domain Specific Languages
  18. Domain Driven Design
  19. Exercícios opcionais: DSLs em Java e em outras linguagens
  20. Para saber mais: Imutabilidade
  21. Exercícios opcionais: Imutabilidade e Flyweight

    Separação de responsabilidades e Inversão de Controle

  1. Gerencie suas dependências através de injeção
  2. Considere usar um framework de Injeção de Dependências
  3. Spring, PicoContainer e Guice
  4. CDI e Java EE
  5. Fábricas e o mito do baixo acoplamento
  6. Exercícios: Separação de responsabilidades, injeçao de dependências e inversão de controle
  7. AOP
  8. Exercício Opcional: Programação Orientada à Aspectos
  9. Javassist e manipulação de bytecodes
  10. Exercício Opcional: Manipulação de Bytecode

    Arquitetura

  1. O que é Arquitetura?
  2. Requisitos não funcionais
  3. Performance
  4. Escalabilidade e Disponibilidade
  5. Confiabilidade
  6. Extensibilidade e manutenabilidade
  7. Gerenciabilidade
  8. Exercícios: Gerenciabilidade
  9. Segurança
  10. Exercícios: Evite injeção na Web
  11. Cliente Servidor
  12. p2p - Peer to Peer
  13. Dividindo em camadas: tiers e layers
  14. MVC - Model View Controller
  15. Arquitetura contemporânea e o Cloud

    Decisões arquiteturais

  1. Desenvolvimento Web MVC: Actions ou Componentes?
  2. Domine sua ferramenta de mapeamento objeto relacional
  3. Exercícios: Boas e más práticas com o Hibernate
  4. Distribuição de objetos
  5. RMI
  6. EJB
  7. Value Object, Data Transfer Object, Session Façade
  8. As novidades do Java EE
  9. Comunicação assíncrona
  10. Mensageria e JMS
  11. Exercícios: Mensageria assíncrona e o JMS

    Integração de sistemas na Web e REST

  1. Princípios de integração de sistemas na Web
  2. SOA - Service Oriented Architecture
  3. Web Services SOAP e WSDL
  4. Exercícios: Consumo de serviços - WebServices SOAP
  5. POX: Plain Old XML
  6. Exercícios: Consumo de serviços - POX (Plain Old XML)
  7. REST: arquitetura distribuída baseada em hipermídia
  8. Exercício Opcional: Consumo de serviços - WebServices REST

    *Apêndice - Catálogo de Design Patterns

  1. Factory Method
  2. Exercícios
  3. Singleton
  4. Exercícios
  5. Iterator
  6. Exercícios
  7. Observer
  8. Exercícios
  9. Visitor
  10. Decorator
  11. Exercício
  12. Composite
  13. Exercícios
  14. Template Method
  15. Exercícios
  16. Builder
  17. Prototype
  18. Adapter
  19. Bridge
  20. Façade
  21. Proxy
  22. Chain of Responsibility
  23. Command
  24. Interpreter
  25. Mediator
  26. Memento
  27. State
  28. Patterns no DDD: Repository, Entity, VO, Service
  29. Mau uso de patterns: Singleton versus Injeção de Dependências
  30. Exercicios

* Apêndices são conteúdos adicionais que não fazem parte da carga horária regular do curso. São conteúdos extras para direcionar seus estudos após o curso.

O que os alunos falam

Rafael Santana Oliveira

Poder ouvir dos instrutores sobre suas experiências; todos trouxeram pra sala de aula muita informação que só conseguiriamos visitando outra empresa, ...

William Salerno

Curso incrível! Abriu minha mente para diversas possibilidades de criação de código eficiente e legível.

Sergio Lima Morais

Ponto alto é que a instrutora sabe o assunto aplicando com competência e segurança.

Próximas turmas

Selecione a cidade e os períodos de sua preferência

Qual cidade você pode ir?
Quais períodos você prefere?
Ver turmas encontradas

Nós encontramos essas turmas:

Não achou a turma ideal pra você? Consulte outras turmas e horários.

Entre em contato

Não encontrou o curso que procura? Conheça a Alura, a plataforma online da Caelum

Conheça a Alura