Logar
Evento
/

FJ-91 | Arquitetura e Design de Projetos Java (Sábado)

FJ-91 | Arquitetura e Design de Projetos Java (Sábado)

Participantes

0
participantes
0
curtidas
Banner -  FJ-91 | Arquitetura e Design de Projetos Java (Sábado)
Mostrar
  • De 01/09 às 09:00 até: 29/09 às 17:00
  • Rua Vergueiro, 3185 - 8º andar, Vila Mariana - São Paulo/São Paulo - Brasil

Descrição

Carga Horária: 40 horas aula

 

 

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 formar o Arquiteto Java que o mercado pede e precisa nos dias de hoje. Com discussões aprofundadas, o FJ-91 o ajudará a tomar decisões importantes em seus projetos. O curso é baseado no 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.

 

 

Pré-requisitos:

 

Curso FJ-11 e FJ-21 e 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 médios e grandes projetos em TI.

 

 

Conteúdo Detalhado:

 

Um treinamento sobre arquitetura

  

  • Design e Arquitetura?
  • Indo da visão micro para a visão macro e gerenciamento

 

A Plataforma Java

  

  • Java
  • JSRs e o JCP
  • Open source e o Java
  • Exercícios: explorando o JCP
  • Java Virtual Machine
  • Implementações da JVM
  • Outras plataformas: .Net
  • Outras linguagens na JVM
  • Exercícios: Scala integrdo com Java
  • Exercícios: Scripting API com Rhino
  • Para saber mais: Como aprender Scala

 

JVM: Java Virtual Machine

  

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

 

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

  

  • Orientação a objetos
  • Fundamentos de OO: Encapsulamento e interfaces de uso
  • JavaBeans e getters e setters
  • Anemic Domain Model e objetos fantoches
  • Exercícios: Boa prática de orientação à objetos - Encapsulamento
  • Fundamentos de OO: Polimorfismo
  • Herança versus Composição
  • Interface versus Implementação
  • Exercícios: Cuidados com a herança e a composição com alternativa
  • Acoplamento e Coesão
  • Acoplamento sintático e acoplamento semântico
  • Testes de unidade e TDD
  • Testes de integração, Selenium e WebDriver
  • Exercícios: Teste de unidade e o acoplamento semântico
  • Fluent Interface
  • Exercícios: Código mais expressivo e o padrão Builder
  • Domain Specific Languages
  • Domain Driven Design
  • Exercícios opcionais: DSLs em Java e em outras linguagens
  • Para saber mais: Imutabilidade
  • Exercícios opcionais: Imutabilidade e Flyweight

 

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

  

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

 

Arquitetura

  

  • O que é Arquitetura?
  • Requisitos não funcionais
  • Performance
  • Escalabilidade e Disponibilidade
  • Confiabilidade
  • Extensibilidade e manutenabilidade
  • Gerenciabilidade
  • Exercícios: Gerenciabilidade
  • Segurança
  • Exercícios: Evite injeção na Web
  • Cliente Servidor
  • p2p - Peer to Peer
  • Dividindo em camadas: tiers e layers
  • MVC - Model View Controller
  • Arquitetura contemporânea e o Cloud

 

Decisões arquiteturais

  

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

 

Integração de sistemas na Web e REST

  

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

 

Apêndice - Catálogo de Design Patterns

  

  • Factory Method
  • Exercícios
  • Singleton
  • Exercícios
  • Iterator
  • Exercícios
  • Observer
  • Exercícios
  • Visitor
  • Decorator
  • Exercício
  • Composite
  • Exercícios
  • Template Method
  • Exercícios
  • Builder
  • Prototype
  • Adapter
  • Bridge
  • Façade
  • Proxy
  • Chain of Responsibility
  • Command
  • Interpreter
  • Mediator
  • Memento
  • State
  • Patterns no DDD: Repository, Entity, VO, Service
  • Mau uso de patterns: Singleton versus Injeção de Dependências
  • Exercicios

 

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

Ler mais

Localização

Programação

Este evento não possui atividades no momento.

Planta do Evento

A planta do evento não está disponível.

Contato

Preencha os campos abaixo para enviar e-mail ao organizador.

Campos Obrigatórios
Campos Obrigatórios
Ao se cadastrar, você concorda com nossos Termos de uso.
Ajaxloader

Compartilhar evento por e-mail


Para continuar, faça login ou cadastre-se.

Recomende este evento para sua rede.

Selecione os usuários que deseja recomendar este evento.