Curso Arquitetura e Design de Projetos Java

  • Curso avançado para arquitetos de projetos Java;
  • Aspectos da Máquina Virtual Java (JVM);
  • Design orientado a objetos, design patterns, DDD (domain-driven design);
  • Separação de responsabilidades, Inversão de Controle e aspectos (AOP);
  • Arquitetura de software, desenvolvimento multi-camadas e requisitos não funcionais;
  • Decisões arquiteturais, frameworks Java;
  • Integração de sistemas com Java EE, Web Services, REST e mensageria assíncrona.

Sobre o curso FJ-91

Confuso com tantos design patterns, frameworks e boas práticas? Criar um projeto em Java é um grande desafio: são muitas opções de tecnologia e muitos modos diferentes de fazer as diversas camadas se comunicarem. O objetivo do curso é expor o aluno a uma grande quantidade dessas opções, desde a modelagem e design das classes, até a escolha das tecnologias mais adequadas para formar uma arquitetura robusta.

Conceitos de orientação a objetos são rediscutidos. As diferentes tecnologias e frameworks são abordadas com exemplos práticos, comparações e muita análise de pontos positivos e negativos de cada uma. Há tópicos como SOA, Web Services, REST, mensageria, EJB, Web, DDD, mapeamento objeto relacional, Hibernate, escalabilidade, performance, segurança, arquitetura em camadas, metodologias ágeis e muitos outros.

É um curso que busca dar ao Arquiteto Java a capacidade de criticar e fazer escolhas. Com discussões aprofundadas, esse curso de Arquitetura o ajudará a tomar decisões importantes em seus projetos. O curso é ligado ao livro “Introdução a Arquitetura e Design de Software”.

Todos os alunos do curso recebem um exemplar do livro e uma apostila complementar de exercícios.

Veja também a ementa detalhada do curso.

Pré-requisitos

Ou: linguagem Java, orientação a objetos, noções básicas de web, HTTP, HTML e XML.

É necessário certa familiaridade com a plataforma Java EE no geral, como EJB, Servlets, JSF e ter passado pelas dificuldades naturais de projetos em TI.

40horas aula

A opinião de quem fez

O curso é fantastico, surpreendeu minhas espectativas e vai ajudar muito na minha carreira. Os instrutores e toda equipe da Caelum está de parabens !!!

Eder Clei de Freitas, Usina São Domingos, Catanduva-SP

A didadica dos instrutores e muito boa, solucionando todas as duvidas dos alunos.

Adriano Santos Ramos

Atendeu todas as expectativas.

Rodrigo de Paula Lopes

Próximas turmas

DataPeríodoCidadeComentário
01/09 a 12/09Noturno (19h às 23h)São Paulo Desconto especial!
11/10 a 08/11Sábado (9h às 17h)São Paulo
27/10 a 07/11Manhã (8h30 às 12h30)Rio de Janeiro Inscrições abertas.

Não achou a turma ideal pra você? Entre em contato e consulte outras turmas e horários.

Fale com a gente.

Dúvidas, reservas ou um papo com um instrutor?

Conteúdo detalhado

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 6
  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 6
  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


* Os apêndices listados são conteúdos adicionais que não fazem parte do curso regular.