Web innovation-SQL Driven management as a new approach to web development

The history of Falcon - the main prerequisites for creating a business application platform

Platform for creating business applications with a web interface

In this short essay I will tell you how we came up with the idea of creating Falcon Space.

Custom development
is long, expensive, errors

Initially, we made custom development projects using the full development stack. That is, you need to write a Technical Specification with layouts, set up the appearance, and implement a database, then write the backed code, then the frontend code, all this must be integrated with each other. It's quite long, expensive and tedious. Many errors often came out during implementation.

Finished product - no flexibility

Of course, we considered the option of using ready-made boxed solutions, but in most cases, the customer the customer needs customization and flexibility, and ready-made solutions rarely provide this opportunity. So we That's why we took our project template with some ready-made modules as a basis and created a project based on it.

Fullstack development issues

Also, working on the full development stack had 2 negative factors.

It is difficult to create a programmer

First, it was very difficult to grow a full stack programmer. You need to know a lot of technologies at once and it takes time, to become a good fullstack developer. For this purpose, we have organized a free course on our stack and so we trained people and looked at them to find suitable candidates.

Easily create
a memory and processor leak

The second unpleasant point is that it is very easy to create problematic code when the work goes all over the stack developments. These can be optimization problems, or an implicit business logic error, or a lack of rights checks. It is necessary to constantly monitor that no one missed anything on the code.

I was also concerned that I couldn't save the code base. Yes, there were components of the General appointments. But at the same time, there was often a situation that some standard functionality was being done on projects, which was already implemented in another project, but it was not so easy to extract it from there because of high connectivity with the project.

No ready-made solutions - no growth

Birth of an idea

Development - in the office,
business logic - in SQL

All these factors have prompted us to look for new ways to develop our system. Gradually the idea was formed to make a solution that can be assembled from blocks, and this requires minimum knowledge of technology. It must be possible to increase functions indefinitely the system.

Speed decides

At the same time, it is very desirable that possible errors and subsequent debugging are reduced at a minimum. I wanted to simplify development as much as possible to minimize errors. The key requirement is speed. A slow-thinking system causes rejection in the user. The rate of pages output, the speed of development, speed of development of functionality.

Finally came up with the idea.

What if the developer can fully work from the management Cabinet? What if he can not only change the content,but also develop the capabilities of the SQL-based system without external tools like Visual Studio and without compilation?

Why SQL?

SQL is cool!

We decided to use the SQL language as the basis for the future system. All business logic is implemented in SQL. This is good for the following reasons:

Many people know SQL SQL allows you to extract data efficiently. Speed is a priority You do not need to recompile the project You can ensure that the developer can only know SQL to maintain and develop the project. It doesn't need other technologies to develop the system. Proper clean SQL is a fast system. We don't need to use any layers like Entity Framework or LINQ that create bad SQL code.

The client does nothing

with his own hands

Of course, you can argue that not every client can do something on SQL. But this is not required from the client . He has a familiar office with its typical simple operations. By experience, everything that concerns changes in the system is better done by specialists. The client does not need to delve into the technical details of the system.

95%development is a typical routine

95% of the time, the developer doesn't create anything new. The developer makes some forms, tables, implements button operation. We made it so that he only needs to think about key points, such as data structure and business logic. The system takes care of everything else, which significantly reduces development time and risk of making an error.

The creation of standard elements
speeded up by 7 times!

We identified the basic development needs and found opportunities to change the behavior of the component and we implemented it! As a result, the development time of any table or form has been reduced by more than 5-7 times! If earlier the implementation of the table could take 5-7 hours, now it is possible do it in less than 1.5 hours.

Independent development

A more advanced customer who knows and loves the SQL language can independently determine how to evolve the system for their needs. There is documentation for all components and the system as a whole. If you want to actively participate in the development of your system, you can do it. You only need to know SQL and the basics of Bootstrap 4 layout.

About universalism

Universal database-slow,
difficult to maintain, errors

An extremely important point is that we do not use a universal database, because this will eventually affect the performance, usability, and speed of development. Аnd complexity results in errors.

The idea of a universal database structure is very attractive because it is immutable and does not require writing code for a specific project. But 'ready-made' code is difficult to maintain, because it is usually very complex and has many errors. We want the code to be as simple as possible and easy to change to meet the project's requirements. And so the base in the project should be adapted to the project as much as possible.

And the second is the speed of data processing. The universal structure complicates the application optimization techniques (indexes, type restrictions, etc.). If it works slowly, then you can assume that it doesn't work.

You have to pay for everything

A universal solution is a big decision and the possible problems of optimization

In General , what we have now

1. Development speed has increased due to the use of standard components and ready-made subsystems (many related components with ready-made SQL). 2. You don't need to have a team of 5-10 people to run a project. 2 people on the project can handle the creation of large systems. 3. The requirements for competencies have decreased. In fact, you only need to know SQL and the Bootstrap 4 layout framework. 4. Less time is spent on debugging. Core elements improve with each project, and there are fewer entry points for possible problems in the code. 5. New ready-made subsystems are created and thus the sql code base is accumulated within the framework of ready-made solutions.

What about customization and development?

First level. The main development of the system is done on SQL. You can write almost any business logic, as well as create any table, form, or dashboard.

Second level. The use of JS and CSS. We immediately laid the possibility of customization in the system by giving additional dynamics to pages via JavaScript.

Third level. For complex non-typical cases, it is possible to create additional modules (classic custom development across the entire stack).

Integration with the outside world

The creation of any API as
XML/JSON HTTPS on SQL

We have implemented the API system so that you can manage it via SQL. You create new API methods. You Implement business logic in SQL for these methods and return the result as JSON or XML.

If you need to integrate with a non-typical external system, such as accessing an external web service, then an additional module is developed for these needs of the project to order.

Our plans

Our main priority is to make the development process in the system as noise-proof as possible, so that minimize the risk of making errors in the code. To do this, we enter markup snippets, standard blocks and checking the correctness of the data.

Typical solutions
speed up the project

The second important area is the creation of standard solutions. In fact, a typical solution is a big one a piece of SQL code that implements the business logic of an entire project subsystem as related components and pages.

And third, integration with the most important external systems: payment gateways, geolocation services, accounting, logistics systems, etc.

That's all for now. If you are interested in our approach to development, or you have questions about system, please write to info@web-automation.ru

I have a project idea. What should I do with it?
Fill out the form at the link to start working on the concept of your project. As a result, you will receive a structured description of the main aspects of your project.