Search Gear #4 – Go, viper, toml, yaml, config files, gocheck, reflect!

Search Gear Notes

Search Gear Notes

Go, viper, toml, yaml, config files, gocheck, reflect!
Just when you think you have a handle on things, it all starts to go wrong. I started off this morning thinking that I just needed to plug in some existing library machinery to better handle configuration files (there are many choices in the go third party developers list) but no!

It seems that even though these packages are provided as “working” in reality there are a number of compile errors to be overcome and a lack of good documentation and examples to get a developer going. Indeed in some cases the examples were just wrong.

So I’m left with making decisions on incomplete information while trying to find the best configuration package solution for my needs, while also trying to make sure that the Flexibility I need is present to.

ini files go get -v github.com/spf13/viper
github.com/spf13/viper
github.com/stvp/go-toml-config

I’ve also looked a bit more at test driven development and tame test cases but have not been able to find any that have been useful. The most interesting tool I have found is gocheck which seems to systematise some of the test library creation required.

http://blog.golang.org/error-handling-and-go
http://labix.org/gocheck

Finally I’ve done little bit of work trying to understand reflection and how it is important to me as a developer of go. Certainly I’ve not come across this kind of self describing concept before; and while it seems to be reasonably well adopted in modern languages, the older languages and scripting languages I’m used to haven’t required me to use or understand it.

http://blog.golang.org/laws-of-reflection

Well lets see what tomorrow brings.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s