
Boas práticas durante a programação de computadores
A notação húngara foi desenvolvida por Charles
Simonyi no início dos anos 70, quando ainda trabalhava para a Xerox no Palo Alto Research Center (PARC), lá ele criou o editor de texto chamado Bravo, considerado o primeiro editor de texto WYSIWYG (what-you-see-is-what-you-get), na tradução livre (o que você vê é o que você obtém), experiente programador, saiu da Xerox em 1980 e foi trabalhar na Microsoft, onde ocupava o cargo de engenheiro e arquiteto-chefe no desenvolvimento do Microsoft Word e Microsoft Excel, e outros software de sucesso. Nascido na Hungria e naturalizado norte-americano, foi o primeiro homem a ir no espaço como turista espacial, pagou cerca de 60 milhões de dólares por duas viagens 2007 e 2009.
Simonyi no início dos anos 70, quando ainda trabalhava para a Xerox no Palo Alto Research Center (PARC), lá ele criou o editor de texto chamado Bravo, considerado o primeiro editor de texto WYSIWYG (what-you-see-is-what-you-get), na tradução livre (o que você vê é o que você obtém), experiente programador, saiu da Xerox em 1980 e foi trabalhar na Microsoft, onde ocupava o cargo de engenheiro e arquiteto-chefe no desenvolvimento do Microsoft Word e Microsoft Excel, e outros software de sucesso. Nascido na Hungria e naturalizado norte-americano, foi o primeiro homem a ir no espaço como turista espacial, pagou cerca de 60 milhões de dólares por duas viagens 2007 e 2009.
A premissa por trás da notação húngara é de que a informação transportada é muito mais importante ao dar nomes às variáveis, do que a capacidade de ler o seu código-fonte em voz alta durante uma revisão de seu programa.
Para variáveis de um mesmo tipo no seu programa, você usa uma abreviação para o tipo do dado como parte do nome da variável.
Para variáveis de um mesmo tipo no seu programa, você usa uma abreviação para o tipo do dado como parte do nome da variável.
Com a notação húngara você pode economizar muito tempo e trabalho. Qualquer pessoa que tenha alguma experiência em programação percebe o valor da boa documentação, ao tentar entender o que se fez em uma sessão anterior de codificação ou interpretar o código-fonte escrito por outra pessoa. A notação húngara pode fazer você entender mais rapidamente determinado código. Os mesmos conceitos da notação húngara podem ser aplicados em praticamente todas as linguagens de programação: Delphi, Visual Basic, C, C++ etc.
O que é exatamente a notação húngara?
É um modo de dizer às outras pessoas envolvidas em um mesmo projeto ou programa o que você pretende fazer com uma variável. Sabendo-se o que uma variável deve fazer, é possível explicar o próprio código.
Há quatro razões pelas quais você deve usar a notação húngara em seus programas:
1 – Valor mnemônico: Permite a você lembrar o nome das variáveis com maior facilidade. Um aspecto importante em projetos de equipe.
2 – Valor sugestivo: Você pode não ser a única pessoa que modificará seu código. Caso esteja trabalhando em um projeto de equipe, é provável que outros membros, verão o código que você escreveu. A utilização da notação húngara ajudará os outros membros da equipe a entender o que você quer dizer ao utilizar uma determinada convenção.
3 – Consistência: Muitas vezes a capacidade de um programador é analisada considerando-se não somente o quanto o programa é eficiente ou quanto funciona, mas sim a facilidade com que outros programadores conseguem ler seu código. A utilização dessas convenções o ajudará a manter o código uniforme entre mais de um projeto. Outros programadores poderão saber antecipadamente o valor ou a função de um trecho de código, apenas observando as convenções utilizadas.
4 – Velocidade decisão: No mundo atual, a velocidade com que se pode criar e modificar um código muitas vezes determinará o sucesso de um empreendimento. A utilização de um código consistente reduzirá seu tempo empregado tentando decifrar o que alguém pretendia ao criar uma variável ou função. Essa redução no tempo de entendimento aumentará o tempo para o trabalho produtivo, a programação em si. Isso também ocorre conosco, quando escrevemos um código há muito tempo e posteriormente tentamos entender o que na época estávamos tentando criar ou definir nomeando essas variáveis.
Exemplos de utilização da notação húngara:
chnome_aluno -> variável chamada nome_aluno to tipo caractere.
Na imagem de exemplo, podemos ver que o programador está programando em C++ e nomeou uma variável “strcpy” o “str” de string “cpy” de copy.
Não só em nomes das variáveis é que usamos a notação húngara, podemos usar a notação húngara em linguagens orientadas a eventos em nomes de componentes, como Visual Basic ou Delphi.
Na notação húngara, nomes de funções sempre começam com uma letra maiúscula.
chnome_aluno -> variável chamada nome_aluno to tipo caractere.
Na imagem de exemplo, podemos ver que o programador está programando em C++ e nomeou uma variável “strcpy” o “str” de string “cpy” de copy.
Não só em nomes das variáveis é que usamos a notação húngara, podemos usar a notação húngara em linguagens orientadas a eventos em nomes de componentes, como Visual Basic ou Delphi.
Na notação húngara, nomes de funções sempre começam com uma letra maiúscula.
Abaixo podemos ver alguns exemplos do seu uso:
Tipo de Objeto | Usando Notação Húngara | Breve Descrição do Obj |
---|---|---|
Array | a | matriz |
Character | c | caractere |
Date | d | data |
Double | dbl | duplo ou dobro |
Flag, booleana | f | tipo lógico “verdadeiro” ou “falso” |
Mensage | msg | mensagem |
Red, green, blue | rgb | Cores: vermelho, verde, azul |
Single | sgl | único |
Form | frm | Formulário |
Button | btn | Botão de comando |
TextBox | txt | Caixa de Texto |
Label | lbl | Rótulo |
ComboBox | cbo | Caixa de Combinação |
CheckBox | chk | Caixa de Seleção |
Caixa de Listagem de Diretório | dir | |
Caixa de Listagem de unidade | drv | |
Grade | grd | DataGride |
HsrollBar | hsb | Barra de rolagem horizontal |
Imagem | img | ImageList |
ListBox | lst | Caixa de Listagem |
Menu | mnu | Menu |
Object Linking and Embedding | OLE | |
Optional Buton | opt | Botão de Opção |
PictureBox | pic | Caixa de Figura |
Timer | tmr | Timer |
Tipo de dado definido pelo user | typ | |
CheckedListBox | clst | CheckedListBox |
ColorDialog | cdlg | ColorDialog |
ContextMenu | cmnu | ContextMenu |
CrystallReportViewer | crv | CrystallReportViewer |
OpenFileDialog | odlg | OpenFileDialog |
PrintDialog | pdlg | PrintDialog |
PrintDocument | pdoc | PrintDocument |
ProgressBar | pbr | ProgressBar |
RadioButton | rad | RadioButton |
RichTextBox | rtf | RichTextBox |
StatusBar | sbr | StatusBar |
SaveFileDialog | sdlg | Cx. de Diálogo Salvar Arq. |
TabControl | tab | TabControl |
TabPage | pge | TabPage |
Timer | tmr | Timer |
Artigo escrito baseado na tese de doutourado de Charles Simonyi: "Meta-Programming: A software Production Method" (Universidade de Stanford, 1977; Centro de Pesquisa Xerox) Palo Alto.
seja o primeiro a comentar!