4 ms·
Wrap Your Dependencies
- Terr_ 2y agoI think there's a deeper root cause that needs to be called out here: The reason to make a proactive facade in your application [0] like this is when your ecosystem/language/setup doesn't have good tools to automate or validate refactoring. The new layer of indirection can create new problems too: It may end up a leaky abstraction (so that it isn't actually swappable) or it may fail to provide access to important features/settings in the library, or both at once. Then someday in the future you'll need to find/change all uses of your facade... and then you're faced with the same "bad refactoring tools" problem again. [0] In contrast to an application, it's a bit more-defensible if you're making a library for external use where you cannot change the caller-side code later.