title: Any good advice about how to avoid import cycle in Go?
body: <p>I'm working on a Go project for a month. The good thing is Go is really highly efficient. But after a month of development I've already got thousands lines of code and many <code>packages</code>. To avoid import cycle is a major issue for me that anytime I got a import cycle error, I have no idea where the problem may be at first time.</p>
  
  <p>The Go compiler also only have very simple notice that always not good enough to locate issue quickly like: <code>main.go:7:3: import cycle not allowed</code>. It will only help you to know which file may cause the problem but nothing more deeply. Since <code>import</code> relationship just become more and more complex while code grows, I'm eager to know how to avoid import cycle more efficiently in Go. Any help is much appreciated.</p>