As condições IF devem ser simples de entender
2021-11-01
Porque haveria de ser difícil lê-las? Só tornaria mais difícil a vida de quem vier a precisar de a entender.
Lá porque uma condição IF é complexa não é por isso que tem de ser complicada.
O Clean ABAP tem algumas sugestões para conseguir isto:
Aqui está um exemplo de uma condição IF difícil de ler:
IF price > 1000 AND customer_debt > 10000 AND salesorder_status = '1'.
" code to block invoice
ENDIF.
Ok, concedo que não é assim tão difícil, mas serve-nos como exemplo.
Isto seria uma evolução:
IF should_be_blocked( ).
" code to block invoice
ENDIF.
METHOD should_be_blocked.
result = COND #(
WHEN is_expensive( price ) AND
customer( kunnr ).is_deadbeat( ) AND
NOT salesorder( vbeln ).is_delivered( ) THEN abap_true
ELSE abap_false ).
ENDMETHOD.
(...)
Sim, até pode ser um exagero. Mas levei a coisa longe demais de propósito só para exemplificar o que pode ser feito para tornar aquele IF inicial mais simples de ler e entender.
O Abapinho saúda-vos.