You end up with type names like controller.UserController where
Standard Package Layout
Ben Johnson
28225
Wouldn’t the idiomatic way be controller.User which doesn’t duplicate package name, conveys the same information, and is recommended in the Go documentation? I’ve found this to be useful because you’ll have controller.User, service.User, entity.User, etc. which keeps names short, but descriptive.