Hi Quentin, here’s a code review.

Since type ability is not exported, why not embed sync.Mutex? What does o 
stand for?

I’d say that comments like “// newAbility creates a new ability” are 
unnecessary. The identifiers are documentation. There are many unnecessary 
comments.

For read-only methods like *ability.isOn() perhaps a sync.RWMutex may make 
sense.

type brain could have sync.Mutex and *astiws.Client embedded. type brains, 
type dispatcher, type interfaces could have sync.Mutex embedded. type 
server could have everything besides name embedded. type brainsServer could 
have everything embedded. type clientsServer could have everything besides 
stopFunc embedded. The sub-packages have more cases like this.

There are no tests.

The horizontal dependency of go-astibob/abilities to go-astibob/brain is a 
red flag for me. Why not define the abilities in package astibob?

To me the demo examples show a clean interface for interacting with the 
library.

I don’t understand the pkg directory, why not have these as regular 
sub-packages?

In go-astibob/pkg/portaudio, robotgo, I’m not sure what an alternative 
would be, but defining methods on a struct{} type seems unnecessary 
compared to just having functions. Elsewhere I’ve suggested defining a 
struct type with function fields instead. If this is to satisfy an 
interface, perhaps there is another approach where the interface is 
unnecessary.

These are the most complex html templates I’ve seen, I may refer back to 
these sometime.

The godoc is a reasonable size but there are a lot of types without any 
functionality. The README.md seems long, perhaps examples/demo could 
contain some of that information.

Matt

On Monday, January 29, 2018 at 2:13:24 AM UTC-6, Asticode wrote:
>
> Heys guys,
>
> I'm happy to announce Bob, a framework to create a distributed AI that can 
> learn to understand your voice, speak back, interact with your mouse and 
> keyboard, and anything else you want: 
> https://github.com/asticode/go-astibob.
>
> Let me know what you think.
>
> Cheers
>

-- 
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