Common Functions¶
We aim for a codebase that is intuitive and understandable at a first glance. Because making the code modular can sometimes clash with this goal, we are intentional about what we choose to abstract.
To keep our codebase maintainable and DRY, we move recurring logic into common functions, but we only do so if the logic is lengthy and/or frequently used. The logic must warrant the abstraction. Otherwise, we risk over-abstracting the codebase which just makes understanding and maintaining it more difficult to navigate and maintain.
Our shared functions are divided into four scopes: