Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
While trying to introduce new functionalities, we've found it more difficult than it could be to reuse logic. The code was relying on side effects, functions were sharing variables through JS scope and modules were fulfilling more than one responsibility, which has proven to be a significant hindrance.
This came about when we were working on a discoverability page, where we wanted to list all the API endpoints. We needed to share the
ROUTE_MAP
object across modules, but unfortunately it was deeply entangled in other logic.Please consider this refactor, where pieces of logic are contained as a function in separate modules, AKA the Substack pattern.
Starting with f004806, we've been extracting code step by step. Every commit after passed tests and retained Drakov's functionality, so you could more easily follow our reasoning.
Kind regards,
@SiCurious and @kosmotaur