Mudanças entre as edições de "Boas práticas de programação Delphi"

De UniWiki
Ir para: navegação, pesquisa
(cálculos com divisão)
(Tratamento de exceções)
Linha 22: Linha 22:
  
 
==== Tratamento de exceções ====
 
==== Tratamento de exceções ====
Tratar todas as exceções possíveis com try ... finally
+
Tratar todas as exceções possíveis com try ... finally.
Se a exceção não foi tratada, ao capturá-la  
+
Se a exceção não foi totalmente tratada, ao capturá-la fazer o tratamento parcial e dar raise; (jogar a exceção adiante)
  
 
==== Carga de configurações da ConfigSis ====
 
==== Carga de configurações da ConfigSis ====

Edição das 18h58min de 28 de fevereiro de 2012

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 totalmente tratada, ao capturá-la fazer o tratamento parcial e dar raise; (jogar a exceção adiante)

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.

Reanálise

Sempre que alguma situação não foi prevista na análise, analisar o que precisa em conjunto. Não tentar decidir sozinho.

Campo novo no banco

  1. Sempre que possível criar uma foreign key para garantir a integridade do banco.
  2. Sempre documentar o campo no banco
  3. Sempre considerar a necessidade de popular com algum valor este campo nos registros já existentes.

Componentes sem função

Uma tela que tem um componente que não é utilizado, tornar o componente invisível ao invés de deixá-lo desabilitado e aparecendo. Ex: Botões de alterar em telas de seleção, quando é uma tela que não tem alteração.