Livrei-me finalmente dos prefixos

images/thumbnail.jpg - Thumbnail

Demorei muitos anos mas finalmente livrei-me do raio dos prefixos.

Durante 20 anos escrevia as variáveis assim:

GT_T001 = tabela interna, global da T001
LS_T001 = estrutura local da T001
IV_BUKRS = parâmetro de entrada, empresa
RV_MATNR = parâmetro de retorno com código de material
GO_CONSTS = referência para instância de classe de constantes

Depois deixei de usar o L de local e o V de value. Os que não têm L são implicitamente locais e os que não têm V são implicitamente valores:

GT_T001
S_T001
I_BUKRS
R_MATNR
GO_CONSTS

Há alguns anos atrás decidi experimentar seguir o conselho do Clean ABAP e abandonar os prefixos todos. Isto só foi possível porque as minhas classes e métodos são tão pequenos e as variáveis têm nomes tão intuitivos que não preciso dos prefixos para entender o que fazem:

T001_LIST
T001
COMPANY
R_MATERIAL
CONSTANTS

Finalmente há coisa de um ano decidi seguir o conselho do Clean ABAP para chamar sempre RESULT ao parâmetro de retorno de um método. Passou a ser muito mais claro qual a variável a preencher com o resultado. E como o nome do método descreve o que faz fica sempre claro o que é que cada RESULT representa:

T001_LIST
T001
COMPANY
RESULT
CONSTANTS

Portanto, como naqueles anúncios de produtos para emagrecer, aqui fica o antes e o depois:

GT_T001 => T001_LIST
LS_T001 => T001
IV_BUKRS => COMPANY
RV_MATNR => RESULT
GO_CONSTS => CONSTANTS

E tu, ainda usas prefixos? Se sim, reflecte sobre isto: quando programas em Python ou em C++ não usas prefixos. Porquê? Porque o ABAP é provavelmente a única linguagem de programação em que se considera normal e desejável usar tantos prefixos. Mas não tem de ser assim.

Obrigado Frank Kehren pela foto.

O Abapinho saúda-vos.