Cuidar para deixar o código com uma boa estética facilita a leitura e interpretação do mesmo. Dessa forma economiza o tempo gasto em manuteção do código.
Para isso há três dicas básicas:
- Manter um leiaute consistente, com padrões que o leitor consiga entender facilmente;
- deixar código similares com aparência similar;
- agrupar linhas relacionadas em blocos de código.
Para simplificar a leitura alinhe as colunas de chamadas à funções ou de arrays sempre que isso facilitar a futura leitura do código.
Exemplo:
AAdd(aPosicoes,{"ACE_GRADE" ,GdFieldPos("ACE_GRADE" )})
AAdd(aPosicoes,{"ACE_TEMA" ,GdFieldPos("ACE_TEMA" )})
AAdd(aPosicoes,{"ACE_HRINI" ,GdFieldPos("ACE_HRINI" )})
AAdd(aPosicoes,{"ACE_HRFIM" ,GdFieldPos("ACE_HRFIM" )})
AAdd(aPosicoes,{"ACE_DATA" ,GdFieldPos("ACE_DATA" )})
AAdd(aPosicoes,{"ACE_SALA" ,GdFieldPos("ACE_SALA" )})
AAdd(aPosicoes,{"ACE_PALEST" ,GdFieldPos("ACE_PALEST")})
AAdd(aPosicoes,{"ACE_EMP" ,GdFieldPos("ACE_EMP " )})
AAdd(aPosicoes,{"ACE_OCUPAC" ,GdFieldPos("ACE_OCUPAC")})
Organize o fluxo do código (e das declarações de variáveis) em blocos de acordo com o contexto.
Exemplo:
Local aArea := GetArea() // Posicionamento atual
Local aAreaSU0 := SU0->(GetArea()) // Posicionamento da tabela SU0
Local aAreaTMP := {} // Posicionamento da tabela SU0
Local aGrupos := {} // Grupos selecionados
Local aFiliais := {} // Filiais com grupos compartilhados
Local cPesq := Space(TamSX3("U0_NOME")[1]) // Pesquisa do grupo de atendimento
Local cFilter := SU0->(DbFilter()) // Filtro da SU0
Local cFilSU0 := XFilial("SU0") // Filial da tabela SU0
Local cGrpAtu := "" // Codigo do grupo atual
Local lGrava := .F. // Indica se prossegue com a gravacao
Local lGrpComp := SU0->(FieldPos("U0_FILORI")) > 0 // Compartilhamento de grupos
Local lSU0Exc := SX2MODO("SU0") == "E" // Indica se o SU0 esta exclusivo
Local oLBox := Nil // Objeto da listbox
Local oPesq := Nil // Objeto da caixa de pesquisa
Local oOk := LoadBitmap( GetResources(), "LBOK") // Desenho do Checked
Local oNo := LoadBitmap( GetResources(), "LBNO") // Desenho do NotChecked
Local oDlg // Objeto da tela
Local nX := 0 // Auxiliar de loop
Local nFil := 0 // Auxiliar de loop
Private cChave := "" // Chave unica