aim
aim copied to clipboard
Create BaseExplorer
🚀 Feature
One of the major challenges when building a web app is how quickly you can scale the app and create new features. When the demand (requirements) increases, the capabilities (features) increase too. It is therefore important to have a solid architectural structure so that the app grows organically. We don’t want to end up in situations where the app can’t scale because everything in the app is deeply entangled. We often recreate things that have already been created without even being aware or copy and paste stuff to reduce time. In the end, it adds up, and we are left with x number of identical copies scattered throughout the app. And for each time we need to change something, we must do it x times depending on how many copies we have.
Current explorers issues
- Isn’t maintainable.
- Hard to extend new features take a lot of effort and time.
- Parsing and mapping data performance are too slow from the API model to the UI model.
- Slow state management performance, prop drilling is the reason for executing too many uncanny rendering passes in the DOM tree.
- Persistent state management.
Motivation
- Avoiding code duplication. (Easy to maintain development)
- Same logic implementation in different ways and x times. (Easy to bug fixing and change common logic)
- Same UI markup in different ways and x times. (Easy to redesign)
- New feature shipping will become faster. (Create new explorers faster)
- Solve performance issues. (Data processing, rendering)
Pitch
The main insight of BaseExplorer is Don’t reinvent the wheel each time when need a new explorer. Creating new explorer have to become super fast with BaseExplorer. It will only need to create specific visualization parts using BaseExplorer' core functionalities, including data modifications (grouping, ordering etc.) regardless of the type of data the explorer belongs to.