After several years of working in web development, I realized that the TS/JS world has too few (or
no) reusable libraries that truly provide utilities to help developers implement object-oriented
data modeling in practical applications.
In many projects that I have encountered, I found similar patterns:
Developers have to implement the boilerplate OOP again and again from scratch across different
projects.
There are the gaps between the theories of OOP and the real applications' implementations.
There is also a gap in controlling the data between the data layer and the business logic
layer.
Each developer has their own understanding of object-oriented implementation; some have a great
understanding, some have limited knowledge, and some don't understand at all. It results in
discrepancies and a disorganized coding structure on a big project, more or less.
Developers often feel overwhelmed by data logic, which contributes to the chaotic and complex
business logic.
This leads to a situation where OOP is seen as a complex and unnecessary concept, when in reality,
it is a powerful tool that can help developers write better code and deliver business-related values
faster.
Therefore, I create this library to provide a consistent foundation of OOP utilities for developers
(including me first) to build upon.