ドキュメント候補

Change as Aspects : A Case Study

タイトルの意味は、変更をアスペクトで表そう、みたいな。 AspectJ の魅力的だけど、ちょっと使いどころが難しいそーな機能に、既存のライブラリ(or jar)に対するアスペクトの適用がある。そのような時にでのアスペクトが何をするかということの一つは、ラ…

Reactive Aspects

's'いるのかどうか不明だけど・・・ アスペクトの持つ特徴として、一つ有益かもしれないものとして、アスペクトの機能(アドバイス)を 実行時に オンやオフにするものがあると思う。思う、っていうのは、実用的な状況が明確にイメージできないからだけど、…

ArchAJ

この前から書いていた、ArchJava っぽいことを @ (Attribute or Annottation) + AspectJ のソースを生成の話を、ちょっと具体的に。 ArchJava とは程遠いけど、雰囲気的には、以下のようなソースがあるとすると(あとで、ちゃんと実装上の問題とかをまとめて…

Extensions as Aspects

基本的に、何かのソフトウェアやライブラリを拡張(or 変更)したい場合に取れるアプローチには: ソースコードを直接変更 継承(or サブクラス化) がある。 前者のアプローチの問題点は、変更される側(つまり、ライブラリ側)の変更に、変更する側が同期を…

アスペクトとベースプログラムの関係

直感的には、アスペクトとベースプログラムの関係は、薄くしたほうが望ましいように思える。 しかし、具体的には、どのような理由からだろう? たとえば、Caesar では、クラスとアスペクトの明確な区別はない(クラスの中に、advice が書ける)。 さらに、ダ…

Grouping Advices

's' いるんかな? まあそれはさておき、、、 AspectJ での一つの面倒な点は、advice に対する advice を行いたい場合があるきがする。 before() : ... { beforeMethod(); // なんらかの前処理 method1(); afterMethod(); // なんらかの後処理 } before() : .…

Aspect-aware Design or Aspect-aware Refactoring

Bruno Harbulot and John R. Gurd. Using AspectJ to Separate Concerns in Parallel Scientific Java Code. To be published in the Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD). March 2004. DL: ht…

inter-type declaration に名前をつける?

よくわからんけど、必要最低限のメソッドだけを、特定のクラスに inter-type declaration したいという場合があるきがする。というのも、クラスの interface は必要以上に複雑になってほしくないから。 でも、どうやって特定のメソッドだけを選択して、inter…

Aspect-Oriented Framework Development: Dynamic AO Languages vs. Static AO Languages

今、 Stefan Hanenberg, Robert Hirschfeld Constructing Highly Adaptable Frameworks Using Aspect-Oriented Composition Techniques (実際に論文を見てみるとタイトルは「Applying Aspect-Oriented Composition to Framework Development - A Case Study…

アスペクト指向デザインパターンの適用の困難と恐怖: Visitor パターンの場合

今、ちょうどアスペクト指向な Visitor パターンを適用できる状態なんだけど、スムーズに悩むことなく適用できそうでもない。 この困難さ or 恐怖(先が見えない)の理由の1つは、設計空間の大きさ(or 選択肢の多さ)から来ているように感じる。主な選択肢…

Aspect Interaction or Aspectual Messaging

`Aspectual' ってつければ何でもいいと思ってんのか! への回答は、え、うん、どーよ? AspectJ Tip: Chain of Aspect http://www.ncfreak.com/asato/doc/aspectj-tips/chain.html とか Caesar によるデザインパターンの実装 - Abstract Factory http://www.…

Aspect Group or Aspectual Inheritance

ある concern に対して、複数の実現方法(アスペクト)があるとすると、そのアスペクトは、その concern に対してのグループを形成していることになる? たとえば、ロギングの concern を考えてみると、ファイルにログするアスペクトとコンソールにログする…

Aspect-Oriented Framework Development

AspectJ を使ったデザインパターンの改善と支援 - Abstract Factory http://www.ncfreak.com/asato/doc/aspectj_dp/af.html#impl7_3 にフレームワークっぽい実装を書いてみた。いかがなものか?疑問: (オブジェクト指向フレームワークでのような) Aspect-Ori…

Natural (Pure?) Classes, OO Framework-aware Classes or AO Framework-aware Classes

英語の怪しさは、さておき・・・ どうなっていればフレームワークでどうなっていなければフレームワークじゃないかの境界線は分からないけど・・・オブジェクト指向フレームワークの開発では、拡張できるようにクラスをそのようにしたりする、と思う。GoF の…

Decomposing Aspects

's' いるんかなあ? それはさておき・・・ Caesar によるデザインパターンの実装 - Abstract Factory http://www.ncfreak.com/asato/doc/caesar_dp/af.html#impl2 の「議論2」書いていて分かったことだけど、アスペクトの分割は、なんとかできるみたい。ただ…

AOP の有効性と AOP が解決する問題

タイトルがめずらしく日本語だけど、これは、英語での書き方がわからんかったからだ! ・・・とはかはさておき・・・ AOP が有効である、といわれるようなケースの問題を扱っているとき、その問題は、どのような問題なのかどうか。一般的に、AOP が解決する…

Open Classes and Aspect-Oriented Software Reuse or Weaving-based Software Reuse or Load time-based Software Reuse or Aspect-Oriented Software Composition?

いつものとおり、タイトルの英語が怪しいけど・・・ Open Class と階層拡張 http://www.ncfreak.com/asato/doc/openclass.html というドキュメントを書いていて気づいた or AspectJ を使い始めていたころから気づいていたことだけど、Open Class (or AspectJ…

Implicit Aspects and Explicit Aspects

AspectJ を使い始めていたころの疑問の一つは、アスペクトがアプリケーションのコードの側に現れてもいいのかどうかということ。(特に AspectJ における)ロギングのようなアスペクトは、暗黙なアスペクトとして実装されて、実際のコードのには、現れる必要…

Large Scale Crosscutting Concerns and How to decompose it.

またもや怪しい英語だけど・・・それはさておき・・・ Caesar によるデザインパターンの実装 - Abstract Factory (http://www.ncfreak.com/asato/doc/caesar_dp/af.html#impl2) を書いてて感じたことだけど、大きな crosscutting concerns (例でいえばゲー…

Change Patterns or Evolution Patterns

リファクタリングとも関連するけど、調べたいことの候補に、Change Patterns あるいは Evolution Patterns ってのがある(僕が勝手に付けただけ。他にも同様のことがあるかもしれない)。具体的にいうと、プログラムに関する特定の要件や変更に対して、どの…

Abstract Factory and Crosscutting Nature

Nature の使い方間違ってるかもしれんけど・・・それはさておき・・・、Caesar で Abstract Factory のサンプル 書いていて気が付いたんだけど、Abstract Factory を適用したくなる場合って、本質的に crosscutting concern 関連なんだろうか。少なくとも、…

Virtual Class Factory Method vs. Virtual Method Factory Method

Virtual Class による Factory Method の実装と通常の GoF Factory Method では、どのような違いがあるんだろうか。 一つの違いは、もし、デフォルトの Product がないのであれば、Virtual Class での実装は無理、ということ。なぜなら new で interface と…

(アスペクトのインスタンス化 != インスタンスレベルアドバイスウィービング) ???

*** 書きかけ *** ふむ。インスタンスレベルでアドバイスをウィービングしたい動機は、直感的にわかるけど、アスペクトをインスタンス化する動機は、何だろう? いや、アスペクトをインスタンス化してはいけない、という意味じゃなくて、なんか、こう、違和…

TDD と使用者側の視点

TDD (or テストファースト) で学んだことの一つは、使用者側の視点から見ることは、作者側の視点から見る(考える)よりも、多くのことが感じられるってこと。あるいは、使用者側と作者側のギャップの大きさ。または、使用者側から考えることの、スムーズさ…

Impl アスペクト

最近忙しくってドキュメントを書くひまがない。ということでネタを忘れないようにメモっとく。詳しくはちゃんとしたドキュメントにまとめるけど・・・AspectJ を使っていて、少なくとも3つのケースで Impl アスペクトみたいなインナーアスペクトを使いたい状…