You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello Community,
Today, I am writing this issue to inform a bit about the next steps in order for Mandarine to be production ready.
MandarineTS framework has grown over the past months not only in community but also in functionalities and stability. Our community is still fairly small but that does not mean Mandarine is not moving forward in order to reach its main objective: A all-in-one solution for enterprises.
MandarineTS already has a reliable Dependency Injection System, Components, Middleware, Sessions, Template engine & other modules. We also could say that Mandarine has a reliable ORM system along with MQL (Mandarine Query Language), although this is yet to be improved but it can perfectly be used for large applications.
Case
With that said, I have to admit, I do not consider MandarineTS Framework production ready and I do not recommend it for large applications, it is perfectly fine to use it in small projects or projects with limited traffic but when it comes to the scalability of MandarineTS for production solutions, there are two things that do not make me feel well about MandarineTS in running in large scales:
Deno
We can't measure the impact of Deno in production environments because Deno is really new. Deno is only in its 1.1.1 version (2020-06-23) and it is yet to be widely used, for instance widely tested.
Among other things, Deno still has a lot of questions to be addressed like the multiple modules issue: What if a module goes down, what if the module of a module of a module goes down. Since Deno does not have a package manager like NPM and imports are cached but they are not directly related to our application, it is hard to define or track when a module breaks another module and ends up breaking your application too as well as many other issues you can think of related to this concept.
The fact that Deno is very new and its in early versions gives Mandarine a lot of impediments such as working with reliable Database modules, only if the Deno community grows to enterprise levels then Mandarine will be able to support multiple database systems.
Mandarine
Mandarine has a lot of functionalities and we can say it works in a reliable way, although, the amount of work required to make Mandarine production ready goes along with the amount of collaborators, as of right now (2020-06-23) Mandarine has 0 collaborators but me. This can be a problem as the project grows because the larger it gets the more issues will be submitted and requested.
In the same way as Deno, Mandarine is fairly new, it is only in its 1.1.1 version (2020-06-23) which makes measuring the impact it can have on a production environment almost impossible.
The fact that Mandarine is in its early versions & it is not as widely used as we would desire makes adding features and solving bugs hard since we, the collaborators, have no reports/issues to work on but our imagination which makes the process of making Mandarine grow slower than expected.
Many of the code Mandarine currently uses needs to be better documented and refactored.
This includes the creation of Unit tests.
Steps to be Production Ready
The creation of a Testing Framework for Mandarine. It must be able to be not only used for Mandarine internals but also for people using Mandarine.
Every core module in Mandarine such as Dependency Injection, Routes... must be unit-tested with this framework.
Integration tests should be available for core functionalities
MandarineTS repository must have continuous integration
Refactoring the code that needs to be refactored such as locating every mandarine-native module (SessionContainer, Default Web configurer, and others) in one folder.
Cleaning code
Everything in Mandarine should be a factory or a proxy, this way we can perform tests in an easier & cleaner way.
Add copyright header to all files
Add Benchmarks to documentation in order to be able to measure how good the changes we are making really are.
Find collaborators and impulse the use of Mandarine among both communities (JS & Typescript).
Evaluate and see how things evolve and develop with the use of Deno across the globe.
Document the life cycles of Mandarine Starter and try to make it a flexible life cycle so the user can give it a behavior.
Creation of an official website to offer more detailed documentation and things related to Mandarine
Define Standards of Mandarine not only for the collaborators but for whoever uses Mandarine out there.
Cache folder should be available per every release.
...
In order to achieve a Production Ready status, we need to work on the steps mentioned before, not a few of them, not only two of them, but ALL of them. All the steps mentioned are a top-priority.
Anything you would like to add? Feel free.
The text was updated successfully, but these errors were encountered:
Hello Community,
Today, I am writing this issue to inform a bit about the next steps in order for Mandarine to be production ready.
MandarineTS framework has grown over the past months not only in community but also in functionalities and stability. Our community is still fairly small but that does not mean Mandarine is not moving forward in order to reach its main objective: A all-in-one solution for enterprises.
MandarineTS already has a reliable Dependency Injection System, Components, Middleware, Sessions, Template engine & other modules. We also could say that Mandarine has a reliable ORM system along with MQL (Mandarine Query Language), although this is yet to be improved but it can perfectly be used for large applications.
Case
With that said, I have to admit, I do not consider MandarineTS Framework production ready and I do not recommend it for large applications, it is perfectly fine to use it in small projects or projects with limited traffic but when it comes to the scalability of MandarineTS for production solutions, there are two things that do not make me feel well about MandarineTS in running in large scales:
Steps to be Production Ready
...
In order to achieve a Production Ready status, we need to work on the steps mentioned before, not a few of them, not only two of them, but ALL of them. All the steps mentioned are a top-priority.
Anything you would like to add? Feel free.
The text was updated successfully, but these errors were encountered: