1. 5
  1.  

  2. 2

    Some of these seem like fine ideas. But..

    • I tend to disagree with #1. I prefer a per project GOPATH. I am also personally not very fond of vendoring though, and tend to use gpm for my projects.
    • You can use stringer to accomplish #5.
    • Not sure how I feel about #8. If base types work, and make sense, I generally opt to avoid “type explosion” where possible.
    1. 1

      8 is good advice in any language. One wants to provide semantics to program against rather than concrete data structures.

      Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process.