Skip to main content

Pautas (Maio)

Padrão de Código (Delphi) e Refatorações

Quebra de linha em operação aritmética
// Opção A
begin
  Objeto.Atributo := 
    LQuery.FieldByName('Campo').AsFloat + 
      LVariavelDouble +
      LOutraVariavelDouble;
end;

// Opção B
begin
  Objeto.Atributo := 
    LQuery.FieldByName('Campo').AsFloat + 
    LVariavelDouble +
    LOutraVariavelDouble;
end;

// Opção C
begin
  Objeto.Atributo := 
    LQuery.FieldByName('Campo').AsFloat + 
      LVariavelDouble +
        LOutraVariavelDouble;
end;

Definir padrão para:

Operações com apenas um tipo de operador

Operações com vários tipos de operadores

Utilização de constantes
// Declaração "padrão"

// Opção A
// Unit separada por tópico (Entidade.Constantes.pas)

// Opção B
// Mesma unit, escopo global

// Opção C
// Declaração inicial no mínimo escopo viável, "evoluindo" conforme sua expansão

//**********************************************//

// Método de refatoração

// Opção A
// Pontual (Apenas onde será alterado)

// Opção B
// Por método (Em todas as ocorrências no método alterado)

// Opção C
// Por unit (Em todas as ocorrências na unit alterada)

Padrão SQL

Indentação INSERT INTO
// Opção A
INSERT INTO Tabela
            (CampoA, CampoB, CampoC, CampoD,
             CampoE, CampoF)
     VALUES (:PA, :PB, :PC, :PD, :PE, :PF)
     
// Opção B
INSERT
  INTO Tabela
       (CampoA, CampoB, CampoC, CampoD,
        CampoE, CampoF)
VALUES (:PA, :PB, :PC, :PD, :PE, :PF)
Indentação DISTINCT
/* Encontrar "média" comum */
/* 
Tabela: Carros
Campos: (PK)Placa, Modelo, Ano
Condição de busca: Um modelo por ano no intervalo de 2000-2021
*/
Formalização de indentação com múltiplos operadores lógicos
SELECT *
  FROM Tabela
 WHERE CampoA = :ParametroA
   AND (   CampoB = :ParametroB
        OR CampoC = :ParametroC)