Observer Pattern em ColdFusion

On 11 de abril de 2012, in CFML, Design Pattern, by andersonstraube

O Observer é um padrão de projeto de software que define uma dependência um-para-muitos entre objetos de modo que quando um objeto muda o estado, todos seus dependentes sejam notificados e atualizados automaticamente. Permite que objetos interessados sejam avisados da mudança de estado ou outros eventos ocorrendo num outro objeto.
O padrão Observer é também chamado de Publisher-Subscriber, Event Generator e Dependents.
Fonte: http://pt.wikipedia.org/wiki/Observer

Motivação para usar o Padrão Observer?

– Definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente;
– Quando um objeto deve ser capaz de avisar outros sem fazer suposições sobre quem são os objetos. Ou seja, sem criar um acoplamento forte entre os objetos;
– Conseguimos reduzir o uso do relacionamento bidirecional por meio de interfaces e classes abstratas, separando a abstração para ter um alto nível de coesão e baixo acoplamento.

Continue reading »

Tagged with:  

cfqueryparam com lista de valores para a cláusula “IN” do SQL

On 4 de abril de 2012, in CFML, SQL, by andersonstraube

Vamos ver como usar uma lista de valores na cláusula “IN” do SQL utilizando o cfqueryparam do ColdFusion.

Não preciso nem comentar sobre o uso do cfqueryparam, para mim isso é obrigatório por questões de segurança e vários outros fatores.

No código abaixo ele lista os clientes cujo nome está na lista:


<cfquery name="q_Clientes" datasource="#dsn#">
  SELECT 
	*
  FROM 
	clientes
  WHERE 
	nome IN ('Anderson','Maria','João','Zeca')
</cfquery>

Continue reading »

Tagged with:  

Cache de Query no ColdFusion

On 28 de março de 2012, in CFML, by andersonstraube

Em sistemas críticos (de alta carga) é fundamental termos otimização de SQL’s e principalmente sistema de cache. O ColdFusion tem um recurso muito interessante que é utilizado para fazer o cache de query.

Em consultas largamente utilizadas no sistema e onde o resultado raramente muda como por exemplo: listagem de estados, cidades e bairros – não precisamos recorrer ao banco de dados para recuperar tais informações, nestes casos podemos poupar o banco armazenando o resultado dessa consulta em cache na própria aplicação:

Continue reading »

Tagged with:  

Singleton em ColdFusion

On 2 de março de 2012, in CFML, Desenvolvimento, Design Pattern, by andersonstraube

Singleton, é um padrão de projeto de software (do inglês Design Pattern). Este padrão garante a existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu objeto.
O termo vem do significado em inglês quando se resta apenas uma carta nas mãos, num jogo de baralho.
Muitos projetos necessitam que algumas classes tenham apenas uma instância. Por exemplo, em uma aplicação que precisa de uma infraestrutura de log de dados, pode-se implementar uma classe no padrão singleton. Desta forma existe apenas um objeto responsável pelo log em toda a aplicação que é acessível unicamente através da classe singleton.
Fonte: http://pt.wikipedia.org/wiki/Singleton

A maioria das classes/instâncias do ColdFusion (CFC) podem ser transformadas em um singleton, vamos ver como isso funciona na prática:

Continue reading »

Tagged with:  

CFML e Ajax com JSON (troca de selects)

On 23 de fevereiro de 2012, in CFML, jQuery, by andersonstraube

Para este post utilizarei a clássica troca de “estado e cidade” para exemplificar o uso do jQuery para requisições ajax com CFML retornando os dados em JSON.

Segue o código html simples:

Continue reading »

Tagged with:  

ColdFusion 10 e ColdFusion Builder 2.0.1 Public Betas

On 22 de fevereiro de 2012, in CFML, by andersonstraube

Já está disponível para download o ColdFusion 10 e ColdFusion Builder 2.0.1 Public Beta, veja abaixo as novidades desta versão:

  • Unique HTML5 built-in support to deliver richer interfaces without prior knowledge of HTML5
  • Improved web services support using revamped engine and built-in support for REST
  • Security enhancements to protect applications with new secure profile, improved authentication and encryption.
  • Scheduler improvements to manage application-specific tasks, event handling, grouping, and chaining of tasks
  • Built-in Tomcat server replacing Adobe JRun leading to performance improvements
  • Instant notification and One-click Hotfix installer for updates
  • Object Relational Mapping to build database independent applications without writing SQL
  • Bi-directional Java integration to dynamically load libraries and invoke ColdFusion components (CFCs) from Java

Mais detalhes em -> http://labs.adobe.com/technologies/coldfusion10/

Tagged with:  

Para quem deseja customizar as páginas de erros do Railo, seja ela de programação (erro 500 ) e/ou de página não encontrada (erro 400) é muito simples, basta seguir os passos:

1 – Acesse o Web Admin do Railo: http://dominio.com /railo-context/admin/web.cfm

2 – No menu da esquerda selecione a opção “Error” na seção “Settings” e depois informe o path dos arquivos conforme a imagem abaixo:

Settings error Railo

#FicaDica

Tagged with:  

MXUnit – funções setUp() e tearDown()

On 16 de fevereiro de 2012, in CFML, TDD, by andersonstraube

Continuando a série de posts sobre TDD (Test Driven Development), vamos explorar os métodos “setUp()” e “tearDown()”.

Na maioria dos frameworks de testes unitários temos esses dois métodos para a configuração do nosso teste:

setUp()

Este método é utilizado no início do processo de teste, ou seja, antes de executar cada teste nós preparamos o cenário com configurações anteriores a execução de cada caso de teste.

tearDown()

Este método é utilizado no final de cada caso de teste, ou seja, ele desfaz o que o setUp() criou.

Vamos ver na prática como utilizá-los:

Continue reading »

Tagged with:  

Trabalhando com Custom Tags no Railo

On 16 de fevereiro de 2012, in CFML, by andersonstraube

Neste post irei mostrar com criar, configurar e usar uma Custom Tag no Railo.

Custom Tags são trechos/templates de códigos escritos em CFML e são projetados para serem reutilizados. Custom Tags podem poupar muito tempo de desenvolvimento quando os códigos são usados com certa freqüência, além de serem fáceis para adicionar/remover funcionalidades.
Custom tags também podem ser desenvolvidas em C++, Java, whatever… Neste post eu apenas mostrarei como desenvolvê-lo através de código CFML.

Mais sobre Custom Tags,  neste post  do  Pedro Claudio .

O primeiro passo é configurar o Web Admin do Railo para indicar a pasta a qual conterá suas custom tags.

1 – Acesse o Web Admin do Railo: http://dominio.com /railo-context/admin/web.cfm

Continue reading »

Tagged with: