Jump to content
perdido_e_sozinho

Coding Conventions, Porquê?

Recommended Posts

perdido_e_sozinho

A importância das Coding Conventions

Nem todos os programadores concordam com as convenções de código, o facto é que estas são muito importantes, uma vez que permitem uniformizar o código, permitindo que vários departamentos programem da mesma maneira de forma a unir mais tarde todo um projecto. Imaginem o caos de programar um Windows ou Linux com milhoes de linhas de código onde cada programador programava com a suas próprias regras.

Quando nunca se utilizou qualquer regra na definição de controlos e variáveis, é dificil começar a usar regras, uma vez que se perde por vezes mais tempo, mas o facto é que em grandes programas esse tempo é ganho mais tarde. Além quantos de vocês não voltaram a pegar num projecto e não perceberam nada do que haviam desenvolvido à algum tempo atrás.

As Melhores Práticas para VB

Option Strict On

Esta opção obriga a que todas as variáveis sejam declaradas o facto é que evitam erros desenvolvidos sem razão melhorando a qualidade do código.

Camel Casing

Camel Casing consiste em colocar em minúscula a primeira letra, num formato idêntico ao seguinte: listaUtilizadores, dadosRegisto...

No VB deve ser utilizado em variáveis locais, privadas(private) ou protegidas (protected) que não estão acessíveis externamente.

Pascal Casing

Pascal Casing consiste em colocar em maiúscula a primeira letra de cada palavra num formato idêntico ao seguinte: ListaUtilizadores, DadosRegistos... No VB deve ser utilizado sempre que não se aplique o Camel Casing e em objectos.

Comentários

Todos os procedimentos devem ser correctamente comentados, de forma a possuirem informação que permita definir a sua finalidade e funcionamento.

Deve-se também comentar as variáveis e blocos lógicos. O comentário deve refletir o que faz o bloco de código e não repetir o código:

ERRADO

'Abrir um ficheiro de texto

Dim sr as new StreamReader("c:\texto.txt")

'Declarar um Inteiro

Dim i as Integer

'Repetir a leitura de cada linha

While sr.ReadLine()

      'Acrescentar 1

      i = i +1

End While

CORRECTO

'Conta o número de linhas no ficheiro

Dim sr as new StreamReader("c:\texto.txt")

Dim i as Integer

While sr.ReadLine()

      i = i +1

End While

A ter em Conta

Muitas pessoas acham que usar funções do namespace Microsoft.VisualBasic é incorrecto. Não podiam estar mais erradas, o facto é que estas funções fazem parte do próprio framework, e como tal não têm qualquer incompatibilidade com o framework. O que pode causar problemas e deve ser evitado ao máximo são as funções do namespace Microsoft.VisualBasic.Compactility que surge normalmente na conversão de projectos de VB6 para VB.NET. Este namespace é apenas temporário e tem de ser incluído nos projectos, causando muitos problemas.

Devem ser sempre usados nomes consistentes e reveladores do conteúdo das variáveis. Variáveis i,j,k podem ser usados em loop's triviais, mas se necessita de uma variável para guardar dados deve usar um nome consistente como por exemplo sNomeAluno.

Hungarian Notation

A Hungarian Notation foi criada com o objectivo de identificar o tipo de variável através do seu nome, o facto é que quando trabalhamos com muitos controlos ou em grupo, isto pode ser muito util.

De facto a Hungarian Notation é universal e é usada em diversas linguagens.

Para utilizar a Hungarian Notation basta adicionar um prefixo em minusculas ao nome da variável. Cada Prefixo tem um significado. Ex.: frmMenu no VB é uma form chamada Menu.

Controlos Standart
---------------------------------------------------------------------------------
Button 					btn
CheckBox				chk
CheckedListBox				clst
ColorDialog				cdlg
ColumnHeader				chdr
ComboBox				cbo
ContextMenu				cmnu
CrystalReportViewer			crv
DataGrid				grd
DateTimePicker				dtp
DomainUoDown				dud
ErrorProvider				erp
FontDialog				fdlg
Form					frm
GroupBox				grp
HelpProvider				hlp
HScrollBar				hsb
ImageList				img
Label					lbl
LinkLabel				lnk
ListBox					lst
ListView				lvw
Menu					mnu
MonthCalendar				cal
NotifyIcon				nico
NumericUpDown			nud
OpenFileDialog				odlg
PageSetupDialog			psd
PictureBox				pic
PrintDialog				pdlg
PrintDocument				pdoc
PrintPreviewControl			ppc
PrintPreviewDialog			ppd
ProgressBar				pbr
RadioButton				rad
RadioButtonList				rbl
RichTextBox				rtf
SaveFileDialog				sdlg
Splitter					spl
StatusBar				sbr
StatusBarPanel				sbp
TabControl				tab
TabPage				pge
TextBox				txt
Timer					tmr
ToolBar					tbr
ToolBarButton				tbb
TooTip					tip
TrackBar				trk
TreeNode				nod
TreeView				tvw
VScrollBar				vsb

