White Book
Do You Speak Technique?
In this guide, learn about:
- Methodology and project approaches
- Fundamental of technical architecture
- The most traditional Stacks
- The different databases
- Data exchange by API
- Mobile and cross-platform technologies
- And even more technique! Cache, indexing engine, security, ...
Introduction
The developers have come up with a jargon that is often airtight for laymen … So if you are in contact with developers and sometimes feel lost, that’s okay. Every business has its own codes that this white paper proposes to decipher.
We hope that once you have read this document, you can attend a technical meeting without being deeply bored or feeling overwhelmed! With a little effort (and this document), you can start a discussion without complexity.
About this white paper
This white paper is part of a series “Understanding Tech” which aims to make as many people as possible understand the main technical concepts. The previous version has been downloaded over 2,000 times since its launch in 2016! Thanks to all the readers of this white paper who gave us feedback or offered ideas. Your contribution is precious!
This version has been improved to clarify the main technical stacks (you will discover what is behind this barbaric term in this document) and to update the mobile part.
It is aimed at all digital players who do not know the technique: product owner, project manager, designer, UX, CIO, innovation manager. In short, all those who wish to understand what is at stake in the digital projects of companies such as the development of a new web platform project, a mobile application, etc.
Fundamentals of technical architecture
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).