api-guidelines icon indicating copy to clipboard operation
api-guidelines copied to clipboard

Extend best-practice list: avoid using static "global mockable state" providers/top-level functions in the favour of injectable ones

Open qwwdfsad opened this issue 1 year ago • 0 comments

It would be nice to recommend avoiding using "global" state in the libraries, that later is almost impossible to test and/or mock.

We tend to favor explicitly spelled-out APIs for the such state: datetime's Clock.System.now(), Okio's FileSystem.DEFAULT.read* as opposed to top-level now(), read(path) etc. (the most notable existing API that falls into this trap is coroutine's Dispatchers.Default)

qwwdfsad avatar Apr 11 '23 12:04 qwwdfsad