I am working on enterprise applications and writing it using Go. One thing that I am noticing is that we are not following go idioms, like package and interface naming convention are not being followed. We are layering our code as business layer, dal layer and using factory and abstract factory pattern (interfaces) to define the contracts. So we are end up using lot’s of interfaces and this is making code is less readable for other developers.
We followed this approach to decouple and abstract the problems and more of achieving high code coverage. By using interface contract we are able to mock the calls and able to achieve high code coverage.
Wanted to check if this approach is right or not and if not what is suggested in Go to handle this problem.