segunda-feira, 25 de outubro de 2004

Como você nomeia suas funções?

Se você é um daqueles que não fazem do nome de funções uma coisa útil e identificável que sirva para entendimento e fácil localização, bem vindo ao clube do qual já vou saindo...

Imagine a situação: Estás a fazer aquele monstro de rotina para manipulação de btree’s e de repente percebe que usar aquele seu arquivo de pilha será muito útil. Tudo perfeito pois a idéia é mesmo aproveitar o que está pronto. É neste momento que a coisa pega: Você acabou pensando cada arquivo como uma coisa isolada, não reutilizável, e nomeou as funções sem usar prefixos ou sufixos. Existe uma função em um arquivo chamada destrói (a pilha) e no outro existe uma função que destrói a árvore. Como você faz pra identificar uma e outra?

Em linguagens orientadas a objetos é simples... "objeto.procedimento" e a situação está resolvida! Em linguagens com conceito de namespaces (c++ por exemplo) também fica fácil já que se pode envolver tudo num "space" e "space.procedimento" te retorna a função...

Em linguagens estruturais a melhor idéia é mesmo identificar. Não só funções, as estruturas e outros. Vai me dizer que todas as estruturas que definem os nós da sua btree, pilha e fila chamam-se "noh"?!

Uma boa idéia (não a única) é nomear utilizando um prefixo:
btree_insert, btree_destroi, btree_...
ebtree_noh ou sbtree_noh (a primeira letra de estrutura, struct)

Utilizar nomes de funções no imperativo ou no infinitivo pessoal também é uma boa pedida.
btree_insere ou btree_inserir, btree_destroi ou btree_destruir e por aí vai.

Embora cada um se sinta mais a vontade fazendo do "seu jeito", acho que é uma boa dica. Quer mostrar a notação que utiliza? Coloque como comentário, ok?

Nenhum comentário: