I find that it helps me to think of objects as tiny machines rather than places to hold data.<p>It then becomes easier to reason about which classes make sense and which don&#x27;t. A &quot;User&quot; class doesn&#x27;t make sense, but UserTable (machine to access the users) and Authenticator (machine to authenticate them) do. A BlogPost class doesn&#x27;t make sense, but a PostRenderer (machine to render blog posts) does.<p>OOP then becomes about decomposing computers into smaller communicating computers, not about lumping together data and all the possible code related to that data. Which incidentally means that there will be things that are pretty much just dumb data &#x2F; facts (e.g. User)