Having interface such as ArticleUsecase
in Go is a bad idea, since Go interfaces are ducktyped. Stick to Go practices and have interface with only one or two methods.
In addition, you’re actually going against clean architecture, and hide the domain of your application. Instead of having model
orcontroller
packages you should have article
package that holds Article model, Article controller, and so on.