Mudanças entre as edições de "Boas práticas de programação Delphi"
(Criou página com '==== Conversões ==== Sempre fazer conversões seguras. StrToInt(uma string) garantir que a string contenha um número válido, ou tratar a exceção. De preferência utilizar ...') |
|||
Linha 14: | Linha 14: | ||
Se utilizar, quando for converter o conteúdo sempre tratar possíveis erros de conversão. | Se utilizar, quando for converter o conteúdo sempre tratar possíveis erros de conversão. | ||
Usar IfNull, se for conversão para inteiro, data, float, garantir que o dado é válido ou tratar exceção. | Usar IfNull, se for conversão para inteiro, data, float, garantir que o dado é válido ou tratar exceção. | ||
+ | |||
+ | ==== Criação de objetos ==== | ||
+ | Sempre que criar um objeto garantir a destruição dele com try ... finally. | ||
+ | |||
+ | ==== Transações ==== | ||
+ | Sempre que abrir uma transação garantir que ela será comitada ou dado rollback com try ... except. | ||
+ | |||
+ | ==== Tratamento de exceções ==== | ||
+ | Tratar todas as exceções possíveis com try ... finally | ||
+ | Se a exceção não foi tratada, ao capturá-la | ||
+ | |||
+ | ==== Carga de configurações da ConfigSis ==== | ||
+ | Sempre carregar parâmetros do sistema na carga da tela e não ficar carregando sob demanda depois. | ||
+ | Evitar principalmente esta carga dentro de loops o que além de correr o risco da configuração mudar no meio do caminho (gerando um bug) estará degradando o desempenho. | ||
+ | |||
+ | ==== cálculos com divisão ==== | ||
+ | Sempre que tiver um cálculo de divisão no código tem que ter um if o divisor for zero não faça a conta. |
Edição das 10h21min de 28 de fevereiro de 2012
Índice
Conversões
Sempre fazer conversões seguras.
StrToInt(uma string)
garantir que a string contenha um número válido, ou tratar a exceção.
De preferência utilizar funções que já fazem este tratamento:
- Fun_Convert.SafeStrToInt
- Fun_Convert.SafeStrToDateTime
- Fun_Convert.SafeStrFloatAcert
- Fun_Convert.SafeStrToFloat
Variants
Evitar ao máximo o uso de variants. Se utilizar, quando for converter o conteúdo sempre tratar possíveis erros de conversão. Usar IfNull, se for conversão para inteiro, data, float, garantir que o dado é válido ou tratar exceção.
Criação de objetos
Sempre que criar um objeto garantir a destruição dele com try ... finally.
Transações
Sempre que abrir uma transação garantir que ela será comitada ou dado rollback com try ... except.
Tratamento de exceções
Tratar todas as exceções possíveis com try ... finally Se a exceção não foi tratada, ao capturá-la
Carga de configurações da ConfigSis
Sempre carregar parâmetros do sistema na carga da tela e não ficar carregando sob demanda depois. Evitar principalmente esta carga dentro de loops o que além de correr o risco da configuração mudar no meio do caminho (gerando um bug) estará degradando o desempenho.
cálculos com divisão
Sempre que tiver um cálculo de divisão no código tem que ter um if o divisor for zero não faça a conta.