Many developers have learned SSH and Spring MVC, and some have learned it from.NET and Ruby on Rails. These frameworks are designed to be so robust that when we are young we are constantly impressed by the rigor of the design and the strong practical ability of the designers. But I now believe that these frameworks, no matter how robust, are no longer appropriate for an Internet architecture that is moving toward agile development. At least for the young, it still has a teaching effect, a sense of our own inadequacy.

China back-end development from 2014 to present, this period has taken place numerous innovations and huge changes. Firstly, on the interface, more and more developers began to use THE HTTP API in their website development since Roy Fielding’s PhD thesis in 2000 from Silicon Valley to Zhongguancun, China. Of course, due to historical sources, most enterprise web sites generally only use Get and Post interface specifications. Before that, most developers used RPC and SOAP as interface specifications. Some content sites use Webhooks to push content. As the demand for mobile development has increased in recent years, the H5 front-end has become a favorite for mobile development, but the usual HTTP API seems to be unsatisfactory. Since mobile phone chips are part of the Reduced Computing instruction set (RISC), the limitations of low power and memory make Restful apis a bit of a luxury. So Google’s developers redesigned RPC and released a new gRPC specification; Apache launched Thrift; Facebook engineers developed the GraphQL specification; Swagger’s project is independent of the Open API. I believe that these API specifications will be an important part of how we design software architectures in the future.

In terms of databases, there is no longer only one SQL database based on DBMS. Of course, these DBMS databases are still active in financial and banking systems, as well as in the daily work of some traditional enterprises. But that did not affect the challengers’ boundless creativity and extraordinary courage. There are many, many good NoSQL and NewSQL products out there. For example, Redis (KV key memory database), MongoDB (BSON document database), CouchDB (Erlang document database), ElasticSearch (Luence search Engine based database), and so on, refer to DB-Engine. The unique design of these databases allows us to move beyond optimizations for mysql and Postgresql, or reliance on enterprise services. For example, Visualize uses neo4J’s graph database (inferred from the front end interface) for human relations.

And in the architecture there is the familiar concept of microservices. I believe that my colleagues at BAT should know more about this architecture, because I have read many blogs and other articles written by them. Ford I used to be the leader of the American automobile industry with the Model T. At the same time, in order to cope with the huge market demand caused by the almost monopoly, it was necessary to adopt more efficient ways to improve the production of products. (P.S., those who have read history should know the dark history of Carnegie Factory, which is a classic case, I will not comment on it.) After some research, the assembly line model was introduced from the meat factory. The same is true of microservices, where functionality is low coupled and works in a centralized or decentralized fashion through calls between interfaces. This makes it relatively easy to develop, maintain, and test services, and to disassemble and replace them like parts, increasing the ability to scale horizontally and reducing the cost of vertical development.

Framework is still a good learning material for those of us who are new, but if we deliberately copy the framework, we will only be shackled. As a result, I tend to take time after each new technology to crystallize the knowledge and reimagine the design.

“The difference between design and research seems to be that the former is’ good ‘while the latter is’ new’. Good design doesn’t have to be ‘new’, it has to be ‘good’; Good research doesn’t have to be ‘good’, but it has to be ‘new’. I believe that these two paths will eventually intersect: only by applying ‘new’ ideas and theories will the best design ever be created; The best research comes from solving the puzzles that are worth solving — the ‘good’ ones.” — Paul Graham, The Hacker and the Painter