- A extensão deve ser minúscula (exemplo:
.prw
,.apw
)
- Tabs somente para indentação, não para separação
- Sempre use notação húngara em nomes de variáveis
- Evite nomes de variáveis como
nX
ounY
(exceto para índices). Seja mais descritivo - Palavras-chave da linguagem devem usar UpperCamelCase (exemplos:
If
,EndIf
,While
) - Ao terminar uma instrução
Do While
, prefiraEndDo
ao invés de somenteEnd
- Ao terminar uma instrução
For
, prefiraNext <variable>
ao invés de somenteNext
- Nomes de variáveis locais devem ser em lowerCamelCase (exemplos:
cName
,nAge
) - Nomes de funções em notação húngara devem usar lowerCamelCase (exemplo:
aAdd
) - Use as variáveis com nomes iguais em tamanho e caixa (não faça
thisIsMyVariable
eTHISISMYVARI
) - Nomes de funções sem notação húngara devem usar UpperCamelCase (exemplo:
RetSqlName
) - Deve haver 1 espaço entre os argumentos de função, blocos e arrays (exemplo:
RetSqlName( 'STJ' )
) - Deve haver 1 espaço após cada vírgula (exemplo:
{ 1, 2, 3 }
) - Deve haver espaço entre parâmetros de funções (use
Call( 1, 2, 3 )
e nãoCall(1,2,3)
) - Evite ultrapassar 80 colunas horizontalmente. Quebre o código quando necessário
- Valores lógicos devem usar caixa alta (exemplo:
.F.
) - Espaço entre operadores. Use
nValue > nExpected
ao invés denValue>nExpected
Return
indentado, já que faz parte da estrutura da função e não é um terminador- Em comentários, 1 espaço após
//
- Idioma padronizado. Evite misturar português e inglês quando possível
- Deixar 1 linha em branco para cada statement, exceto conjuntos de statements
- Deixar 1 linha vazia no final de cada arquivo
- Prefira aspas simples
'
ao invés de duplas"
- Para acesso de índices múltiplos, evite
aList[ nI ][ nJ ]
. UseaList[ nI, nJ ]
- Funções não devem receber mais que 6 parâmetros
- Evite aninhamentos com mais de 3 statements (exemplo:
If
dentro deIf
dentro deIf
) - Use
!=
ao invés de<>
- Não faça
== .T.
- Use
!
ao invés de.Not.
- Substitua
If
dentro deIf
por.And.
- Lembre-se de, ao criar uma tabela temporária, fechá-la com
dbCloseArea
- Lembre-se de fechar o handler para o arquivo com
fClose
ao usarfOpen
- Quando deslocar para outro registro utilizando
dbSkip
, garanta estar posicionado na tabela desejada, caso contrário utilizeTABLE->( dbSkip() )
ou então utilizedbSelectArea( TABLE )
antes dodbSkip()