Pular para conteúdo

Boas Práticas e Qualidade

Status: parcial — afirmações verificadas, com lacunas declaradas. [n · F] remete à fonte n da lista de fontes; a letra marca a procedência: F fato em fonte oficial TOTVS/TDN · S fonte secundária (blog, fórum) · unverified sem fonte que sustente.

Escopo desta seção

O que a própria TOTVS impõe como regra (e não como estilo), os cuidados de workarea, e as ferramentas de qualidade que este repositório carrega.

Regras impostas pela TOTVS

Estas não são preferências — são norma publicada:

  • Filial: igualar o campo filial da tabela ao xFilial daquela tabela; nunca comparar _FILIAL de uma tabela com o de outra.[28 · F]
  • Exclusão lógica: filtrar com D_E_L_E_T_ = ' ' — mais rápido que D_E_L_E_T_ <> '*'.[28 · F]
  • Prefira SQL à varredura ISAM/DbSkip sempre que possível: a query descarta eficientemente as linhas excluídas logicamente.[28 · F]
  • Encoding: todo fonte AdvPL/TLPP em CP-1252. Enquanto houver erro de codificação, o arquivo não é salvo.[24, 50 · F]
  • Workareas: salvar com GetArea() e restaurar com RestArea().[31 · F]
  • Lock: ao atualizar campos, travar o registro e liberar depois; esquecer MsUnLock() deixa o registro travado para os processos padrão.[31 · F]
  • Nomes: não reutilizar nomes de rotinas nem de funções do padrão em código customizado (MATA010, MATA460, FINA040, A460Dupl, A460Process).[31 · F]
  • Variáveis públicas padrão: não reaproveitar nOpc nem dDataBase para outra finalidade dentro de função específica.[31 · F]

Segurança

  • A exigência de autenticação em serviço REST é ligada com SECURITY=1 na seção [HTTPREST] do .ini; a partir da LIB 20201019, se a chave não for informada, os serviços sobem exigindo autenticação de usuário — ou seja, o caminho inseguro é fechar-se, não abrir-se.[58 · F]

Lacuna: prevenção de SQL injection, gestão de credenciais e controle de acesso não têm fonte coletada nesta passada. A skill sql-code-review e a referência SonarQube do repositório cobrem o tema, mas não são fonte TOTVS desta pesquisa.

Ferramentas de qualidade deste repositório

Estão em skills/ — são ferramenta interna do repositório, não norma TOTVS:

Skill Para
code-review Revisão em 8 categorias, com referência a regras SonarQube.
sql-code-review Segurança, índices e anti-patterns de SQL.
sql-optimization Tuning, paginação, operações em lote.
refactor / refactor-method-complexity-reduce Code smells e complexidade cognitiva.
tir-test-generator Testes E2E com TIR (TOTVS Interface Robot).
utf8-to-cp1252-conversion Conversão de encoding em lote, para o portão CP-1252.

Lacunas declaradas

Lacuna: as regras SonarQube (G1 segurança · G2 performance · G3 legado · G4 metadados · G5 compilação) existem como referência interna no repositório, mas não foram validadas contra fonte TOTVS nesta pesquisa.

Lacuna: acesso a metadados e obrigatoriedade de documentação ProtheusDOC sem fonte coletada.

Fontes

[24] · [28] · [31] · [50] · [58] — ver lista completa.