Guia Prático de Nomenclatura para Visual Basic .NET
Com foco no Visual Studio
- Princípios Gerais e Diretrizes de Nomenclatura
- Configurar o Visual Studio
- Dicas de Ouro
- Recomendações Além do
.editorconfig - Mais Conteúdos Relacionados
1. Princípios Gerais e Diretrizes de Nomenclatura
No Visual Basic .NET (VB.NET), o padrão seguido pela Microsoft e pela comunidade é baseado nas Guidelines de Design da Framework .NET.
Diferente de linguagens como Python ou C#, o VB.NET é case-insensitive (não diferencia maiúsculas de minúsculas), mas manter a consistência é vital para a legibilidade.
1.1 Nomenclatura Geral (PascalCase)
O padrão predominante no VB.NET é o PascalCase (todas as palavras começam com maiúscula, sem espaços ou underscores).
| Elemento | Padrão | Exemplo |
|---|---|---|
| Classes | PascalCase | Public Class GerenciadorUsuario |
| Módulos | PascalCase | Public Module FuncoesMatematicas |
| Métodos / Funções | PascalCase | Public Sub CalcularTotal() |
| Propriedades | PascalCase | Public Property NomeCliente As String |
| Namespaces | PascalCase | Namespace Empresa.SistemaVendas |
| Arquivo de Módulo | PascalCase | LoggerSistema.vb |
| Constante Pública | PascalCase | TaxaJurosPadrao |
| Interface | I + PascalCase | IRepositorio |
| Membros de Enum | PascalCase | Ativo, Inativo |
1.2 Variáveis e Parâmetros (camelCase)
Para distinguir o que é "interno" ou temporário do que é a estrutura da classe, usamos o camelCase (primeira letra minúscula).
- Variáveis Locais: Usadas dentro de métodos.
- Exemplo:
Dim valorTotal As Decimal = 0
- Exemplo:
- Parâmetros de Métodos:
- Exemplo:
Public Sub Atualizar(ByVal idProduto As Integer)
- Exemplo:
1.3 Campos Privados e Underscores (_)
Campo privados são frequentemente nomeados com _camelCase como convenção configurável, mas isso não é regra obrigatória imposta pela linguagem ou pelas diretrizes oficiais.
Usa-se o underscore seguido de camelCase:
- Campos Privados:
- Exemplo:
Private _dataNascimento As DateTime
- Exemplo:
Por que usar o underscore? Isso evita conflitos de nomes com as Propriedades e facilita a identificação de variáveis que pertencem ao escopo da classe (membros de instância) em qualquer lugar do código.
1.4 O que Evitar (regras de ouro)
- Espaços: Nunca são permitidos em nomes de identificadores.
- Underscores no meio do nome: Evite
Calcular_Total_Vendas. UseCalcularTotalVendas. - Notação Húngara: Evite prefixos baseados no tipo (ex:
strNome,intIdade). O VS Code e o Visual Studio já mostram o tipo ao passar o mouse; prefira nomes semânticos comoNomeUsuarioeIdadeUsuario.
1.5 Nomes de Arquivos
Siga a regra do "um para um": o nome do arquivo deve ser idêntico ao nome da classe, módulo ou interface que ele contém.
- Padrão: PascalCase.
- Exemplo: Um módulo chamado
UtilidadesSistemadeve estar em um arquivoUtilidadesSistema.vb. - Dica: Se o arquivo for uma classe parcial (ex: Windows Forms), o Visual Studio usará extensões como
Form1.Designer.vb, mas o nome principal mantém o PascalCase.
1.6 Constantes (Const)
Existem duas abordagens comuns, mas a oficial da Microsoft para o .NET moderno diverge do antigo VB6:
- PascalCase (Recomendado): A Microsoft recomenda usar PascalCase para constantes públicas para que elas se pareçam com propriedades ou campos de leitura.
- Exemplo:
Public Const ValorMaximoTentativas As Integer = 5
- Exemplo:
- SCREAMING_SNAKE_CASE (Legado/Alternativo): Embora comum em outras linguagens, o uso de
MAIUSCULAS_COM_UNDERSCOREé considerado um estilo antigo e menos comum no desenvolvimento .NET moderno.
Aqui vamos utilizar o SCREAMING_SNAKE_CASE ao invés do PascalCase; para manter o código mais amigável para programdores que vem do antigo VB6, bem como para programadores que costumam utilizar várias outras linguagens.
(perceba que aqui estamos deliberadamente contrariando as Guidelines de Design da Framework .NET)
1.7 Enumerações (Enum)
As Diretrizes de Design da Microsoft são bem específicas aqui:
- Tipo Enum: PascalCase, nome no singular.
- Exemplo:
Public Enum StatusPedido(e nãoStatusPedidos).
- Exemplo:
- Membros do Enum: PascalCase.
- Exemplo:
Processando,Enviado,Entregue.
- Exemplo:
- Exceção (Flags): Se o Enum permitir múltiplas seleções (bit fields), use o plural.
- Exemplo:
Public Enum CoresPermitidas.
- Exemplo:
1.8 Interfaces
Sempre começam com a letra "I" seguida de PascalCase.
- Exemplo:
IControleAcesso,IDisposable.
1.9 Outros Elementos Importantes
- Eventos: PascalCase. Use verbos no passado ou presente para indicar o tempo (ex:
Closing,Closed). - Abreviaturas: Evite-as sempre que possível.
- Para abreviaturas de 2 letras, ambas costumam ficar maiúsculas em PascalCase (ex:
System.IO,DBConnection). - Para abreviaturas de 3 letras ou mais, use PascalCase normal (ex:
HtmlParser,XmlReader,UrlEncoder). - Observação sobre
Id: EmboraIDseja tecnicamente uma abreviatura de duas letras, é prática comum no ecossistema .NET (especialmente em código de domínio) escreverIdem PascalCase ouidem camelCase quando o termo representa Identifier ou Identity (ex:ClienteId,GetId).
Essa convenção não é uma regra estrita imposta pelas diretrizes da Microsoft, mas é amplamente adotada por legibilidade e consistência semântica.
- Para abreviaturas de 2 letras, ambas costumam ficar maiúsculas em PascalCase (ex:
1.10 Resumo Exemplificado
Public Class ProcessadorPedido ' PascalCase para Classes
' Underscore + camelCase para campos privados
Private _quantidadeItens As Integer
' PascalCase para Propriedades
Public Property StatusPedido As String
' PascalCase para Métodos; camelCase para parâmetros
Public Function ExecutarProcesso(ByVal codigoBarras As String) As Boolean
' camelCase para variáveis locais
Dim resultadoOperacao As Boolean = False
' ... lógica ...
Return resultadoOperacao
End Function
End Class