Front/Back: a trap for the uninitiated
Watch out for the trap! We can speak of front-end or back-end development by referring to the technology respectively on the browser or on the webserver. But we can also talk about front-office or back-office. And, in this case, a distinction is made between user populations: the front office addressing visitors to a site and the back office addressing managers.
What is the difference between a framework and a library?
A framework is not a library! If the amalgamation is quite easy to make between these two terms, it is quite simply because in most cases, a framework includes a
or several bookstores.
So, if a library can be compared to a set of functionalities, a framework can be seen as the complete structure of a project! So the developer will call a library to have specific functionalities. For example, our Gotenberg open source library can transform any HTML page into a PDF document.
Conversely, a framework will make it possible to structure the code for the developer by managing many aspects such as security for example. The difference between a framework and a library is therefore called “Inversion of Control (IOC)” which means in concrete terms that a framework “controls” the code of a developer while a library is “controlled” by the code. from a developer.
Among the most famous frameworks we find Symfony or Laravel (PHP), Angular (Javascript), Django (Python), Ruby on Rails (Ruby), … And it works for all programming languages!
Client/server or 3-tier architecture
Thin client architectures – or 3 (N) third-party architecture – are often opposed to client-server architectures – or thick clients. We speak of a thick client when the user’s equipment is used for processing, while we speak of a thin client when all processing is done remotely (on a web server for example).
A very long time ago, network speeds, as well as server resources, were low (in the 80s and 90s). Part of the processing was therefore transferred to the clients (users’ PCs). Since then, with the improvement in the capabilities of browsers and internet connections, thin client architectures have become essential. Today, we are going back a bit with treatments that are carried out on the devices (hardware) of users using browsers or mobile operating systems. We are trying to improve performance or alleviate a possible network deficiency.
Sometimes, by extension or ease, we also speak of 3-tier architecture to refer to the different physical components of the solution: the terminal (web browser or phone), the webserver, and the data server.
The MVC design pattern
There are programming problems that come up so often that we have created good practices (which solve these problems) that we have gathered under the name of design pattern. The MVC or Model-View-Controller design pattern is one of the most important. This is a pattern that separates the logic of the code into three parts in order to clarify the design of developments:
- The Controller manages the sequence of pages, URLs, etc. (the PHP code that queries the model and returns the elements to be displayed to the view),
- The Model manages business logic and data (SQL queries),
- The View displays the page (the HTML code and some very simple,
- PHP loops and conditions, for example, to display lists).