[Cascavel-pm] O código mais bizonho que eu já fiz na minha vida (v. 2.0)

Luis Campos de Carvalho lechamps em terra.com.br
Quinta Junho 17 10:10:25 CDT 2004


Daniel Ruoso wrote:
> Simples,
> 
> Vamos imaginar que você está fazendo uma aplicação web com componentes
> (tipo o Oak, ou o Oak2), e você precisa personalizar o comportamento da
> superclasse dos componentes visuais para, por exemplo, só exibir se o
> usuário tiver uma permissão específica.
> 
> A primeira resposta seria: vamos colocar essa implementação no
> Oak2::Web::Visual (superclasse dos componentes visuais da web), mas daí
> você percebe que isso só faz sentido na sua aplicação e não na árvore do
> Oak mesmo...
> 
> A segunda resposta seria: vamos fazer um fork para essa nova
> funcionalidade, mas daí você percebe que isso daria muito trabalho...
> 
> Enfim você se desespera e tem que sair duplicando código em vários
> lugares...
> 
> ou...
> 
> você define uma personalização para aquela classe naquela aplicação e
> tudo fica lindo e maravilhoso...
> 

   Desculpe, Daniel. Eu nem mesmo o conheço pessoalmente. Me avise 
quando podemos nos encontrar e eu vou corrigir isso lhe pagando um 
$DanielRuoso->favouriteDrink().

   IMHO, isso parece muito um problema de projeto. O Oak poderia 
suportar "pluggable parents", de forma que se você não estiver contente 
com alguém da hierarquia, fazer override seja simplesmente uma questão 
de alterar um ponteiro em um arquivo de configuração (simples e rápido). 
Desta forma, você poderia simplesmente extender ou alterar o código 
necessário ao seu projeto.

   Obviamente, você deve ter considerado isso em algum momento durante a 
implementação do Oak. O que aconteceu para você desistir deste tipo de 
arquitetura?

   Acho que soluções que manipulam as tabelas de símbolos são bonitas, 
mas perigosas demais. Alguém pode tentar um "cruzamento" com outra 
manipulação da tabela de símbolos e o resultado pode ser inesperado...

   Querendo ajudar, temendo atrapalhar, putamplexos!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Luis Campos de Carvalho is BSc in Comp Science,
   PerlMonk [SiteDocClan], Cascavel-pm Moderator,
   Unix Sys Admin && Certified Oracle DBA
   http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




Mais detalhes sobre a lista de discussão Cascavel-pm