Я хотел бы услышать совет от гуру Голанга.
Представьте, что у меня есть пакет для слоя базы данных со множеством таблиц, для которых я должен определить структуры и функции для них. Например, у меня есть таблица с именем «MyObject», и я определил для нее структуру.
type MyObject struct {
RecID int
Name string
}
Удобно ли для функций, связанных с этой таблицей / структурой, я определяю получателя так:
func (o MyObject) AllMyObjects() ([]MyObject, error) {
// retreive all MyObjects by query
}
func (o *MyObject) OneMyObjects() (MyObject, error) {
// retreive one MyObject by query
}
Таким образом, по мере того, как мой пакет БД будет увеличиваться за счет структур и функций, он будет выглядеть чище и проще для вызова таких методов (хотя я должен определить 1 дополнительную строку):
var myobject MyObject
var myobjects,err = myobject.AllMyObjects()
вместо вызова функций непосредственно на уровне пакета (db - это имя моего пакета)
var myobjects,err = db.AllMyObjects()
Это способ организации кода Go или у вас есть другие советы для этого?