sdfdfsfsdsdf
Joined 3 months ago
Joined 3 months ago
type ThingDoer interface { DoTheThingIDontCareHow() (result, error) }
func NewAmazingThingIMade(theThingINeedButIDontCareHowItDoesIt ThingDoer) { // You receive the superduper thing and dont care about it in any other way }
func (a *Amazing) DoSomeThing() (result, error) { return a.DoTheThingIDontCareHow() }
Nothing about "monoliths" prevents or hampers this development style. Once someone decides to do the Thing in another fashion, they are free to do so and you wouldn't have to change a thing.
All problems you experience are organizational, not technical. It's psychology we should be studying, not computer science.
Edit: In fact you introduced a network boundary which can fundamentally only complicate matters, not make them simpler.
Microservices isolate them quite literally and lets them work in peace and quiet.
The system as a whole is completely batshit crazy of course, but for some teams, this can turn an unworkable situation into "we might survive this" which is when push comes to shove all that matters.