タグ

aspectjに関するkimukou_26のブックマーク (3)

  • AndroidでのAspectJプラグインの切り替え

    この記事では、特にAndroidアプリケーションのコンテキストで、アスペクト指向プログラミング(AOP)について説明します。このパラダイムに精通していない場合は、このテーマに関する以前の記事「Androidでのアスペクト指向プログラミング」を読むことをお勧めします。 AOParadiseのトラブル 最近、アスペクト指向プログラミングのAndroidサンプルプロジェクトを更新するときに、Android Gradleプラグイン(AGP)のリリースバージョンごとに問題が発生しました。多くの場合、AGPの更新では、以前に選択したアスペクトプラグインであるandroid-gradle-aspectjが壊れ、プラグイン自体が新しいAGPバージョンをサポートするまでAGPを更新できませんでした。 これはさまざまな理由で理想的ではなく、最近のいくつかの修正で古い問題が再導入されたため、さらに悪化しました。

    AndroidでのAspectJプラグインの切り替え
    kimukou_26
    kimukou_26 2021/03/18
    gradle-aspectj-pipeline-plugin これが一番最新のAOP実装っぽい
  • Aspect Oriented Programming("AOP") in Android - _development,

    Aspect Oritented Programming("AOP")とは? AOP(Aspect Oritented Programming, アスペクト指向プログラミング)は、OOP(Object Oriented Programming, オブジェクト指向プログラミング)で表現されたクラスを横断("cross-cutting")する特性を表現するために考案されました。 たとえば、ロギングのようなメソッド呼び出しのトラッキングはプログラム全体で共通した特性ですが、クラスとして表現された特性とは、軸の異なる特性です。 OOPのみに頼る場合、Templateパターン、Proxyパターンなどのデザインパターンを使って体系だったロギングを行ったりします。また、処理の要所でロギングコードを直接記述したりもします。 これらは、来的にはクラスに実装されるべき処理とは無関係であることは明白でしょう。

    Aspect Oriented Programming("AOP") in Android - _development,
  • AJDTを使って規約違反のコードを検出する方法 - 達人プログラマーを目指して

    AspectJというと、メソッドなどに処理を織り込むAOPのイメージが強いと思いますが、AJDTというeclipseのプラグインを使うと強力なコード検証ツールとして利用できることは意外と知られていないようです。(AJDTはSpring Tool Suiteには最初から内蔵されています。) 実際、 コントローラークラスのメソッド内でフィールドの設定を行う サービス層を経由せずに直接DAOを呼び出している 日付オブジェクトを直接newしている*1 などの箇所をコンパイル時に検証して、警告やエラーとして検出できます。 たとえば、Spring MVCのコントローラークラスのメソッド内でフィールドの設定を行っている箇所を警告として検出するには以下のようなアスペクトを書くだけです。 package sample.mvc; import org.springframework.stereotype.Co

    AJDTを使って規約違反のコードを検出する方法 - 達人プログラマーを目指して
  • 1