What Mandarine Framework needs to be production ready
Tags: typescript, deno, mandarine, framework
Published: 2020-06-24 17:22:29

During the last few days, as the creator of [Mandarine Framework](https://mandarineframework.gitbook.io/mandarine-ts/), I have not been able to stop wondering whether Mandarine is ready for production environments, that does not mean whether Mandarine has everything but whether Mandarine is reliable enough. 

Mandarine has grown over the past months in functionalities and stability, although the community is still fairly small, in fact, I am the only collaborator.

Mandarine has an extensive built-in tools that allow you to develop complex applications (front-end & back-end) with important Design Patterns such as SOLID & Dependency Injection. Everything in Mandarine is based on the MVC pattern, SOLID, and the use of Components (Your application should be modular in order to be well-distributed). [Click here to see some of the features](https://github.com/mandarineorg/mandarinets#mandarinets-main-features)

With that said, I have to say: **I do not feel comfortable with the idea of using _Mandarine_** in production environments with a lot of traffic/usage.

# The Deno Problem
- [Deno](https://deno.land/) is fairly new, it is still in its early versions (1.1.1) and it is yet to be widely used.
- Among other things, Deno 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.
- With Deno being in its early versions as well as Mandarine, it is almost impossible to determine what impact Mandarine can have on a large production environment.

# Why It is not production ready
- It needs a testing framework not only to test the core behavior but also for users to be able to test their Mandarine-powered application
    - As of right now, Mandarine does not have unit tests. Every module **must** have unit tests.
- Mandarine must have continuous integration with Github workflow.
- Code needs to be refactor since there are part of the code that are not located in the right places.
    - Part of the code needs to be cleaned.
    - Everything in Mandarine should be a proxy or a factory in order to make testability easier.
- Benchmarks must be created and added to the documentation in order to be able to measure how much changes are affecting.
- Mandarine **needs** collaborators in order for it to grow and get impulse in both communities Javascript & Typescript.
- Evaluate how things evolve with **Deno**.
- Document the life cycles of Mandarine framework engine, and perhaps make the starter implementable so the developer can override behaviors.
- Mandarine needs a website with the documentation and everything related to Mandarine. As of right now, [Gitbook](https://mandarineframework.gitbook.io/mandarine-ts/) is being used but it turns out to not be enough.
- Standards need to be implemented not only for the collaborators but for everyone who uses Mandarine.

# Looking for collaborators
Mandarine is currently looking for Collaborators to help start addressing new features, fixes, but overall, the steps for Mandarine to be production ready [(See issue here)](https://github.com/mandarineorg/mandarinets/issues/57)

# Disclaimer
I am the creator of Mandarine Framework

# End
Do you have any thought? Please, I would love to know it even if I do not like it. Comment it below.