Motivation
Most ideas in software engineering are focused on managing complexity. Structured programming attempted to reduce complexity through coarse-grained partitioning of code and design. Object-oriented programming attempted to reduce complexity by building abstractions that marry state and behavior. Component software attempted to reduce complexity by partitioning applications based on abstract interfaces or protocols. The dream of component software was a world in which components could be assembled by less-skilled programmers using higher-level languages and tools. This, of course, assumes a world in which the problem domain can be neatly factored into discrete components that interact via simple method invocation.
The basic premise of ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access