ABAP/MOVE-CORRESPONDING のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- ABAP/MOVE-CORRESPONDING へ行く。
- 0 (1970-01-01 (木) 18:00:00)
- 1 (2014-06-26 (木) 11:02:39)
- 2 (2015-11-16 (月) 12:46:32)
ある構造からある構造へ、同一名称の項目を探し値を代入(MOVE)するABAP命令。
概要 †
オールドタイプのABAPerが大好きな命令だが、SAPが推奨しない命令となった。 理由は、「代入すべき、同一名称を持つ項目を探す」というアクションがパフォーマンスを低下させることとfrom/toともに対象が明示的でないことが挙げられる。
「じゃあ、この命令を使えば一行で済むのに、代入の命令を項目の数だけ書き出すのが正しいのか?」という問いがある。 これは一見正しいかのように感じられ、一般的にはソースが長くなればなるほどバグが多くなるため使うのが正しいと思っている人間もいるが、否である。
なぜなら・・・
- 構造Aと構造Bに同一項目名称を、そんなにたくさん用意するか? Yesの場合、プログラム設計は適切か?多くの場合はNoかと思う。
- 構造Aと構造Bに同一項目名称を複数用意するくらいなら、共通化しないか? 部分的にでも同一の型*1にし、構造A = 構造Bと記述した方が明示的かつ保守性に長ける。
また、前者も重要ではあるが、後者の「明示的でないこと」について、保守性や可読性が低下することがより重要かと考える。
用法 †
上記の通りのため、使用しなくてよい。
サンプル †
上記の通りのため、使用しなくてよい。
その他 †
CORRESPONDING系の命令は、好きではありません。
コメントはありません。 Comments/ABAP/MOVE-CORRESPONDING