Separation of concerns
and contracts
A significant prerequisite for separation of concerns is the
fact that contracts are standardized in multiple ways. Aspects that can be
standardized on a contract are the data model (service data representation
standardization), and the naming and semantics of the services, operations and
data elements (functional expression standardization).
Standardizing the contract forces us to separate the concern
of contract design from everything around the contract, this is also called
decoupling (see [3]).
A way to standardize and independently govern the contract
is simply by approaching a service using the top-down approach.
This is easier
said than done, but a few pointers are:
- Expression of functionality from the viewpoint of business and business processes
- Naming entities from the viewpoint of the business functional area they support
- Applying normalization and logic centralization to services
- Creating the contract-first, only then think about the implementation
Once the contracts are designed first, there is a natural decoupling of contract and logic, as the contract ideally should not expose any implementation details. The separation of concerns is reached specifically by the contract-first approach as this does not allow implementation-specific details to trickle down into the contract.
No comments:
Post a Comment