OOP needs a procedural boundary to separate a domain model from the side-effects
Tell don't ask is a form of object-orientation where objects issue commands to perform a behaviour, rather than querying
Indirection without abstraction is waste is an antipattern that occurs when objects introduce overhead through unnecessary layers of indirection
Derive Booleans from state is an example of how using the wrong level of abstraction can introduce additional complexity
Representing a business domain as a web of objects (in the Object-Oriented Programming style) works to a point - which is where those objects have to consider side-effects - including network, I/O, interaction with a database, and so forth.
Object-Oriented Programming is a paradigm of programming oriented around objects, communicating via messages
Tell, Don't Ask is an Object-Oriented Programming style that prefers objects to be defined in terms of the functionality that they encapsulate (i.