segunda-feira, 11 de maio de 2009

Tratamento de Eventos: Convenções de nomenclatura

No tópico anterior, mostrei como capturar um evento e utilizar um tratador definido pelo usuário.

Neste tópico falarei sobre as convenções de nomenclatura do callbacks.

São três convenções que ajudam na identificação imediata dos callbacks, bem como de sua funcionalidade:
  1. Sempre começam com on.
  2. Em seguida, vem um identificador do tipo de mensagem. Este será discutido mais adiante.
  3. Por último, um nome descritivo opcional. Caso exista, deve deixar claro que ação ele executará.

O identificador do tipo de mensagem deve condizer, claro, com o tipo de mensagem que irá tratar. Existem três tipos que são normalmente abreviados:
  • SEL_COMMAND: abreviado para onCmd...
  • SEL_UPDATE: abreviado para onUpd...
  • SEL_CHANGED: abreviado para onChg...

O terceiro é bem raro no FOX, só encontrei seis ocorrências de callbacks desse tipo (não que isso signifique que o usuário não possa definir seus próprios).

Normalmente, para esses três tipos de mensagem é necessário informar um nome extra, já que por si sós não são descritivos o suficientes (terceiro item das convenções).

Para os demais tipos de mensagem, normalmente utiliza-se o nome completo. Exemplos:
  • SEL_LEFTBUTTONPRESS: onLeftButtonPress
  • SEL_PAINT: onPaint
  • SEL_KEYPRESS: onKeyPress

Esses já dizem claramente o que vão tratar, por isso normalmente recebem o nome completo. E, ao contrário daqueles três, normalmente não é necessário mais de um tratador por janela, ou seja, não precisam de um nome extra para diferenciá-los.

Voltando, então, ao exemplo do tópico anterior, nós temos uma mensagem chamada ID_HELLO. Este é um evento disparado por um botão, ou seja, do tipo SEL_COMMAND. Um nome bastante adequado para o callback que trata essa mensagem, portanto, é onCmdHello.

Com isso, eu já sei que onCmdHello é o callback (on) que vai tratar um comando (Cmd), referente à mensagem ID_HELLO (Hello).


Conclusão

Este tópico foi apenas para chamar atenção a esse pequeno detalhe, mas que eu considero bastante importante, afinal, é importante ter boa legibilidade no código.

Posteriormente, falarei mais especificamente sobre o mapa de mensagens e os tipos de mensagem fornecidos pelo FOX Toolkit.

Um abraço e até lá.

Nenhum comentário: