In the previous chapter, I talked about blueprint-driven development and its benefits. I've stated that what makes technology powerful is excellent tooling. So let's check it out.
Blueprints are driven by schemas.
As I've mentioned earlier, blueprints are configuration files. But we need to specify what can be configured. For example, we have to define that PostgreSQL integration has a hostname, port, database, username and password properties. Or that the text component has some content, alignment and format.
The structure of the blueprint is thus defined with a schema. And schemas are responsible for parsing, validating and compiling blueprints. And they have other meta-data associated like description and code samples. Together they provide a good base for validation and error reporting.
But there is one great benefit - we can generate an editor UI based on them. We've been using blueprints to build production apps for over a year, but one piece was still missing - an IDE-like editing experience.
Developing a web IDE
At the beginning of 2021, we've decided to start building an online IDE to support a blueprint-driven development. Maybe you remember Delphi, C++ Builder, or you have been developing desktop apps with Visual Studio or mobile apps with Android Studio or X Code. In those tools, you develop user interfaces visually with drag and drop. There are not many such integrated tools for building web apps. And that's what we wanted to address.
Visual editing, in general, is much faster, and you can easily cooperate with your colleagues or even customers. So our number one requirement was to have a visual editor for building UIs. But not a simple one. We wanted a visual editor with real-time editing and immediate preview. So it feels like you are building the app directly in the browser with all real data already present and all events fully working. The great benefit of this functionality is that you can test your UI while you are developing it without waiting for the code to recompile and for the browser to hot-load the update. This kind of experience is really a productivity booster because you can iterate much faster over your ideas.
Another must-have feature was debugging and testing. When you are integrating data from your back-end, you want to be sure it works correctly. And you want to know it before it's used somewhere else in the app. That's why we've added a tester feature that allows you to execute all data pipelines and test UIs with various parameters. Also, in order to have a good debugging experience, you must be able to see what's happening inside. And we've got you covered. In our IDE, you are able to look inside data flow and event execution, and you can see what UI components see.
The third major goal was to simplify DevOps. We wanted to build a one-click deployment experience. As a developer, you want to develop software, not deal with infrastructure. That's why we've built a complete cloud service that fully automates deployment, monitoring and scaling so you can focus more on the building.
And that's yes code!
Blueprints, reactive programming, visual editing, integrated testing, debugging, and one-click deployment all together represent a new way of programming called the "yes-code".
Why is it called yes-code? Well, as the opposite of the no-code trend. No-code and low-code are built mainly for citizen developers and IT analysts. Those technologies are very similar to yes-code - they have a visual editing experience and cloud services, but they try to shield their users from technical aspects. We believe in the opposite, in empowering professional developers.
Yes-code brings the next level of abstraction to software development while keeping it transparent and flexible enough to build highly complex applications.
Summary
Yes-code approach brings many benefits like eliminating boilerplate code, clear, predictable and scalable architecture and more productive development thanks to real-time visual editing and debugging.
As we don't use assembly code in most projects today, it's time to move on from traditional coding to a more productive way of developing software - to the next level of abstraction that eliminates repetitive work and re-uses existing code.
To get hands-on experience with blueprint-driven development and reactive programming, sign up for Adapptio today. It's free.