
Some Tools for Go Lang That You Might Not Know Yet - type0
https://blog.gopheracademy.com/advent-2016/some-tools-for-go-that-you-might-not-know-yet/
======
struct
I've used go-bindata[1] for embedding things like shell scripts and data files
into my applications, it's a fantastic tool!

[1] [https://github.com/jteeuwen/go-bindata](https://github.com/jteeuwen/go-
bindata)

~~~
gopherone
I use go-resource[1], it works nicely for embedding websites as well as
scripts and other resources.

[1] [https://github.com/omeid/go-resources](https://github.com/omeid/go-
resources)

------
nidx
The tool I have found very useful is goimports
[https://godoc.org/golang.org/x/tools/cmd/goimports](https://godoc.org/golang.org/x/tools/cmd/goimports)
really great for automatically adding and removing imports.

------
fiatjaf
Really? Interfaces everywhere you can possibly imagine? Is that where we're
heading in Go land?

~~~
twblalock
> Really? Interfaces everywhere you can possibly imagine? Is that where we're
> heading in Go land?

That _should_ be where you are heading, because contracts should be separated
from implementation, things should not be tightly coupled, etc. This is good
programming practice. How can you be opposed to accepting interfaces instead
of implementations, especially in a standard library or the standard tooling
for the language?

~~~
fiatjaf
[https://github.com/simeji/jid/blob/97c7f902bc210d7b0ebd3eadd...](https://github.com/simeji/jid/blob/97c7f902bc210d7b0ebd3eaddabb8ecc62056bbc/query.go#L8-L30)

~~~
pkroll
That's not an interface everywhere you can imagine, that's a huge, bulky
interface that should probably be many smaller interfaces. No one is arguing
for 16-method interfaces when all you want to do is call s.Alert().

