Em programação informática, parecem destacar-se três tipos de notação, de variáveis ou identificadores:
- Camel Notation– a primeira letra é grafada em minúsculas e cada palavra adicional (se aplicável) com uma maiúscula inicial. Exemplo: myIdentifier = 0
- Pascal Notation– todas as palavras que compôem o identificador são grafadas com uma maiúscula inicial. Exemplo: MyIdentifier = 0
- Hungarian Notation– similar à notação Pascal mas com a adição de um prefixo composto por uma ou mais letras minúsculas indicando de forma normalizada o tipo de identificador ou da função que desempenhará. Por exemplo, “i” para indicar um inteiro: iMyIdentifier = 0
Estas notações não são standards estabelecidos em nenhuma linguagem de programação, mas a utilização de uma delas parece-me uma boa prática elementar, no sentido em que permite conseguir-se mais facilmente consistência na criação e utilização de identificadores e pode contribuir significativamente para tornar o nosso código mais fácil de entender para outros programadores e analistas que tenham a pouca sorte de ter de lidar com o que escrevemos. No caso da Internet, este tipo de prática parece-me ainda mais pertinente, uma vez que se trata de um meio por natureza internacional e não é difícil reunir contribuições das mais variadas origens num qualquer projecto.
A notação Húngara parece-me das três a mais interessante: o prefixo pré-definido facilita a compreensão da natureza do identificador por parte de qualquer programador, mesmo que o autor do código tenha utilizado uma designação noutra língua. Esta vantagem faz ainda mais sentido no caso do JavaScript já que esta linguagem não distingue, como se sabe, as variáveis pelos seus tipos.
Em todo o caso, mesmo sendo português, creio que, por princípio, todos os identificadores, em JavaScript, devem ser definidos em inglês… pelos mesmos motivos apontados anteriormente: maior legibilidade e universalidade. Estando o JavaScript, à partida, estruturado em inglês, é tão somente natural que os identificadores sejam definidos na mesma língua, permitindo assim a leitura do código de forma linear.
A tabela seguinte apresenta os prefixos propostos por Nicholas C. Zakas para JavaScript, no seu livro “Professional JavaScript for Web Developers” (exemplos meus).
| Tipo | Prefixo | Exemplo |
|---|---|---|
| Array | a | aAsteroids |
| Boolean | b | bRiskOfColision |
| Float (número) | f | fDistanceFromEarth |
| Function | fn | fnCalculateLifeProbs |
| Integer (número) | i | iSerialNumber |
| Object | o | oAsteroid |
| Regular Expression | re | rePattern |
| String | s | sNickName |
| Variant (pode assumir qualquer tipo) | v | vValue |

Dei início a uma pequena discussão, na mailing list do Web Standards Group, sobre o uso da notação húngara. Podem encontrá-la aqui.