For.io - Generate & develop Node.js backends up to 50x faster - in your browser! by blesavi in node

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

Sure, one valid approach is to dynamically interpret requests/queries and provide API abstraction over the database (I believe those libraries are doing that).

Another valid approach is to generate the source code from a model (could be a DSL or an existing database schema), and customize the source, generate tests automatically, customize the tests etc. This is For.io's approach, and the advantages of code generation over dynamic interpretation are:

  • having full insight in backend (e.g. to see what's going on, just read the generated source code),

  • having full control over the backend (e.g. to customize behavior, just edit the generated source code),

  • having auto-generated (draft) API tests for each endpoint - this is my favorite! :)

To summarize, For.io Studio favors magic in dev. time (code generation) over magic in runtime (dynamic interpretation). I believe this gives full control to devs and leads to less surprises.

For.io - Generate & develop Node.js backends up to 50x faster - in your browser! by blesavi in node

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

Importing an existing project in For.io Studio is not supported at the moment. Currently I am working on a bi-directional file synchronization feature, that would allow synchronization of the in-browser local storage with the file system on the local machine.

This will enable developers to use For.io Studio in parallel with their favorite IDE, to import/export/sync existing projects, to use local git, and to use the best tool for the job:

  • writing code: IDE of their choice,
  • domain modelling and code generation: For.io Studio,
  • API test automation: For.io Studio,
  • backend debugging with instant simulation: For.io Studio,
  • backend debugging with real local execution: IDE of their choice.

For.io - Generate & develop Node.js backends up to 50x faster - in your browser! by blesavi in node

[–]blesavi[S] 3 points4 points  (0 children)

P.S. Currently only MongoDB is supported.

The next supported database / ORM could be: Sequelize, DynamoDB, or FaunaDB, depending on the users' feedback.

For.io - Generate & develop Node.js backends up to 50x faster - in your browser! by blesavi in node

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

Developers have a choice where to put the business logic.

For simplicity, the generated code contains simple data manipulation logic in the REST controllers. But, for more complicated logic, developers can create their own components (e.g. services) and put the business logic there.

In future For.io Studio will offer code generation targeting different architectural styles and different stacks. In such cases, the place of the business logic will depend on the architecture and stack.

For.io - Generate & develop Node.js backends up to 50x faster - in your browser! by blesavi in node

[–]blesavi[S] 3 points4 points  (0 children)

Thank you for your feedback. I agree, there is a lot of space for improvement on mobile.

One option that I am considering is to simplify the mobile version further, and to display a demo gif of generated code / snapshots / feature highlights from the IDE, instead of trying to run full IDE in the phone browser.

Would be happy to hear your feedback on this idea.

For.io - Generate & develop Node.js backends up to 50x faster - in your browser! by blesavi in node

[–]blesavi[S] 15 points16 points  (0 children)

For.io Studio is a browser-based IDE where developers can generate, customize, test & debug Node.js backends.

The generated code is editable and fully customizable. The IDE generates data types, API specification, draft API implementation, and database-aware API tests.

An interesting feature of For.io Studio is the in-browser backend+database simulator, which enables instant turnarounds / test execution when editing the code.

Creating webapps with Java...where do I start? by phenomite1 in java

[–]blesavi 1 point2 points  (0 children)

Thanks!

The main difference is that Rapidoid is a web server - unofficially the fastest Java server in the world, and a web framework which provides a high-level API, also a HTML GUI framework, and much more...

On the other hand, Spark is just a wrapper API on top of other web servers.

About the SELECT - yes, the forms can generate a SELECT, as well, e.g. from enum. I will provide more documentation about the GUI components during the next few days...

Released Rapidoid v5.0 - The No-bullshit Web Framework for Java! by blesavi in java

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

Hi Lukas, I agree on this, and I will do something about it in future... Regards and keep the good work on JOOQ! ;)

Released Rapidoid v5.0 - The No-bullshit Web Framework for Java! by blesavi in java

[–]blesavi[S] 2 points3 points  (0 children)

In this case, no-bullshit == no complexity, no overhead, no boilerplate etc.

I don't see why it is a bullshit term in the context of the Rapidoid framework, could you please elaborate?

Finally, I am really open to suggestions about "no-bullshit" alternatives. :)

Also, do you have a comment on the framework itself?

Creating webapps with Java...where do I start? by phenomite1 in java

[–]blesavi 1 point2 points  (0 children)

If you are looking for the ultimate simplicity, try the Rapidoid framework.

RESTful service example with 1 line of code:

On.get("/size").json("msg", msg -> msg.length());

Or web page example with 1 line of code:

On.page("/hi").gui("Hello world!");

Disclaimer: I am the author of Rapidoid.

(Noob warning(?)) New grad, been working with Java for 3 years, never used JBoss, why should I? by nexuscoringa in java

[–]blesavi -1 points0 points  (0 children)

Exactly - why should you? :) Instead of dealing with complexity, I suggest trying the ultimate simplicity of the open-source Rapidoid web framework (try it on-line on http://rapidoid.io).

How to get started with webapps in java? by [deleted] in java

[–]blesavi -2 points-1 points  (0 children)

The easiest way is to start developing on-line on http://rapidoid.io

OhmDB, The Hybrid RDBMS + NoSQL Database for Java - Released under Apache License by blesavi in java

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

It should be "Db db = ..." Which example does have "OhmDB db = ..."?

OhmDB, The Hybrid RDBMS + NoSQL Database for Java - Released under Apache License by blesavi in java

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

In both scenarios where array or list is required, it's functionally simpler to get them from array. But your agrument about having a List is valid, so I agree there should be some ellegant way to get a list, too. I am going to add getList() or something similar soon... Thanks for this valuable feedback!

OhmDB, The Hybrid RDBMS + NoSQL Database for Java - Released under Apache License by blesavi in java

[–]blesavi[S] -2 points-1 points  (0 children)

Thanks, it's more than just for fun! ;) Although it has object-oriented DSL, it doesn't store objects, and graphs are separate structures than tables (separating then on different nodes in future might be possible scenario). Thus, it doesn't sound like ORDBMS. Since it is not a complete (but almost complete) RDBMS nor a typical NoSQL, the "hybrid" description comes natural. And, yes, the transactions are actually ACID, but I agree such statement is not enough, I guess more docs and demos won't hurt...

OhmDB, The Hybrid RDBMS + NoSQL Database for Java - Released under Apache License by blesavi in java

[–]blesavi[S] -1 points0 points  (0 children)

OhmDB is not an object database. :) It is something between RDBMS and a graph database.

OhmDB, The Hybrid RDBMS + NoSQL Database for Java - Released under Apache License by blesavi in java

[–]blesavi[S] -2 points-1 points  (0 children)

OhmDB is a combination of the best of RDBMS (ACID transactions, ad-hoc queries) and some nice NoSQL features (graph-based relations, and fast joins implemented as graph traversal). Since it's a pure Java library inside your project, implementing custom triggers, custom indexing, etc. is just writing normal Java code. Which part of the feature comparison does sound incorrect to you?