1) 組織内の人々が実際に OO ABAP でコーディングを開始したのはいつですか?
私の組織のほとんどの開発者は、ABAP OO を導入する前に従来の ABAP を習得しています。彼らのほとんどは、適切な OOP および OOD の原則を学ぶことを控えている上級開発者です。彼らはまだほとんど手続き型のABAP機能を使用しています。さらに、私たちはレガシー環境で働いています。私たちのバックエンドの基本は、4.6C の時代に構築されました。適切な OO 設計をレガシー システムに導入するのは困難です。
一方、プロシージャル機能は引き続き機能します。トランザクション データベースの更新などの一部の機能は、主に ABAP の手続き部分から使用されます。データベース トランザクション専用の Update Function Modules または Subroutines (呼び出し可能なもの) をご存知かもしれません IN UPDATE TASK
。これらは、ABAP 基本コンポーネントの不可欠な部分です。手続き型の ABAP 部分がまだ必要であることは否定できません。
2) オブジェクト指向の方法でコーディングしたいと思う重大な理由はありますか? たとえば、Call Method は PERFORM ステートメントよりも高速ですか?
CALL METHOD と PERFOM の実行時間をどのように比較しましたか? プログラム RSHOWTIM を試しましたか? または、ABAP ワークベンチからいくつかのパフォーマンス テストを行いましたか? 単一のサブルーチン呼び出しは、メソッド呼び出しと大きく異なりません。ただし、大量のテストメソッド呼び出しで呼び出された場合、パフォーマンスがわずかに向上します (マイクロ秒単位で)。
全体として、以前に投稿したユーザーと同じ議論で、OOD と OOP をお勧めします。ただし、古い ABAP の世界に精通している上級開発者は、ABAP OO を書き始める前に OO の原則を理解する必要があることを覚えておく必要があります。そうでなければ、逆に、組織は ABAP OO によって利益を得ることはできません。オブジェクト指向の知識がない経験豊富な ABAP 開発者が、クラスを作成するように強いられています。彼らが実際に行っているのは、手続きの原則をクラスで模倣することです (たとえば、関数モジュール/サブルーチンの代わりとして、静的メソッドのみを持つクラスなど)。
ABAP OO に挑戦する組織の幸運を祈ります! 言語の問題ではなく、オブジェクト指向の原則をスタッフの心に植え付けることが重要です。