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.

Reply via email to