<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Domain-Driven Pointcut Design</title>
	<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/</link>
	<description>Down To The Bone</description>
	<pubDate>Thu, 16 Oct 2008 06:50:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.2</generator>

	<item>
		<title>by: Jonas</title>
		<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3641</link>
		<pubDate>Sat, 29 Apr 2006 03:31:14 +0000</pubDate>
		<guid>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3641</guid>
					<description>&lt;p&gt;Thanks Dean. I will definitely read your latest AOSD papers, sad that I missed your talks.&lt;/p&gt;

&lt;p&gt;I think that your observation about the connection to the classic DIP and SDP principles is very true. Good point. &lt;/p&gt;

&lt;p&gt;That is an interesting observation that I think is very true.
Did we really think that we had to solve &lt;em&gt;new&lt;/em&gt; problems?  ;-)&lt;/p&gt;

&lt;p&gt;Thanks for the comments.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks Dean. I will definitely read your latest AOSD papers, sad that I missed your talks.</p>

<p>I think that your observation about the connection to the classic DIP and SDP principles is very true. Good point. </p>

<p>That is an interesting observation that I think is very true.
Did we really think that we had to solve <em>new</em> problems?  <img src='http://jonasboner.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<p>Thanks for the comments.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Dean Wampler</title>
		<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3632</link>
		<pubDate>Fri, 28 Apr 2006 15:12:58 +0000</pubDate>
		<guid>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3632</guid>
					<description>&lt;p&gt;Great post, Jonas. Your recommendations on the use of metadata and on avoiding fragile pointcuts are spot on. A couple of comments:
First, the pointcuts in Contract4J fit this model exactly. In fact, it was the only way I could create a tool with truly generic pointcuts! I discussed this issue at length, along with emerging ideas about interface-based AO design in a few articles at aspectprogramming.com/papers.
Second, the fragile nature of pointcuts that refer to specific details is an example of breaking the Dependency Inversion Principle (DIP) and the Stable Dependencies Principle (SDP), as described by Robert Martin (http://www.objectmentor.com/resources/articles/dip.pdf and http://www.objectmentor.com/resources/articles/stability.pdf).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Great post, Jonas. Your recommendations on the use of metadata and on avoiding fragile pointcuts are spot on. A couple of comments:
First, the pointcuts in Contract4J fit this model exactly. In fact, it was the only way I could create a tool with truly generic pointcuts! I discussed this issue at length, along with emerging ideas about interface-based AO design in a few articles at aspectprogramming.com/papers.
Second, the fragile nature of pointcuts that refer to specific details is an example of breaking the Dependency Inversion Principle (DIP) and the Stable Dependencies Principle (SDP), as described by Robert Martin (http://www.objectmentor.com/resources/articles/dip.pdf and http://www.objectmentor.com/resources/articles/stability.pdf).</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jonas</title>
		<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3620</link>
		<pubDate>Tue, 25 Apr 2006 19:18:21 +0000</pubDate>
		<guid>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3620</guid>
					<description>&lt;p&gt;Alex, I agree that that would be useful. Could be an interesting excercise to build such a DSL upon the AspectJ PL, or even better to have the AJ PL extensible in some form.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Alex, I agree that that would be useful. Could be an interesting excercise to build such a DSL upon the AspectJ PL, or even better to have the AJ PL extensible in some form.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jonas</title>
		<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3619</link>
		<pubDate>Tue, 25 Apr 2006 19:14:20 +0000</pubDate>
		<guid>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3619</guid>
					<description>&lt;p&gt;Geoffrey, there is definitely a need for signature based pointcut matching. However, I think that it can in many (most?) cases be avoided and that matching can be done using more high-level metadata information.&lt;/p&gt;

&lt;p&gt;I do think (as I said in the article) that for example @Transactional, and other @AdviseMeHereWithFuncionalityX style metadata, is generally bad practice. But that it might make sense in constrained environments such as frameworks and containers. Matching on standardized annotations are usually a good thing.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Geoffrey, there is definitely a need for signature based pointcut matching. However, I think that it can in many (most?) cases be avoided and that matching can be done using more high-level metadata information.</p>

<p>I do think (as I said in the article) that for example @Transactional, and other @AdviseMeHereWithFuncionalityX style metadata, is generally bad practice. But that it might make sense in constrained environments such as frameworks and containers. Matching on standardized annotations are usually a good thing.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Alex</title>
		<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3618</link>
		<pubDate>Tue, 25 Apr 2006 15:31:38 +0000</pubDate>
		<guid>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3618</guid>
					<description>&lt;p&gt;This remember me someone asking us to implement in AspectWerkz support for call(@AccountStateChange), with no &lt;em&gt;..&lt;/em&gt;(..) at all inside - and possibly configure the weaver to only allow this kind of usage.
It was a spanish guy at JavaHispano if I remember correctly. He explained that he would consider using AOP only if such a restriction could be enforced.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This remember me someone asking us to implement in AspectWerkz support for call(@AccountStateChange), with no <em>..</em>(..) at all inside - and possibly configure the weaver to only allow this kind of usage.
It was a spanish guy at JavaHispano if I remember correctly. He explained that he would consider using AOP only if such a restriction could be enforced.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Geoffrey Wiseman</title>
		<link>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3616</link>
		<pubDate>Tue, 25 Apr 2006 13:50:26 +0000</pubDate>
		<guid>http://jonasboner.com/2006/04/24/domain-driven-pointcut-design/#comment-3616</guid>
					<description>&lt;p&gt;It seems as if you're suggesting this.  There are some aspects that are implementation-driven in nature (e.g. transactional) and some that are business-driven (e.g. account state changing) and that the pointcut approach should match the advice.&lt;/p&gt;

&lt;p&gt;Use business-oriented pointcuts (domain, ubiquitous language; @AccountStateChange) for business-oriented advice, and implemention pointcuts (@Transactional) for implementation advice.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>It seems as if you&#8217;re suggesting this.  There are some aspects that are implementation-driven in nature (e.g. transactional) and some that are business-driven (e.g. account state changing) and that the pointcut approach should match the advice.</p>

<p>Use business-oriented pointcuts (domain, ubiquitous language; @AccountStateChange) for business-oriented advice, and implemention pointcuts (@Transactional) for implementation advice.</p>
]]></content:encoded>
				</item>
</channel>
</rss>