Data Objects
-----------------------------------------------------------------------
Connection 				cnn
Command				cmd
CommanderBuilder			cb
DataAdapter				da
DataColumn				dcl
DataReader				dr
DataRow				drw
DataSet					ds
DataTable				dt
DataView				dv

As coisas que sempre foarm más, são más e sempre serã más!

O Goto, Option Explicit Off e On Error Resume Next nunca foram muito boas ideias. E ainda não são. Para controlo de erros deve-se utilizar a estrutura Try.

Try

   

    Dim x as Integer

    x = x / 0

Catch ex as Exception

    MsgBox(ex.Message)

Finally

    ' Este código corre sempre

End Try

Esta forma de controlo de erros evita que o programa tenha problemas e ainda permite determinar com precisão o tipo de erro, assim como correr algum código de correcção.

Deve-se ainda evitar o uso de caracteres fora do padrão A-Z, 0-9.

User Interface

As aplicações deverão ter sempre uma form de Sobre a aplicação e um menu de Ajuda para que o utilizador saiba onde pode encontrar suporte.

Cada utilizador deve utilizar estas Coding Conventions como entender e devem facilitar o seu trabalho, não complica-lo.

Com os melhores cumprimentos,

Sérgio Matias


ser.gifsartim.gif

Share this post


Link to post
Share on other sites
deathseeker25

Grande post. Acho que já estava na altura de fazer passar as regras para o pessoal trabalhar em conjunto.

Cumps

Share this post


Link to post
Share on other sites
AriOps

por acaso a maior parte dessas regras já usava e não sabia que faziam parte disso... dá jeito


Daniel Correia

Share this post


Link to post
Share on other sites
David Pintassilgo
por acaso a maior parte dessas regras já usava e não sabia que faziam parte disso... dá jeito

Yá!, há umas quantas que inconscientemente a malta usa, mas há outras coisas que são bastante interecantes que nao sabia que haviam, por exemplo isto:

Controlos Standart 
--------------------------------------------------------------------------------- 
Button                btn 
CheckBox            chk 
CheckedListBox            clst 
ColorDialog            cdlg 
ColumnHeader            chdr 
ComboBox            cbo 
ContextMenu            cmnu 
CrystalReportViewer         crv 
DataGrid            grd 
DateTimePicker            dtp 
DomainUoDown            dud 
ErrorProvider            erp 
FontDialog            fdlg 
Form               frm 
GroupBox            grp 
HelpProvider            hlp 
HScrollBar            hsb 
ImageList            img 
Label               lbl 
LinkLabel            lnk 
ListBox               lst 
ListView            lvw 
Menu               mnu 
MonthCalendar            cal 
NotifyIcon            nico 
NumericUpDown         nud 
OpenFileDialog            odlg 
PageSetupDialog         psd 
PictureBox            pic 
PrintDialog            pdlg 
PrintDocument            pdoc 
PrintPreviewControl         ppc 
PrintPreviewDialog         ppd 
ProgressBar            pbr 
RadioButton            rad 
RadioButtonList            rbl 
RichTextBox            rtf 
SaveFileDialog            sdlg 
Splitter               spl 
StatusBar            sbr 
StatusBarPanel            sbp 
TabControl            tab 
TabPage            pge 
TextBox            txt 
Timer               tmr 
ToolBar               tbr 
ToolBarButton            tbb 
TooTip               tip 
TrackBar            trk 
TreeNode            nod 
TreeView            tvw 
VScrollBar            vsb 

Data Objects 
----------------------------------------------------------------------- 
Connection             cnn 
Command            cmd 
CommanderBuilder         cb 
DataAdapter            da 
DataColumn            dcl 
DataReader            dr 
DataRow            drw 
DataSet               ds 
DataTable            dt 
DataView            dv


cool stuffs to check.

http://blog.zxcoders.com//

Share this post


Link to post
Share on other sites
vbmaster

Sim senhor, apesar de já conhecer algumas das coisas como a Hungarian Notation (que fui logo torcido desde "pequenino" para a utilizar, embora nunca a utilize:P) e o ExceptionHandling achei este (será tut?) bastante interessante.

Keep it up 8) 8) 8)

Share this post


Link to post
Share on other sites
programadorvb6

Bom post !!!!

Eu como não tive ninguém que me torce-se , aprendi nos livros que comprei !!!


______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.
 

Share this post


Link to post
Share on other sites
fLaSh_PT

Bom post!

É mesmo isso.. pode não parece ser.. mas tudo isso é uma questão de pratica que se tornará num habito!

Compr.


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
ruileal

sempre utilizei este tipo de convenção para não me perder com as variáveis, já utilizo desde o clipper a mais de 20 anos ;) (não eram estas eram minhas claro)

Share this post


Link to post
Share on other sites
Baia

também comecei a usar estas regras á pouco tempo.. e agora olho para os trabalhos mais antigos e não sei como fui capaz de me orientar...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.