Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Interview with Adrian Colyer on Apr 09, 2007 06:00 PM
Performance Management and Diagnostics in Distributed Java and .NET Applications
Adobe® Rich Internet Application Project Portal
The Role of Open Source in Data Integration
Great interview, and it's good to hear that there is more discussion around domain aspects. We've been using AOP and domain aspects since 2002, and have nothing but good experiences with it. Also, I must say that doing the opposite of what Adrian talks about, i.e. plunging into using AOP all-out instead of just using the "simple" parts, allowed us to exploit the advantages of it more fully, and in a less schizofrenic way. So there are certainly benefits to going "all in". But, at the same time it *IS* important to consider if a team have the skillz and experience needed to do so. With great advantages comes great risk, so it's (as usual) a tradeoff.
Rickard, Adrian mentioned business policies that apply in a number of places as an example use of Aspects for domain logic. What were some of yours?
When was this interview carried out? Most of the things in the last paragraph seem dated.
It was about a year ago, we tried to edit out anything dated, sorry if we missed anything.
The majority of our interceptor aspects apply only to one "place" (=mixin), BUT the vast majority if mixins are reused in a number of places, which means that the interceptor aspects are then consequently ALSO reused in many objects. E.g. if I add a child to a container there's an interceptor which ensures that the child->container is properly set. The interceptor applies to only one place (=the Container.addChild method), but the Container mixin applies to some twenty places in our domain model. This allows for highly focused and specific aspects which are still highly reusable, when combined with mixins. So the interceptors are usually very specific in terms of methods that they apply to, but those methods/mixins can then be reused quite a lot in a number of different classes. The way I think about aspects changed quite a bit when I started using mixins in our domain model extensively, since as in the above case it allows the interceptor aspects to be very specific to a particular mixin, but the mixins are usually highly reusable.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
5 comments
Watch Thread Reply