Download - Arquitetura web para sistemas de negócio
- 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