boasPraticas

JavaScript

Depois de alguns diversos casos de falta de padronização e com o apoio do amigo Marcelo Aguirre ( sim o irmão do Dedé que ta sempre por aqui)…

Retirei esta tabela do MSDN, e acho(e uso!) interessante essas regras pois ajudam a manter o código mais organizado !!!

Tá certo que nem todos os componentes são iguais e algums nem existam no java, mas muitos caem como uma luva, como o lbl(Label), btn(Button), txt(TextBox), frm(Form{na verdade é frame ne =P}) e etc …

Ta aí a tabelinha bonitinha das regras que ajudam a manter um código limpo.

Componente Prefixo Exemplo
Form frm frmPrincipal
Label lbl lblValor
LinkLabel lnk lnkEmail
Button btn btnSair
TextBox txt txtSalario
Menu mnu mnuFileOpen
CheckBox chk chkConfirma
RadioButton rad radCasado
GroupBox grp grpEstCivil
PictureBox pic picAvatar
Panel pnl pnlEstCivil
DataGrid grd grdQueryResult
ListBox lst lstPolicyCodes
CheckedListBox clb clbOptions
ComboBox cbo cboEnglish
ListView lvw lvwHeadings
TreeView tre treOrganization
TabControl tbc tbcOptions
DateTimePicker dtp dtpPublished
MonthCalendar mcl mclPeriod
HScrollBar hsb hsbMove
VScrollBar vsb vsbMove
Timer tmr tmrAlarm
Splitter spt sptDivision
DomainUpDown upd updPages
NumericUpDown nud nudPieces
TrackBar trb trbIndex
ProgressBar prg prgLoadFile
RichTextBox rtf rtfReport
ImageList ils ilsAllIcons
HelpProvider hlp hlpOptions
ToolTip tip tipIcons
ContextMenu cmn cmnOpen
ToolBar tlb tlbActions
StatusBar sta staDateTime
NotifyIcon nti ntiOpen
OpenFileDialog ofd ofdImage
SaveFileDialog sfd sfdImage
FontDialog ftd ftdText
ColorDialog cld cldText
PrintDialog ptd ptdText
PrintPreviewDialog ppd ppdText
PrintPreviewControl ppc ppcText
ErrorProvider err errOpen
PrintDocument prn prnText
PageSetup Dialog psd psdReport
CrystalReportViewer rpt rptSales

Data

Componente Prefixo Exemplo
DataSet dts dtsProducts
OleDbDataAdapter oda odaClients
OleDbConnection ocn ocnClients
OleDbCommand ocm ocmConsult
SqlDataAdapter sda sdaClients
SqlConnection scn scnClients
SqlCommand scm scmConsult
DataView dtv dtvConsult

Como tirei essas regras da msdn(Microsoft Developers Networks) elas se aplicam mais em C# e VB.NET. Mas são sim adaptáveis ao Java.

Outro importante tópico a ser debatido neste post.
Segue abaixo algumas maneiras e metodologias que ao meu ponto de vista são ótimas não só quando em equipe, mas a facilidade de manutenção e qualidade do código.

Primeiro, vou falar sobre o padrão de nomenclatura que são os seguintes:

Pascal case
A primeira letra de cada palavra é maiuscula e as restantes minusculas: BackColor

Camel case
Primeira palavra minuscula e as próximas são em Pascal case: backColor

Uppercase
Maiuscula são as letras de palavras que foram abrevidas: System.IO, System.Web.UI, IDisposable

Lembrando que o .Net é Case Sensitivity, ou seja, sabe diferenciar maiúsculo de menusculo: calcula(); Calcula();

Naming Guidelines

Abreviações
Não utilizer abreviações como: OpenWin() ao invés de usar OpenWindow(), são apenas poucas letras e isso faz muita diferença quando outro desenvolvedor ou até você mesmo for ler o código para alterações ou correção de bugs.

Namespace
Deve ser sempre em Pascal case, pois também dará final a uma DLL (DiarioFonte.Blog.Core.dll).
NomeEmpresa.NomeTecnologia[.Feature][.Design]
DiarioFonte.Blog.Core
DiarioFonte.Blog.Core.Posts
DiarioFonte.Blog.Data

Classe
Também deve ser sempre em Pascal case, pois ao referenciar uma variável como está classe, fará toda a diferença.
public Class accessControl{}
accessControl acesso = new accessControl();
Agora vejamos:
public Class AccessControl{}
AccessControl acesso = new AccessControl();

Com certeza a segunda forma é muito mais legivel, e imagine instanciarmos: sqlConnection, textBox… não tem cara de classe, concordam?

Interface
Sempre use o “I” para iniciar a Interface, assim em seu código fica muito fácil tanto implementá-la quanto utilizar em seu código. (No caso, o I Seria UpperCase, porém é apenas uma letra, e o restante utiliza o padrão de nomenclatura da Classe)
public interface IControlManager{}
public Class AccessControlManager : IControlManager {}

Enum
Pascal case. Compare: AccessControl.tipoAcesso.administrdor, AccessControl.TipoAcesso.Administrador. Com certeza o segundo é muito mais profissional!

Parametros
Use sempre Camel Case.
public DataTable EnviaEmail(string de, string para, bool preAutenticar){}

Métodos
Métodos devem ser escritos em Pascal Case. accessControl.EnviaEmail(”igor@xxxx.xxx”, _sendTo, false);

Propriedades
Pascal Case, pois assim, usariamos a propriedade exatamente assim: accessControl.Usuario

Campos
Campos para utilização apenas interna da classe devem ser escritos como Camel Case, e se for um campo que será utilizado por uma Propriedade, deve-se iniciar com um _ (Underline), como no exemplo seguinte:

private string _usuario;
public string Usuario
{
GET{return _usuario;}
SET{_usuario = value;}
}

Galera, Espero que gostem deste artigo!
Para a próxima, vou tentar escrever algo sobre Boas Maneiras como Comentários…
Ou quem sabe algo sobre Métodos Ágeis, tipo, um pouco sobre as tecnologias como TDD, Continuous Integration…
Ou ainda algo como tecnologias para facilitar o trabalho em equipe..

Aguardem anciosos, pois há muito a aprender!

Deixe um comentário