> 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 `clojure.core/defn` won't apply the aspects.
The only difference `morphe.core/defn` makes is that it applies the tags in
between parsing the `defn` body and writing out the fn.
What kind of aspects do you find to be used most often? Is it mostly
> logging/tracing/timing or also something else?
>
I would say mostly telemetry, but exceptions to that rule included
enforcing patterns around error-handling, resource management, or
asynchrony,
Roughly how much did you use these *aspects *in the codebase you worked on
> and in which parts of the application? (mostly edges?)
>
I don't have hard numbers, but by far the largest project that used this
can be seen here
<https://github.com/Workiva/eva/search?q=morphe&unscoped_q=morphe> (at
least the parts that were open sourced). At one point in time I estimated
that without this library that project would have been 15-25% larger
(again, my memory is fuzzy) in LOC, but it's not something I tracked, and I
don't know what the numbers look like now. Many uses were on the edges, but
there were some (e.g., tracing) that sometimes weaved through the internals
of a component.
~Timothy Dean
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/479d416c-22bd-407e-b9c9-1b817901c144%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.