quarta-feira, 12 de agosto de 2009

Design Patterns

Design Patterns para coldfusion

1. Motivação
Reutilizar soluções para problemas comuns.
Soluções extensivamente testadas.
Escalabilidade, manutenabilidade, reusabilidade
São padrões, não códigos.
Ajudam a comunicação entre desenvolvedores

SOA
A vantagem de utilizar esta arquitetura é reduzir o time-to-market e custos de desenvolvimento

Refactoring
é muito mais difícil do que escrever a aplicação correta desde o início

2. Padrões de arquitetura
MVC

Singleton
usado restritamente para instanciar um unico objeto para toda aplicacao
(applcation.cfc é um exemplo no coldfusion)

Service Object Pattern
Toda logica do negócio encapsulada em um servico
(loginService.cfc, EmailService.cfc)

Front Controller / Command
Contém os handlers para cada tipo de request

Business Delegate
Sepera camada de apresentacao com servicos

DAO / Gateway
operacoes CRUD,
Table data gateway (querys -> listas do coldfusion)

Value/Data transfer object
"beans" so para passagem de valor, nao refletem necessariamente as entidades nas tabelas

3. Frameworks
Coldbox é o maior
Mach II, Model-Glue, Coldspring


4. Exemplo de desenvolvimento

.processo
Criar um prototipo
Modelar o banco de dados com as informações necessárias para montar o site
Diagrama de classes

.design patterns
cfc com os servicos onde cada funcao tem uma factory para os objetos puxando de um gateway
o gateway eh responsavel por fazer a ponte entre os dados e a camada de visualizacao

Com uma camada dessas eh possivel trocar o coldfusion pelo flex molinho


.arquivos as
(investigar o que sao os arquivos .as pois parecem muito com funcoes tipo java/c++)
bindable /remote class / alias servem pra fazer a ligacao com o flex


O cara deu um exemplo do command (registro dos handlers para cada comando)
e usando data value transfer (bean só pra especificar a classe)
um proxy (padrao de projeto) para pegar os dados da view

sequencia de padroes que a view usa no projeto dele:
command -> proxy -> delegate

EMC - EA modela as classes e já gera código para as classes (o cara tá usando)

O coldfusion 9 é quase 10x mais rápido para criar objetos do que o 8.
Teremos menos problemas com factories.

Bela palestra pra quem nunca viu design patterns ou nao sabe como aplicar dentro do mundo coldfusion. Boas práticas de desenvolvimento que deveriam ser adotadas no projeto.

Nenhum comentário:

Postar um comentário