Thanks Timo; Interesting links.  Loving Clojure, but boy is it challenging
the stuff I have been doing for the past how-ever many years :).

On 10 May 2013 20:14, Timo Mihaljov <t...@mihaljov.info> wrote:

> On 10.05.2013 14:04, Colin Yates wrote:
> >  2) to provide a 'get-ds' accessor which returns a new instance and rely
> > on passing that service along to every function that needs it?
>
> For what it's worth, some people in the OO community, most notably Nat
> Pryce and Steve Freeman of Growing Object-Oriented Software[1] fame,
> advocate[2][3] this approach over using an IoC container.
>
> > Option 2 means functions are still pure, but how do you prevent huge
> > lists of services - i.e. if func-a calls func-b which calls func-c and
> > func-c needs service-a then func-a and func-b need to access service-a.
> >  Yuck.  It also means the main entry point to my application needs to
> > assemble all of these services up in one go.
>
> Here's the punchline from [3]:
>
>     If I later find that I can’t get access to some component that I
>     think I need, that’s not necessarily a bad thing. It’s telling me
>     that I’m introducing a new dependency and sometimes that’s a hint
>     that a component is in the wrong place, or that I’m trying to use
>     it from the wrong place. The coding bump is a design feedback
>     mechanism that I miss when I can just pull objects out of a
>     container. If I do a good job, I should find that, most of the
>     time, I have just the right components at the time that I need
>     them.
>
> [1] http://www.growing-object-oriented-software.com/
> [2] http://www.natpryce.com/articles/000783.html
> [3]
>
> http://www.higherorderlogic.com/2011/07/is-dependency-injection-like-facebook/
>
> --
> Timo
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/keid7IGzKjk/unsubscribe?hl=en.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to