> My question would be: Is it possible that the final product would had use
> `defn` instead, given that the namespaced tag has all the needed
> information? e.g
>
> (defn ^{::m/aspects [timed logged traced]} do-a-thing [x stuff]
> (.doThatThing x stuff))
>
The var would be tagged, but `cloj
After seeing the final product in your REDME, i.e:
(m/defn ^{::m/aspects [timed logged traced]} do-a-thing [x stuff]
(.doThatThing x stuff))
My question would be: Is it possible that the final product would had use
`defn` instead, given that the namespaced tag has all the needed
information? e.g
Looks cool - thanks for sharing this.
What kind of aspects do you find to be used most often? Is it mostly
logging/tracing/timing or also something else?
Roughly how much did you use these *aspects *in the codebase you worked on
and in which parts of the application? (mostly edges?)
On Monday,
An aspect-oriented library for Clojure
Most aspect-oriented patterns I have seen in Clojure work one of two ways:
first, via rebinding var roots dynamically; or second, via functional
composition. While both of these patterns are perfectly adequate for many
use cases, they are not (IMO) perfect