One of the biggest milestones for the front-end changes is the emergence and popularity of Node JS (including common js and npm) that were born in 2009. The importance of the front-end domain is not just that the front-end can quickly write servers with js. Personally think that its biggest contribution is the front-end engineering of commonjs, npm and its convenient development experience. It makes the front-end start to develop from a slash-and-burn and traditional software engineering in a way that is close to the traditional enterprise application development model.
Previously, front-end development lacked effective tools and standards for resource references, dependency management, and module specifications. However, after Node JS became popular, package-based and npm-based package deployment and dependency management became mainstream (similar to Java’s maven system) was born. A variety of cli tools based on Node JS development auxiliary front-end development (such as grunt, gulp), npm is currently the world’s largest package management warehouse, and become the front-end project package management facts. The emergence of webpack makes the deployment of front-end code easier so that the front-end can publish the application in the form of a java jar package, regardless of the type of resources in the project.
Serverless Concept and Front End Relationship
So why is the next idea that has a big impact on the front-end technology field is serverless? In fact, despite the word serverless Amazon it’s been less than a few years old, but this idea is not an explosive new idea. In the early days, when cdn was not popular, web engineers would pass js resources and view files (which may be static or dynamic). Server, at that time, the front end needs to care about the server, but the popularity of cdn and return source policies, the large-scale use of engineering and building systems, so that the front end can quickly throw a js or static file to the cdn node, through the source mechanism (cdn Back to the source of a dynamic service) semi-dynamic view layer rendering is also possible in this whole process the front-end development does not need to care about any server knowledge, do not know how many nodes cdn, how to do load balancing, do gslb, also Do not need to know how much qps, a cdn can put a variety of business development resources, it can be said that cdn is the pioneer of the serverless concept.
Back to application deployment, in the period when Node JS was just popular in the past few years the developers have realized that application and machine deployment and operation and maintenance costs will be a problem for the business side. Some containerized ideas have emerged, such as cbu in 15 years. Naga, in this naga container, businesslogic is a plug-in, the container is responsible for the routing of the request, load and stability management, the business side only needs to write and upload the most direct business code, for the business side is to achieve the serverless concept, because the naga maintainer Help you solve the problem of deployment and operation and maintenance.
Let’s talk about the front-end page-building system and the bff layer, whether it is a variety of building systems (such as zebra, building block, TMS), or graphQl-based platform, or quickly write api gateway products through web ide – such as cbu mbox, let business development only care about businesslogic. There is no need to care about the deployment of operation and maintenance knowledge, they reflect the concept of serverless to some extent.
How Serverless is going to Affect Front End?
The front end has already been associated with serverless, but many people have not yet Perception Next, the serverless display will have a far-reaching impact on the front end, mainly in three aspects.
At the forefront, the front end is the refinement of the social division of labor, which originated around 2007. Before that, there was no special front-end development role, usually called web engineer or website engineer. Most of the early web pages were server rendering. Using asp, php, jsp and other server page technologies, js is just one of the small skills that web engineers need to master, but with the development of web 2.0 and the Internet, mobile Internet, and e-commerce, specialized people need to focus on writing very well. Good compatibility and experience of the UI, so gradually developed a front-end engineer focused on the browser and mobile.
However, the front-end technology field has gradually stabilized. With more than ten years of development, various out-of-the-box libraries, vertical solutions, and engineering methods are at your fingertips. Even some auxiliary tools have emerged to generate UI code for designers’ visual drafts. The front end can be confident and write UI and business at very low cost logic. Instead of spending a lot of effort on selection, wheeling, vision reduction, processing compatibility, performance optimization, debugging and deployment, the synergy cost caused by the separation of front and rear work types is magnified because of the separation of roles at the front and rear ends. In the case of the back end, the back end will often act as a bff layer. For example, the front end presentation layer encapsulates various api gateways, and often waits for each other and coordinates the protocol. The bff layer is usually only some data processing, and other roles. After a short period of training, you can get started quickly, so the front end has been trying to access the bff layer on the server side.
In the 15 years of the front-end to promote the use of Node JS to deploy applications, there are also many Node JS frameworks inside and outside, such as the industry’s express, in the production environment, including the system for buyers, businesses and internal staff, there are many used. Nodejs, but by 2019 this year, let’s review it and find that this number has not exceeded expectations.
The reason for this phenomenon, as a Node.js Development Company we believe that in the end the front-end lack of server knowledge caused by the division of labor is too small while Node JS itself is the server technology, essentially the problem that the server has to face is no different from java, the existing There are few people who can work on the front-end jd. There are few people who can work on the server. Unless the Node JS talents are specially recruited, the long-term operation of the server service will expose many problems, such as slow interface, process core, cpu, memory leak, etc. Load balancing, expansion, and contraction, high and low latency, most of the front end does not have these experiences.
Cloud Computing: The essence is to let business development focus on the businesslogic. The hardware and software facilities under the business are purchased on demand, out of the box, and the serverless concept and related technologies will make developers no longer need to care about the application and machine problems, even if the traffic can not support Concerned, it can automatically expand and shrink, so the future operation costs of web developers will be greatly reduced, the front end can also be involved in the development of the bff layer, and the back end can focus on data processing, businesslogic with the algorithm.
This change is in line with the background of R&D efficiency. The future cloud facilities will be very thick, very professional and stable, and front-end developers can quickly and cost-effectively build a business on cloud facilities. Logic Front end and front end of the server (for the entire request link, the front end is relative, as long as the role closer to the customer request can be called the front end), the division of labor will be less clear, the front end of the previous browser will Gradually taking part in the server-side access layer and the bff layer, returning to the original, returning to the role of the web development engineer in history, this is the biggest change to the front end.
Of course, serverless technology allows the front end to return to the traditional web layer that does not mean that the front end does not need to master the server knowledge, master operating system Kernel and network programming knowledge will still help you write high-performance, highly available business applications.