Hi Clinton, here’s a code review. Does BuildTool need to be an interface? Having methods on a pointer to nothing (type GoBuildTool struct{}) seems unnecessary to me. Also, why not have this at the level of package main?
Same with graven/commands, graven/config, graven/domain, graven/util, since these are specific to graven they could also be part of package main. Config is just defining one type. Since graven/domain.Project, Artifact, Repository, Version only has read operations defined why not have the struct as method receiver instead of pointer to the struct? I’d only move to the pointer for performance if proven by a testing benchmark, pprof profile, and need, otherwise no pointer is more understandable/readable. Again in graven/repotool, graven/vcstool, I’m not sure having an interface makes sense when just grouping behavior with no data structure. Defining a struct type with function fields with a var for docker, github, and maven may be better. These packages are also application specific; packages should be portable and not just used to group application logic. Well-named package main files and types provide just as good logical separation. graven/resources/commmon is misspelled. I’m not sure why you have these simple text files when a const in code could maybe provide the same functionality. Matt On Saturday, January 20, 2018 at 10:54:29 PM UTC-6, Clinton Begin wrote: > > Hi all, > > I'm looking for feedback on a build tool I created to fill some gaps I saw > in the Golang project build space. While I've used this tool for 9 months > or so, you can very much consider it a prototype of sorts, or a concept, > and PRs are definitely welcome. This is hopefully the beginning of a > conversation, not an assertion that this is a finished product. > > https://github.com/cbegin/graven > > There's an intro video and short design motivation doc. Remember that > motivation works both ways. It influences both things we want to emulate, > and things we want to avoid. So please don't be put off immediately by the > Maven references. While Maven as a tool can be a nightmare, as a concept, > it's purpose, goals and what it's proven in the Java space, are worth > learning from. > > Cheers, > Clinton > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.