3 ms·
I don't have the large code base experience, so I'm talking a bit out of line. However, contra OO, I submit that keeping the data orthogonal to the methods is
by smitty1e 3y ago
I don't have the large code base experience, so I'm talking a bit out of line.
However, contra OO, I submit that keeping the data orthogonal to the methods is a win.
Restated, I haven't seen much win with objectifying everything and having a huge object inheritance tree. Probably useful in some domain.
Recently looking at botocore. There are no classes for AWS services; just a "database" of JSON documents enumerating "shapes" and "operations", and then some wrapper classes that dynamically instantiate classes where needed.
Feels as though AWS may be on to something, though doubtless their server-side code is non-trivial.
- leetrout 3y agoIf you havent read it already it may be worth reading why the AWS libs are built that way. Definitely a problem at a certain scale. And if you havent seen it already you would probably appreciate Project Cambria from Ink and Switch. https://www.inkandswitch.com/cambria/ https://www.inkandswitch.com/cambria/ Editing to add: and "schema driven development" with tools like Buf https://buf.build/ https://buf.build/
- magicalhippo 3y ago> Restated, I haven't seen much win with objectifying everything and having a huge object inheritance tree. Those aren't very connected, at least in several languages. Using interfaces and composition you can have pretty shallow inheritance overall. Most of my objects are just one level "deep".