20240517

Clean Code - Nomenclatura

Nomes descritivos
Sempre o mais explicativo possível.
Não tente corrigir nomes ruins com comentários!

Exemplos.: 
Constants max_wait_time_in_seeonds type i.
Data customzing_entries type standard table ... .
Methods read_user_preferences ...
Class /cleac/user_preference_reader ...

Evitar:
Constants sysubrc_04 type sysubrc.
Data iso3166tab type standard table ... .
Methods read_t005 ...
Class /dirty/t005_reader ...

Nomes que solucionam problemas
Todos os desenvolvedores devem entender os nomes dos objetos.

Plural
Para tabelas (listas) sempre utilizar nomes no plural (vários registros).
Para work-areas utilizar nomes no singular (único registro).

Nomes pronunciáveis
Utilizar sempre nomes pronunciáveis. Evitar "códigos" inexplicáveis...

Correto: detection_object_types
Evitar:    dobjt

Correto: material
Evitar:    matnr

Evitar Abreviações
Escreva o máximo possível.
Se um campo tem limite de 30 posições, para que manter um padrão abreviado com 10 ou 15 posições???
Se for necessário abreviar, abrevie as palavras menos importantes.

Nomes para Classes e Verbos para Métodos
Exemplos:
CLASS ./clean/account
CLASS /clean/user_preferences
INTERFACE /clean/customizing_reader 

METHODS wothdraw
METHODS add_message
METHODS read_entries

if is_empty( table ).

Nomear Funções como Métodos
FUNCTION /clean/read_alerts

Evitar palavras tipadas

Preferir

Evitar

account

account_data

alert

alert_object

user_preferences

user_info

response_time_in_seconds   

response_time_variable


Palavras por conceito
Exemplos
METHODS read_this
METHODS read_that
METHODS read_those

Evitar
METHODS read_this
METHODS retrieve_that
METHODS query_those

Prefixos
Evitar prefixos...

Exemplo:
METHOD add_two_numbers.
     result = a + b.
ENDMETHOD.

Evitar:
METHOD add_two_numbers.
     rv_result = iv_a + iv_b.
ENDMETHOD.