On 13 January 2017 at 07:44, hui zhang <fastfad...@gmail.com> wrote:
> 4 Can not Cycle import.

In my opinion, this is one of Go's really great features. When software becomes
larger, there is huge pressure to create cyclic dependencies between packages.
Once you start to get cyclic dependencies, the system as a whole tends
inevitably
to gather into a giant "ball of mud". That makes everything less
modular and much
harder to refactor.

There are so many times that I would have created a cyclic dependency rather
than spending a day or two teasing out the dependencies into something
non-cyclic.
This process almost always creates something better engineered than before
with a better separation of concerns.

Also, as Egon says, there's a good technical reason: the Go
initialisation order depends
fundamentally on non-cyclic imports - there's no way to see an
imported package's initialised
global variables in an uninitialised state.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to