Do you know DSL technology? I think DSL is a bridge to adapt to the changing business logical rules and the stably need for the back system.
DSL，Domain Specific Language.
DSL, can it simplify the complexity of general development? Is there any ultimate weapon in the end? From DOS to the cloud, the software development is more and more complex.
Developing a visual web system, it very consume resource for customizing some business scenarios. Simple examples such as report center, each report needs to define data sources, presentation formats, and calculation rules, permissions, and so on.
Implement these features by the program to report developers is a good idea, A lot of commercial report products are also done. But I think the complexity of this system and the details that to consider are very complex.
We’ve used Oracle’s BIEE before, powerful but the user experience is very bad. The result is a long time to make a report. If you need to change something, most of the business logic needs the user who use the report tell to the programmer who develop the report.
Go round and begin again. Software for the public, even Microsoft Office, also needs the learning curve. And Microsoft does not customize function for common users, because Office has the powerful macro language VBA to do this.
We are going to make a new reporting system, but we do not provide a visual editing system, doesn’t provide the database connection tool, of course, there is no need for users to have too much knowledge of SQL.
Use DSL. Provide a simple description near the natural language, then by parsing, generate the reports that the user needs. The main work we have to develop is design the DSL and the parsing engine. Of course, a shell that contains the main function is still needed.
In fact, we have practiced on some report system, traditionally called Dashboard. From the concept to the present, it has been four years. In the latest project, through a slightly rough DSL, it is automated from the database to the interface. In the traditional sense, design web pages, cutting to html and css, and writing SQL are basically semi automated through the DSL. Thanks to my smart colleagues.
The next challenge is getting bigger. How to build a more easy to use DSL, used in more complex scenes, improve the efficiency of parsing and so on. We are not satisfied to only build web interface, stationary user features and connect database.
Easy to talk, these are many years of rethink on the design of a business system. The complexity and variability of the business logic of the system are the facts in addition to the familiar middleware and increasingly sophisticated and cloud technology.
Artificial intelligence can do too much other than face recognition, and the big data is not just the six letters of Hadoop. They are the real foundation of automation, reasoning and deduction.
Talk about it next time.