Thanks for the reply!

(IMHO):

I understand the "Why", suffering from it everyday! This specific case is 
not MVC, but a bot. In it's simplest form: New messages come it, and based 
on user_id, a new agent (goroutine) comes to life, initiated by previous 
user state and processes the message.

As far as I understand, Clean Architecture or 3 Layer architecture or 
whatever pattern used; all of these patterns are trying to achieve one 
goal: to implement a one-flow of "Abstractions".

One-way flow of abstractions, is enforced in Go (to some extent) by 
preventing circular imports which produces a compiler error.

Yet the layers are hardly coupled by the model. Maybe the best would be 
going with POGOs (as in POJOs) or getter/setter interfaces (it is 
discouraged mostly "because JAVA is doing it").

Even in a loosely coupled design (like say messaging all way down to every 
subsystem/microservice) we still have to deal with data definitions (and 
versioning!).

Also I would like to learn how the fifth Rob Pike's rule of programming 
(http://users.ece.utexas.edu/~adnan/pike.html) could be applied here?

And having all sort of models/payloads (domain models, data models, view 
models, etc) is too much of a hassle that kills the development process.

Still I see this as some sort of inevitable doom we just can contain by 
writing tests (more tests).

But I'm eager to learn if this is possible in a Go idiomatic way - and 
should we really avoid getter/setter interfaces just because JAVA/C#/etc 
had done that? I wonder.

Thanks again for your answer! I'll watch the video carefully.

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