As condições IF devem ser simples de entender

images/thumbnail.jpg - Thumbnail

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.