Why to use Convenient Service?
This page provides a non-complete and unsorted catalog of possible motivations to utilize Convenient Service in your project.
Some of them are specific to Convenient Service, some others are applicable to any service object implementations.
For now, those motivations are structured as a list of topics.
After a while, all of them will have their corresponding articles.
-
Separate classes for services give isolated scopes for private methods.
-
Separate classes for services give isolated scopes for caching intermediate calculations.
-
Separate classes for services allow to avoid passing huge lists of parameters to methods.
-
Separate classes for services encourage single responsibility.
-
Services allow to express complex conditional logic as sequences of steps.
-
Service steps describe processes/flows/algorithms in a declarative way.
-
Services are easy to test.
-
Service tests structure is reproducible.
-
Services are easy to stub.
-
Services are like functions, so patterns from functional programming may be applied to them.
-
or
steps encourage to think about fallbacks from the beginning. -
The
failure
anderror
separation encourages to think about fallbacks from the beginning. -
The
FaultTolerance
configuration automatically catches unhandled exceptions. -
Service results give the exact reason of what went wrong.
-
Service results give a unified interface for all kinds of outcomes.
-
Folders with services provide quick overviews of possible operations.
-
Convenient Service is intuitive.
-
Convenient Service is simple.
-
Convenient Service follows the learn once, use everywhere principle.
-
Convenient Service discourages inheritance.
-
Convenient Service is a DSL for advanced control flow.
-
Convenient Service is easy to extend.
-
Convenient Service is feature-rich.
-
Convenient Service is focused.
-
Convenient Service is user-friendly.
-
Convenient Service is well-maintained.
To be continued...