読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

AOPの使いどころ

雑記

404 java-ja ないわー - AOPどこで使う?を読んで。現在関わっているプロジェクトでのAOPの使いどころについてまとめてみます。

使っているところ

  • トランザクション
  • ログ(エラーログ/性能ログ/操作ログ)
  • 認証チェック
  • キャッシュ
    • DBアクセスの結果をファイルにキャッシュし、次回API呼び出し時にキャッシュファイルがあればそこから返す、みたいなことをやっている。
  • 同時実行制御
    • APIの呼び出しを何人かのユーザーに制限するため、インターセプタで同時実行制御をする。(複数サーバーがあるので単純なsynchronizedだとまずいんだよね。)
  • データ変換
    • クライアント-サーバー間の通信で変換が必要なデータモデルの変換をインターセプタで透過的に行なったり。
  • リトライ
    • クライアントで認証タイムアウトになったときに、再ログインしてリトライ、という処理をインターセプタで行なっている。

使っているけど、使わない方がよかったと思うところ

  • 引数チェック
    • nullチェックとか汎用的に適用できるモノはいいと思うんだけど、
    • API個別の引数チェックでインターセプタを使うのははずれだと思う。APIごとに別のインターセプタを適用する必要があるため、diconファイルがカオスに。


といったところかな。アスペクトが使えないと仕事にならないレベルでがっつり使ってます。「コードが追いにくくなる」という弊害はあるけど、まぁ便利ですよねー。