私は AOP 分野の初心者です。初めて AOP の概念を適用して何かをコーディングしたとき、アスペクトがアプリケーションのクロス カット パターンをどのように排除するかを理解できて感激しました。セキュリティ、ロギング、トランザクション、監査などの分野横断的なパターンを AOP を適用して解決するという考えに圧倒されました。
しかし、私が仕事をしているクライアントに AOP の使用を最初に提案したとき、彼らはそれをサポートしていないと言われました。AOP はより多くのメンテナンスを意味すると言われました。コードが変更された場合、ポイントカットを変更する必要があります。したがって、アスペクトが適用されたコードを変更するたびに、アスペクトを分析、変更、およびテストする必要があるでしょうか?
これについて何を言わなければなりませんか?主流の企業が AOP の広範な使用にまだオープンではないのはなぜですか? AOP の世界はどこへ向かうのか?
6 に答える
AOPは、実際にはそれほどうまく機能しない興味深いアイデアの1つです。Javaは10年以上AOPを利用できましたが、修正するよりも多くの問題が発生するようであるため、あまり使用されていません。
AOP はより多くのメンテナンスを意味すると言われました。
それはばかげているだけで、まったく間違っています。AOP は、コードからノイズを取り除き、ビジネス価値の提供に集中できるようにするための不可欠なツールです。ビジネス ルールが変更された場合、新しい変更をコードに反映するために何マイルものフレームワーク ロジックをくまなく調べる必要はありません。
ただし、他のツールと同様に、正しく使用する必要があります。AOP ロギングが復号化されたクレジット カードを誤ってログに記録するという事実を回避する必要がありました。
http://www.agileatwork.com/what-happens-when-you-actually-use-aop-for-logging/
Java アノテーションと、Guice や Spring などのフレームワークでのその使用が AOP に触発されたことを人々は忘れています。Java アノテーションは、今日の AOP の目指すところだと思います。
AspectJ AOP 実装を使用しており、非常に満足しています。「通常の」Javaよりもいくつかの概念を簡単に表現できるようにする、ツールキットの別の部分と見なす必要があります。現在、主にサービスに JMX インターフェイスを提供するために使用しています。
より多くの IDE がそれをサポートするべきであることは事実です (私はあなたの JetBrains を見ています!)、それは確かに採用に役立つでしょう。