Go Flavor for Structure 101
This is a Golang flavor for the Structure 101 static analysis and architectural decision making tool.
Note: If you're wondering where the code for the runner lives, it's here.
I used Structure 101 in the past, on Actionscript and Java projects. It was fantastic, really helped me recognize flaws in my dependency tree. Many people miss the value of a well structured, cycle-free dependency tree. For me, it's central to producing code that is easy to reason about.
For many years, I've been primarily a Ruby developer. Unfortunately, Ruby's dynamicism does not lend itself well to static analysis, and I've aborted my attempt to produce a Ruby flavor for Structure 101.
I'm also developing in Go more and more, not so much by choice but because it fits the needs of products I work with. So despite my misgivings about the expressiveness of Go, I still want to have great tools for working with it. This Structure 101 flavor is one of them.
Not much here yet. A simple flavor you have to download, build the binary dependency for, and put in your struct101g folder. It only reads package level dependencies from your app at the moment.
Currently this is only tested on OSX. It should work on any *nix with a bash shell.
Download and build
git clone https://github.com/bunniesandbeatings/go-flavor cd go-flavor ./scripts/build
Symlink into Struct101g (if you cant find the struct101g folder, run struct101g first and install one of the other flavors)
ln -s `pwd` $HOME/structure101g/flavors/com.bunniesandbeatings.go-flavor_0.0.1
You must restart Structure 101g, it should have a new Project type under 'New Project' for the Go flavor.
go help packages
Maintained on the go-flavor Pivotal Tracker project