sexta-feira, agosto 26, 2005

Canos ao invés de Camadas

Isso é o germe de uma idéia ainda. Mas já vou postar pra ver se a discussão evolui a idéia. Eu e o Marlus aqui estávamos discutindo sobre camadas (de software) e como é difícil você controlar isso porque camadas podem ter uma "superfície de contato" muito grandes entre si. Sem falar que frequentemente você não consegue isolar uma camada inteiramente do contato com outras duas. Aí, pensando em algumas coisas que implementamos aqui, encontramos uma outra metáfora que leva a um design ligeiramente diferente: CANOS. Imagina que seu módulo não é uma camada, mas um componente isolado que só se comunica com outros através de uma única classe, nosso "cano". Módulos (pacotes ou componentes) só se conecta a outro através de um único cano. Dessa forma, se a comunicação precisar de modificações, validações ou restrições, você pode trabalhar somente na classe que faz a conexão ao invés de ter toda uma superfície de contato para caçar. É como se todo componente/pacote/módulo tivesse obrigatoriamente um façade. (hmmmm....) Essa idéia levou a outra. Se eu tenho um cano e preciso transportar dados, como eu transporto? Minha sugestão é "enlatar" os dados em uma estrutura que ambos os componentes/módulos/pacotes entendam. Os dados só podem ser obtidos dali. Essa idéia de lata de dados foi aplicada em um framework aqui e deu resultados muito bons. Toda a transformação de dados necessário para comunicar os componentes pôde ser feito na lata ao invés de ficar espalhado. Canos e latas.... será que dá pra evoluir a idéia?

4 comentários:

  1. Já pensou em aplicar um modelo Pipe Oriented em 3D? Tipo um cubo de dados de Data Minning.

    E troque as latas por batatas.

    ResponderExcluir
  2. Anônimo1:19 PM

    Esse "conceito" que vc imaginou é semelhante a um padrão arquitetural chamado Pipes and Filters.

    http://www.vico.org/pages/PatronsDisseny/Pattern%20Pipes%20and%20Filters/index.html

    ResponderExcluir
  3. heheh, em 2005 eu não o conhecia :)

    ResponderExcluir
  4. Anônimo9:41 AM

    Rsrsrsrs.
    Vc tem conseguido aplicar esse padrão? Chegou a "evoluir" a idéia?

    ResponderExcluir