go-clean-architecture
go-clean-architecture copied to clipboard
model depends on external package
Hello! Why does your model have a dependency like "gorm.io/gorm". you will be forced to change the model if:
- the database provider will change (for example, from gorm to gopg)
- database type will change (mysql to mongodb) I think a method like BeforeCreate should be inside the repo in an implementation specific internal structure.
Because gorm.io/gorm is orm database and i use gorm orm for my application for interaction with database, beforeCreate is method from gorm this is hooks, check gorm documentation for more information about hooks, maybe next time, i will change gorm to gopg.
Of course i understand for what beforeCreate) In this case ModelStudent or ModelAuth is a business entity and "gorm.io/gorm" is a detail subject to change. Now you model depends on the detail. Do you agree?
yes correct