On Apr 11, 2019, at 12:07 PM, Eric Fried <openstack@fried.cc> wrote:
(1) Pass `self` to the db method. This grates on me pretty bad. It screams that the thing should be an instance method.
That is actually a pretty old design pattern: passing a data object, rather than a slew of parameters. Of course, it would be cleaner to keep them as instance methods, and that would be my preference. I know that you have expressed an interest in reducing the overall size of the individual modules, so this option is only valid if smaller modules is decided on as a Good Thing™,
(2) Pass in the attributes that are needed by the method, and return the ones that the caller needs to use to update itself. This may make for some ugly call/return signatures.
I can’t think of a more brittle approach. -- Ed Leafe