apresentação - uniararas - jee e desenvolvimento Ágil

29
Modelagem e Padrões de Modelagem e Padrões de Desenvolvimento Desenvolvimento Marcio Garcia blog.mangar.com.br [email protected]

Upload: marcio-garcia

Post on 13-Jul-2015

1.899 views

Category:

Technology


3 download

TRANSCRIPT

Modelagem e Padrões de Modelagem e Padrões de DesenvolvimentoDesenvolvimento

Marcio Garciablog.mangar.com.br

[email protected]

Quem? O que? Porque?Quem? O que? Porque?

Marcio Garcia (Marcio Garcia ([email protected]@mangar.com.br))

Programador! - Java Programador! - Java - SCJP, SCJWCD, SCBCD, SCEA I- SCJP, SCJWCD, SCBCD, SCEA I

• Programador! - Ruby on Rails, PythonProgramador! - Ruby on Rails, Python

• Ativista do movimento Ágil - Ativista do movimento Ágil - Certified Scrum MasterCertified Scrum Master

• http://blog.mangar.com.brhttp://blog.mangar.com.br

Commiter de projetos open sourceCommiter de projetos open source

• http://github.com/mangar/breshophttp://github.com/mangar/breshop

AgendaAgenda

• Parte 1 - Padrões de Desenvolvimento JavaParte 1 - Padrões de Desenvolvimento Java

• Parte 2 - Desenvolvimento Ágil de SoftwareParte 2 - Desenvolvimento Ágil de Software

Linguagens de Linguagens de ProgramaçãoProgramação• PascalPascal

C / C++C / C++

• Java ....... JEE, JSE, JMEJava ....... JEE, JSE, JME

• Ruby on RailsRuby on Rails

PythonPython

• ErlangErlang

Padrões de Desenvolvimento JavaPadrões de Desenvolvimento Java

Parte 1Parte 1

Onde tudo começa.... JVMOnde tudo começa.... JVM

Frontend ServersFrontend ServersTomcat, Jetty, Pico...Tomcat, Jetty, Pico...

Backend ServersBackend ServersJBoss, Weblogic, WebSphereJBoss, Weblogic, WebSphere

BrowsersBrowsersIE, Firefox, Safari...IE, Firefox, Safari...

Java Virtual Machine - JVMJava Virtual Machine - JVMJSE - AWT / SwingJSE - AWT / Swing

Java - DivisõesJava - Divisões

• JSE - Java Standard EditionJSE - Java Standard Edition

Swing, AWT Swing, AWT

• JEE - Java Enterprise EditionJEE - Java Enterprise Edition

• Servlet, JSP, EJB (Entity, Stateless, Statefull)Servlet, JSP, EJB (Entity, Stateless, Statefull)

JME - Java Mobile EditionJME - Java Mobile Edition

• MIDP..........MIDP..........http://java.sun.comhttp://java.sun.com

Java Enterprise Edition - Java Enterprise Edition - JEEJEE

FrontendFrontend BackendBackend

Java Enterprise Edition - Java Enterprise Edition - JEEJEE

FrontendFrontend

Funcionalidades relacionadas a Funcionalidades relacionadas a apresentaçãoapresentação

Campos, layouts, telas, funções visuaisCampos, layouts, telas, funções visuaisLógica de visualizaçãoLógica de visualização

JEE - FrontendJEE - Frontend

• Frontend - Container WEBFrontend - Container WEB

JSP e ServletJSP e Servlet

• Padrões Padrões

• CSS, Javascript, DHTML, AjaxCSS, Javascript, DHTML, Ajax

Frameworks WEBFrameworks WEB

• Spring MVC, Struts, JSFSpring MVC, Struts, JSF

FrontendFrontend

Java Enterprise Edition - Java Enterprise Edition - JEEJEE

BackendBackend

Operações relacionadas a regras de Operações relacionadas a regras de negócionegócio

Ler e gravar informações no banco de Ler e gravar informações no banco de dados, dados,

Integração entre aplicativosIntegração entre aplicativosRegras geraisRegras gerais

JEE - BackendJEE - Backend

• Backend - Container EJBBackend - Container EJB

