arquitetura web para sistemas de negócio

Download Arquitetura web para sistemas de negócio

If you can't read please download the document

Upload: ralph-rassweiler

Post on 23-Jun-2015

1.018 views

Category:

Technology


1 download

DESCRIPTION

Arquitetura para desenvolvimento de sistemas de negócio na Web

TRANSCRIPT

  • 1. Arquitetura Web Ralph J. R. Filho

2. Cenrio Desenvolvimento Web Qual a melhor forma de desenvolver para a Web? 3. Cenrio SimplicidadeEscrever lgica de negcio em uma pgina de scriptJSPASPPHP 4. Exemploinclude_once ("check.php");if ($check[level] > 4){print "";print "Illegal Access";print "
";print "";print "You do not have permission to view this page.";exit; // Stop script execution} 5. Importante esclarecer queSe a abordagem escolhida para a arquitetura for precria, a escolha da tecnologia influencia pouco. 6. Importante esclarecer queExistem n opes no mercado para desenvolvimento de software 7. Importante esclarecer queO que faz diferena e agrega valor uma arquitetura bem definida 8. Importante esclarecer queA partir da arquitetura, seleciona-se as tecnologiasadequadas natureza dos projetosExemplo: casa Para que pblico a casa? Qual o clima do local? Quais as caractersticas do terreno? Qual o custo/benefcio das madeiras na regio? 9. Exemplo: softwarePara que pblico o software? (b2b, b2c, ...)Qual o tipo do software (negcio, ferramenta, embarcado)Quais os requisitos funcionais?Quais os requisitos no-funcionais?Vai rodar em que ambiente? cliente-servidor ou cliente?... 10. Ou sejaUma arquitetura e conjunto de tecnologias montados para um projeto A pode no ser a mais adequada para um projeto BCada caso um caso 11. AnalogiaUsa-se o mesmo tipo de material para estas duas construes? 12. Software 13. CenrioCom a falta de padres arquiteturais pode ocorrerDificuldade de manutenoBaixa escalabilidadeBaixo nvel de reusoCdigo espaguete 14. D manuteno nisso 15. Cenrio Spaghetti code10 i = 020 i = i + 130 PRINT i; " squared = "; i * i40 IF i >= 10 THEN GOTO 6050 GOTO 2060 PRINT "Program Completed."70 END 16. Technical Debt (Dbito tcnico)The obligation that a softwareorganization incurs when itchooses a design orconstruction approach thatsexpedient in the short termbut that increasescomplexity and is morecostly in the long term 17. O investimento em arquitetura necessrio, porm, seus benefcios so difceis de mensurarDe forma simples, pode-se comparar obtendo resultados de projetos (sucesso/insucesso), anlises de produtividade (hora/homem) e ndices de qualidade (bugs por funcionalidade, medida de desempenho, etc.) 18. Evoluo (1) 19. Evoluo (1)Separar a lgica da apresentaoASP.NetPHP + SmartyJSF 20. Melhora a situao, mas...Geralmente sobrecarrega o cdigo aonde est a lgicaCausando os mesmos problemas 21. Anti-patterns 22. Evoluo (2) 23. Evoluo (2)Separar a lgica da apresentao, usando um meio-de-campo 24. Filosofia MVC Modelo ControleViso 25. MVCA viso no precisa saber que o modelo existe e vice-versa 26. MVCVisoCadastra-Clientes.htmlControleClientesControl.javaModeloClientesModel.java 27. MVCJ alguma coisa, mas pode melhorarO cdigo no modelo tende ficar extensoMVC uma filosofia de arquitetura, pode ser adaptadaAbre aspasAlguns modelos e mtodos servem como guias.No so doutrinas.No pecado personalizar 28. Evoluo (3) 29. Evoluo (3)O esforo de programao deve estar na modelagem do domnio de negcio, afinal... disso que se trata a programao de sistemas de negcioIsto se aplica a softwares de negcioOutros tipos de software: ferramentas, embarcado 30. Domain-Driven DesignConjunto de princpiosBaseado no MVCFoco no reuso de cdigoFacilidade de implementaoEquipes distribudasArquitetura orientada a servioCloud-computing / Web-Services 31. DDD 32. A camada de DomnioContm toda a lgica do negcioAssinatura de mtodosBaixo nvel de acoplamentoAumenta o nmero de arquivos, reduz o nmero de linhas de cdigoModelo de arquitetura que evoluiu com a tecnologia 33. Montando uma arquiteturaTecnologia utilizadaJava EE 34. Java EEConjunto de especificaesDita como deve ser implementadoTransfere complexidade repetitiva dasaplicaes de negcio para a arquiteturaJava EE 6 35. ? INFRAEJB JPADOMAIN Repos. Service Entity CONTROL JSF ? 36. Oracle Glassfish CommunityImplementa o Java EEGerencia transaes e conexes com o BDDisponibiliza ambiente para servletsControla aspectos de segurana e acessoConcorrentesJBoss ASApache Geronimo 37. Enterprise Java Beans (EJB)Especificao verso 3.1 (10/12/2009)Integra-se com a camada de persistnciaControla estado de beansControla aspectos de seguranaRecursos de agendamentoSuporte web services 38. Java Persistence API (JPA)Especificao 2.0 (10/12/2009)Oferece estrutura para mapear entidades do banco de dadosControla aspectos de CRUDOferece os benefcios de O.O. para BD relacionaisImplementadores: Hibernate, TopLink, etc. 39. Java Server Faces (JSF)Especificao 2.1 (22/10/2010) (Mojarra)Disponibiliza uma separao clara entre a camada de viso e a camada de controleDisponibliza templatesDisponibiliza componentes visuaisDisponibiliza AJAX e controle de eventos 40. PrimeFacesBiblioteca de componentes visuais que utiliza oJSF e o Jquery (centenas de componentes)Atualmente na verso 3.2Simplifica a construo de pginas webAjuda o programador a manter o foco na lgicado negcioConcorrentesRichFacesIceFaces 41. ExemploLista de Notas Fiscaislista-nota-fiscal.xhtmlNotaFiscalMB.javaNotaFiscalRepository.javaNotaFiscalRepositoryJPA.javaNotaFiscalService.javaNotaFiscalServiceImpl.javaNotaFiscal.java 42. ExemploLista de Notas Fiscais#{nf.serie} #{nf.razaoSocialDestinatario} #{nf.dataEmissao} #{nf.valor} 43. Exemplo 44. Resultado 45. Exemplo 46. Exemplo 47. Notem Os nomes no singular Os nomes em ingls O tamanho dos nomes dos arquivos A limpeza e a clareza dos cdigos-fonte (POJOs) 48. Posso substituir a camada de Infra, Controle, Viso, Servidor de Aplicao, Banco de Dados e a sada para o usurioNo entanto, a modelagem de domnio pode continuar intacta 49. O domnio representa o entendimento do programador sobre a lgica do negcio 50. no domnio que ficar a inteligncia do negcioRegras de NegcioEu digo o qu deve ser feito e no comoPadres ISO so assimModelos de desenvolvimento so assimO como feito vai nas camadas perifricas da arquitetura que implementam o domnio 51. Tenho condies de fazer 52. Caminho de implementaoArquitetar Assinar mtodos do domnio Mapear entidadesImplementar Implementar repositrios e regras de negcio Implementar interfaces e controladores Implementar validaes e tratamento de erros Implementar testes unitrios 53. Adio de boas prticasInspeo de cdigoProjeto de soluo (UML)Foco no negcioProgramao coletiva (o cdigo pertence organizao e no ao programador)Padres devem ser evoludos constantemente 54. NotaNo h nirvana para uma organizao. O apse a melhoria contnua de processos bem definidos, estveis e adequadamente quantificados 55. Vantagens e DesvantagensEstabilidade Back-end no trivial!Comunidades ativas Curva de aprendizadoMaterial didticoDebug em alto nvelManutenibilidadeProdutividadeDesempenhoRpido de Prototipar 56. Tempo investidoAumenta o investimento em pensar como fazer para diminuir o investimento em fazerMais planejamento, menos esforo 57. Tempo InvestidoE quanto liberaes urgentes?RefactoringPlanejamento de releases crucialOrganizao da equipe e da demanda crucialPoltica de gerenciamento de configuraoPoltica de manuteno 58. LembrandoCada caso um caso (natureza dos projetos)Todas as abordagens tem vantagens e desvantagensA melhor soluo aquela que atende tua necessidade bom manter os olhos abertos s novidadesA inovao pode ser um diferencial competitivo 59. Ambiente decente 60. Ambiente Decente Para desenvolvimento, em geral, os S.O.s pinguim-like so superioresEscolher uma IDE comoescolher um time de futebol.Mas o eclipse tem umalegio de fs. 61. JAVA em 2012#1 Linguagem de programao9 milhes de desenvolvedores1 bilho de downloads por ano3 bilhes de devices rodando java97% de computadores empresariais17 anos de mercado 62. Java - JCP 63. Para encerrar Martin FowlerAny fool can write code that a computer can understand. A goodprogrammer write code that humans can understand