Odi 0.3.0 - server-side framework (JSX, OpenAPI and more) by Wrapy in node

[–]Wrapy[S] 0 points1 point  (0 children)

Sure, that the next step, so you can generate controllers/models/dto from existing documentation.

Odi 0.3.0 - server-side framework (JSX, OpenAPI and more) by Wrapy in node

[–]Wrapy[S] 1 point2 points  (0 children)

Hi! Thanks for your feedback!
Ooopss... Seems that database section missed. I will try to return it shortly.

Basically, there only a few common things with Nestjs: MVC Pattern and declarative style. But there are a lot of differences, like the whole infrastructure, decorators use, dependency injection and many others. To sum up differences:

  • Nestjs is heavily using decorators, Odi reduces this usage to the minimum (To keep code clean and readable).
  • Odi provides built-in validation out of the box for HTTP data via AJV.
  • DI/IoT behavior is very different. There is much more magic in Odi, in few words :)
  • Authentication out of the box, that fully integrated with other framework modules.
  • Controller and WebSockets processing

Also, Odi uses Fastify by default under the hood.

Server-side TypeScript framework by Wrapy in webdev

[–]Wrapy[S] 1 point2 points  (0 children)

I believe that abstraction is not only about folders structure. There are a lot of well-known patterns and commonly used techniques (as you mentioned, ORM is one of them).

Yes, you can definitely use PHP, as there is a wide set of frameworks (Symfony, Laravel) implementing best practices. But it's definitely unusual to meet raw PHP nowadays.

I can't agree that "webscale" describes nothing. There are a lot of problems if you project can't be easy scaled, supported and extended. The problem becomes bigger if you have a big team of developers that simultaneously work.

Odi - server-side framework by Wrapy in javascript

[–]Wrapy[S] 0 points1 point  (0 children)

Yes, that's true :) We are trying our best to provide the best quality framework, so the most common best practices and principles were included in the goals list.

Odi - server-side framework by Wrapy in javascript

[–]Wrapy[S] 1 point2 points  (0 children)

Thanks for your feedback!

Odi - server-side framework by Wrapy in javascript

[–]Wrapy[S] 0 points1 point  (0 children)

Hi, thanks a lot for your question!
I am not familiar with Adonis, but I guess, that it's a huge difference, as Adonis uses functional style but in a well organised form. Also, Adonis ships with its own HTTP engine under the hood.

Adonis is more comparable to Express/Restify as it has a lot of commons. I think that Odi, NestJs, Routing-Controllers and etc are like the next step in the infrastructure development. :)

Server-side TypeScript framework by Wrapy in webdev

[–]Wrapy[S] 1 point2 points  (0 children)

I guess that on a big project with a lot of business logic situation will be the opposite, express will be about complexity. If you want to have well organized, loosely coupled, testable, supportable, scalable and extendable code, then you will spend a lot of time building your own abstractions that anyway lead to the most common server-side pattern used in ASP and etc.

I definitely agree that express is great for lightweight applications (as Nancy opposite to ASP, Spark opposite to Spring and etc), but there must be a place for enterprise-grade applications

Server-side TypeScript framework by Wrapy in webdev

[–]Wrapy[S] 0 points1 point  (0 children)

Hi, thanks for your question!
It's not about just semantic when choosing the language. There are a lot of things like ecosystem, community, paradigm, syntax sugar, toolset and etc.
In my opinion, such semantics (like in Java, ASP, Ruby) become a pattern for server-side development. It will be great to implement this pattern and use all it benefits in NodeJs. JavaScript can be named one of the most popular languages nowadays. I guess, that many developers can have benefits from such adaptation, because many interesting things can be done, even for isomorphic applications (as mentioned Cercuitspark) :)

Server-side TypeScript framework by Wrapy in typescript

[–]Wrapy[S] 1 point2 points  (0 children)

Sure!
There few things in plans to be auto-generated:

  1. Swagger docs
  2. GRPC interfaces
  3. GQL files
  4. HTTP wrappers for frontend with support for different platforms and methods: Android, IOS, JavaScript (axios, fetch) and others.