We started employing this pattern in our code at work recently. Using the Facade pattern to create a simpler interface around a couple of things:
- Feature Flag service, wrapping LaunchDarkly
- Remote Storage service, wrapping S3
The application code uses the simplified services, with little knowledge of the underlying providers (e.g. S3 or LaunchDarkly). The tests use a test implementation of the simplified services.
This pattern simplifies both the application code and test code and is an all-around win.
It's been a game changer personally, and made me excited about software architecture and coding.
- Feature Flag service, wrapping LaunchDarkly
- Remote Storage service, wrapping S3
The application code uses the simplified services, with little knowledge of the underlying providers (e.g. S3 or LaunchDarkly). The tests use a test implementation of the simplified services.
This pattern simplifies both the application code and test code and is an all-around win.
It's been a game changer personally, and made me excited about software architecture and coding.