I'm not sure I understand your tidiness argument. If x uses g and f, and g
and f are private, that's plenty related enough for me to put them in the
same namespace, preferably right before x.

If f and g are meant to be private, the only reason I would see to put them
in a separate namespace is if the current one is so big that it gets
unwieldy. This can be a matter of taste, but as a data point I find that
point around a thousand lines of Clojure.

Do keep in mind, however, that if f and g are put in a separate namespace,
they are no longer private, as x will need to call them. (x could use
direct var access, but that feels very messy to me.)

On Wednesday, 19 November 2014, henry w <henryw...@gmail.com> wrote:

>
> imagine in a namespace you have functions x, y, and z which are public.
>
> function x grows a bit big, so is broken out so that it calls 2 other
> functions, f and g.
>
> now, imagine with all the clean code and refactoring in the world, still f
> and g have nothing to do with y and z - but are declared in the same
> namespace and that looks untidy and  lacks cohesion - even if f and g are
> private.
>
> should x, f and g now move into their own namespace?
>
> in that case, x doesnt live with y and z, which it should do.
> moving just f and g into their own ns 'guts-of-x' feels overblown.
> or keep x just as a var that refers to var guts-of-x/x-impl, which is a
> var that has the contents of the old x.
>
> or, should f and g not be top level? they could be let within x. x is then
> still big, but at least f and g have names and x doesnt look like a big
> inline jumble.
>
> please advise. thanks.
>
> --
> 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
> <javascript:_e(%7B%7D,'cvml','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
> <javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@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
> <javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com');>.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/d/optout.

Reply via email to