DClick

Evitando perguntas de “escopo” limitado


Eu geralmente não faço posts longos porque sei que muitos não têm paciência de lê-los. Porém, em conjunto com o post anterior percebo aqui uma oportunidade para explanar sobre um problema que atinge todos nós programadores: a dificuldade falarmos o nosso problema para os outros programadores. Se tudo que você procura neste blog são exemplos de código e dicas de Flex você pode parar por aqui. Mas se você gosta também de refletir sobre a maneira como você pensa enquanto trabalha continue lendo.

Outro dia o André Gil da DClick surgiu com uma pergunta interessante: Existe uma maneira de passar parâmetros para um Event Handler a não ser o Event? A resposta para esta pergunta foi não.

(Event Handler: uma rotina que faz alguma coisa quando um evento é disparado)

Mas como eu sempre faço ao ouvir uma pergunta assim eu procurei entender se era isto que o André precisava. E o que ele precisava realmente era algo um pouco diferente. Ele tinha dois componentes que usariam o mesmo Event Handler e deveria haver uma forma de passar uma informação para o Event Handler de acordo com o componente que disparasse o evento. Pode não parecer, mas isso muda muita coisa. Vamos resumir o problema em duas perguntas para que as diferenças fiquem mais evidentes:

A. Existe uma maneira de passar parâmetros para um Event Handler a não ser o Event?
B. Existe uma maneira de passar uma informação para um Event Handler de acordo com o componente que disparar o evento?

A pergunta B apresenta uma definição mais genérica do problema, e por possuir um escopo maior a possibilidade de encontrar uma solução também é maior. Ao tomar a pergunta A como problema a ser resolvido nós acabamos esbarrando em uma limitação do modo de funcionamento de eventos do ActionScript que gera automaticamente o único parâmetro do Event Handler que é o objeto Event. Mas como o problema, de fato, é melhor explicito na pergunta B existe uma solução como pode ser visto neste outro post.

Creio que este exemplo, da dúvida à solução, ilustre bem o fato de que…

…nós programadores não somos bons para falar do nosso problema para outros programadores. Geralmente nós damos um passo a frente já pensando numa solução e transformamos a dificuldade técnica da nossa eventual solução no problema em si.


No caso do André ele transformou a dificuldade técnica de passar parâmetros além do Event para o Event Handler no seu problema. Mas ao trocar pergunta A pela B nós abstraímos da limitação técnica e encontramos uma solução baseada no problema real.

Acredito que este post seja pertinente porque eu que participo ativamente da FlexDev vejo isso acontecer o tempo todo na lista (embora isso não seja privilégio da FlexDev). Mas além das listas, muitas pessoas me fazem perguntas de Flex que a princípio eu penso que não possuem boas respostas. Porém, quase sempre que paramos e revemos o problema é possível encontrar uma boa saída. Conseqüentemente muitos problemas nas listas ficam sem solução porque nós não temos a oportunidade de conversar com as pessoas pessoalmente. A dica que fica é:

Ao pedir ajuda para resolver um problema procure sempre explicar o contexto que o envolve ao invés de situá-lo em torno de uma pergunta técnica de escopo limitado.


P.S.: Agradeço ao André que gentilmente leu este post antes de eu publicá-lo e concordou comigo que isso realmente é algo que acontece com todos nós programadores.

Por Beck Novaes em 3/December/2007 | Comentar | Trackback


No Translations

Um comentário para “Evitando perguntas de “escopo” limitado”


A questão de transformar uma dificuldade técnica num problema é bem interessante beck. Parabéns.

Adicionar comentário

(requerido)
(requerido, não será publicado)