In the development of modern websites or web applications, two inseparable parts are used. These are the frontend and backend, which act as the stage and backstage, respectively. Separate developers usually handle their creation, but in small projects, full-stack specialists who handle both may be involved.
Frontend developers create the interface that users interact with. Backend developers, on the other hand, are responsible for the internal side of the software. Universal specialists who handle both frontend and backend simultaneously are called full-stack developers.
The operation of modern websites or web applications can also be explained using the analogy of a car. In this case, the frontend represents the vehicle's cabin with control elements for the driver. The engine, transmission, and other internal elements take on the role of the backend.
Users typically do not know how the engine is built and do not see how it works, but they understand what needs to be done to start it. They use the steering wheel to control the direction of movement, and pedals to change the speed of motion. Similarly, the frontend and backend interact with each other.
Frontend development involves creating the user interface for a modern website or web application. This is what the user sees when they navigate to a specific page on the internet using a browser; it's what they interact with and through which they receive information.
Before starting frontend development, the user interface design takes place, which ultimately facilitates all interactions. It's vital for it to be as convenient as possible, regardless of the specific device someone is interacting with.
To create a maximally convenient interface, UX analysts may be involved in addition to designers. They predict user behavior and their reaction to specific interface elements. The frontend developer's job is to bring all the conceived ideas to life.
Since the interface needs to receive data from somewhere and also save it somewhere, frontend developers also closely interact with backend specialists. On medium and large projects, different programmers or entire teams usually work on all of this.
Frontend development of a modern website or web application is usually based on three major parts. First, the user interface needs a clear structure. Second, it must look great and be convenient to use. Third, it would also benefit from interactive functionality.
HTML (HyperText Markup Language) is used to define the clear structure of the user interface. It's a markup language for web pages that allows you to define various headers, paragraphs, lists, tables, forms, image placement, and many other elements.
To describe the placement and appearance of each individual element on the page, CSS (Cascading Style Sheets) is used. It's a specialized language for styling the appearance of a document. Thanks to it, the browser understands the color of the element, the font parameters used, and exactly how something looks.
Backend development involves designing the business logic of a modern website or web application. In this case, the user's interaction with the internal data that is displayed in the interface is thought out, and that very under-the-hood space of the vehicle is worked on.
The backend works outside the computer used by the user in general, and beyond their browser in particular. It merely transmits to the frontend the information that needs to be displayed somewhere on the page and also accepts data that needs to be saved.
When a user enters their query in Google or another search engine, they are actually interacting with that service's frontend. But when they send a search query, the backend gets involved. It uses complex algorithms to ultimately display search results in the interface.
The backend operates on a server. It represents a similar computer that the user might use. It is located remotely, stores all the necessary information, responds to user requests, and saves all the data that users submit to it.
An important element of backend development is the data management system chosen based on the specific needs of a project. Besides MySQL, PostgreSQL, SQLite, MongoDB, and others are also used. There are more than enough options.
Lastly, deployment tools used in the backend also deserve separate attention. These might include CI/CD, Kubernetes (K8s), and Docker. Ultimately, backend developers not only write software code but also create the architecture of the future website or web application.
The interaction between frontend and backend occurs in a loop. The client-side of the application (frontend) sends user data to the server (backend), which, in turn, processes the received information and sends it back for display in the interface in an understandable form.
Frontend and backend are usually handled by different specialists, but it is very important for each of them to understand the key principles used by their colleagues. Even a user interface designer needs to understand backend principles to adequately assess the technical capabilities of a website or web application.
HTTP requests are used to exchange information between the frontend and backend, allowing data retrieval in JSON format. In the past, full page refresh was used to display new data on the page when using only HTML, CSS, and JS, but today this can be avoided.
In modern development, it is not only essential to understand programming languages for frontend and backend. It's also vital to have experience with contemporary frameworks that significantly accelerate the process of creating a website or web application. This includes React, Angular, Node, and other. But that's a different story.