When does a module boundary freeze a decision?
An interface can shelter callers from a changing implementation. Once clients depend on its behavior, changing the interface itself becomes more expensive.
Read on through a shared source
Small objects or small interfaces? →One talk breaks code into smaller responsibilities. The other limits what callers must learn. Count the decisions exposed to callers as well as the objects inside the implementation.Does hiding mutation remove coordination costs? →An object can conceal its state and still require callers to coordinate operations. Examine what happens when independently safe operations must work together.Which choices should an API leave out? →Removing an uncertain feature reduces what clients must learn. Separating tangled concerns reduces how many choices they must consider together.
Compare the passages
the higher the cost of communication the less iteration will happen therenot be able to take it out once you put it into an API.