Boas Práticas e Qualidade¶
Status: parcial — afirmações verificadas, com lacunas declaradas.
[n · F]remete à fontenda 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
xFilialdaquela tabela; nunca comparar_FILIALde uma tabela com o de outra.[28 · F] - Exclusão lógica: filtrar com
D_E_L_E_T_ = ' '— mais rápido queD_E_L_E_T_ <> '*'.[28 · F] - Prefira SQL à varredura ISAM/
DbSkipsempre 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 comRestArea().[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
nOpcnemdDataBasepara 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=1na 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-reviewe 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.