segunda-feira, 5 de outubro de 2009




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.

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.



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.

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!

Postar um comentário

<<