Controle TransacionalControle Transacional

• EJB3EJB3

• Stateless, Statefull, Entity BeansStateless, Statefull, Entity Beans

Frameworks BackendFrameworks Backend

• Spring IoC, JPA, WorkflowSpring IoC, JPA, Workflow

BackendBackend

Identifique-se!Identifique-se!

FrontendFrontend

BackendBackend

● JSP, Servlet, CSS, Javascript, DHTML, JSP, Servlet, CSS, Javascript, DHTML, Ajax, Spring MVC, Struts, JSFAjax, Spring MVC, Struts, JSF

● JTA, EJB, Stateless, Statefull, Entity Beans, JTA, EJB, Stateless, Statefull, Entity Beans, Spring IoC, JPA, WorkflowSpring IoC, JPA, Workflow

Design PatternsDesign Patterns

• Padrões de desenvolvimentoPadrões de desenvolvimento

Soluções para problemas conhecidosSoluções para problemas conhecidos

• Frameworks - MVC > StrutsFrameworks - MVC > Struts

Design Patterns - SingletonDesign Patterns - Singleton

new Classe()new Classe()

Memória - JVMMemória - JVMclasse classe classe classe classe classe

Out of Memory

Out of Memory

Exception

Exception

Design Patterns - SingletonDesign Patterns - Singleton

Classe.newInstace()Classe.newInstace()

Memória - JVMMemória - JVMclasse classe

Design PatternsDesign Patterns• Problema conhecido: Número excessivo Problema conhecido: Número excessivo

e desnecessário de instancias em e desnecessário de instancias em memória.memória.

Solução: Criar apenas uma instancia da Solução: Criar apenas uma instancia da classe em memória.classe em memória.

• Model View Controller (MVC) : Struts, Model View Controller (MVC) : Struts, JSFJSF

• BusinessDelegateBusinessDelegate

Session FaçadeSession Façade

Resumo - Parte 1Resumo - Parte 1

• Java Virtual MachineJava Virtual Machine

JSE, JEE, JMEJSE, JEE, JME

• JEEJEE

• Frontend - apresentaçãoFrontend - apresentação

Backend - regras de negóciosBackend - regras de negócios

• Design PatternsDesign Patterns

Use com moderaçãoUse com moderação

Padrões de Desenvolvimento ÁgilPadrões de Desenvolvimento Ágil

Parte 2Parte 2

Modelo em CascataModelo em Cascata“The Old School”“The Old School”

Modelo em Cascata - Modelo em Cascata - ProblemasProblemas

• Forma sequencial de seguir as etapasForma sequencial de seguir as etapas

InflexívelInflexível

• Não iterativaNão iterativa

Inadequado ao processo do mundo realInadequado ao processo do mundo real

Modelo Ágil - MetodologiasModelo Ágil - Metodologias

• Scrum - Ken SchwaberScrum - Ken Schwaber

XP - eXtreme Programming XP - eXtreme Programming

• LeanLean

• Kanban - ToyotaKanban - Toyota

• CrystalCrystal

Manifesto ÁgilManifesto Ágil

Modelo Ágil - Scrum - PapéisModelo Ágil - Scrum - Papéis

Product OwnerProduct Owner

Scrum MasterScrum Master

TeamTeam

Modelo Ágil - ScrumModelo Ágil - Scrum

Modelo Ágil - BenefíciosModelo Ágil - Benefícios

• Software funcionandoSoftware funcionando

Desenvolvedores felizesDesenvolvedores felizes

• Cliente satisfeito com o produtoCliente satisfeito com o produto

Resumo - Parte 2Resumo - Parte 2

• Nova forma de desenvolver software Nova forma de desenvolver software

• Nova forma de contratar desenvolvedores de Nova forma de contratar desenvolvedores de softwaresoftware

• Nova forma de entregar softwareNova forma de entregar software

Dúvidas ?Dúvidas ?

Obrigado !Obrigado !

Marcio GarciaMarcio [email protected]@mangar.com.br

http://blog.mangar.chttp://blog.mangar.com.brom.brTwitter: MangarAtUOTwitter: MangarAtUOLL