Créer un logiciel avec un cadre ou une bibliothèque : ce que les recruteurs de techniciens doivent savoir

26 février 2020
cadre ou bibliothèque

En tant que recruteur technique, il ne vous suffit plus de connaître uniquement les noms de certains langages de programmation - vous devez également comprendre les bases de la fabrication des logiciels.

Lorsqu'il s'agit de créer des logiciels de production, il y a deux facteurs très importants à prendre en compte : Le premier est que le développement d'applications devient de plus en plus complexe. Le second est que les programmeurs essaient toujours d'être plus efficaces et plus performants dans leur travail. Par conséquent, chaque équipe de programmeurs doit décider si elle veut (ou non) construire une application en utilisant soit un cadre logiciel, soit une bibliothèque logicielle (ou un certain nombre de bibliothèques). 

For the same reason, you need to be aware of which libraries and frameworks are relevant to a given post you’re recruiting for. In this way, you’ll be able to seek out developers with the best fit for that position. Not only that, but it’s obvious à presque tous les candidats lorsque les recruteurs n'ont pas fait leurs recherches. Fully understanding how langues de programmation, frameworks, and libraries work together will make you really stand out as a recruteur (ainsi que pour vous donner plus d'assurance lorsque vous parlez "tech") avec les candidats.

The technical difference between a framework vs library?

As you can see in the graphic below, the technical difference between a framework vs library is the question of who is in control of certain key actions during the course of creating software (and when the software actually runs).

When a software developer uses a feature from a library, the developer is in control – in other words, the developer’s code is in full control of the sequence of events. However, with a framework, the direction of control is inverted (this is known as Inversion du contrôle), car le cadre contrôle le développeur - dans ce cas, le cadre contrôle le code du développeur. Dans un sens, un cadre fonctionne de la même manière que le principe dit de Hollywood : "Ne nous appelez pas, nous vous appellerons".

cadre ou bibliothèqueSource : Fatos Morina

So what exactly are frameworks vs libraries? In particular, what is the difference between these two concepts?

Quel est l'objectif des cadres et des bibliothèques ?

As you probably know, application code written by programmers constantly changes as the application they are working on evolves and develops. However, frameworks and libraries are fundamental building blocks that do not change, and which are used as the structure of a particular application. Both libraries and frameworks have been developed by developers to prevent the need to carry out repetitive tasks over and over again. They can also provide some functionality without needing to implement that functionality from scratch.

Que sont les bibliothèques dans le codage ?

A library is essentially a set of functions that a developer can access (“call”). These days, a library is usually organized into so-called “classes”. The whole idea of such a library is that it contains code that is reusable for a particular purpose in a specific domain. In this way, a library simplifies specific tasks by providing a set of generic functionalities. These are then ready to be used in (“plugged into”) a software program. For example, most programming languages provide libraries for functionality, such as formatting a string or logging the exceptions that may occur during runtime. By using appropriate libraries, developers are able to reduce the amount of code which they need to write. At the same time, well-known libraries have good documentation and have been well tested. Therefore, in most cases, it is better for developers to use a library rather than go to the time and trouble of writing, testing and documenting their own code.

Qu'est-ce qu'un cadre dans la programmation ?

A framework can be described as an architecture that facilitates the implementation of software in a well-organized manner. Such a framework, therefore, embodies some pre-defined abstract design which is coupled with more built-in behavior than is the case with a library. In a framework, all the control flow is already in-place and there are a bunch of predefined hooks where the developers can place their own code. As a result, a framework defines a skeleton where the developers of a particular application define their own features to fill in the skeleton. In other words, you can think of a framework as a collection of patterns and libraries which help developers to build an application. On the downside, however, a framework also dictates the architecture of a given application. For example, it will define the overall structure, partitioning into classes, the key responsibilities of classes and how objects collaborate.

Quand est-il préférable d'utiliser un cadre plutôt qu'une bibliothèque ?

As with just about any real-life issue, it’s a complex question that is difficult to answer clearly in every case. For example, a team with many junior developers may be better off with a framework, which therefore enforces a certain structure and particular standards, dictating to the team how it should build software. On the other hand, an experienced team who is working on an application that’s not run-of-the-mill and has niche functionality might be better off using a library (or libraries) rather than using a framework, because this gives them greater flexibility and control. In more extreme cases, it might even be better for a particular team of developers to build software entirely from scratch, without using either a framework or libraries.

A quoi faut-il faire attention lors de la sélection des candidats qui ont besoin de connaître certains cadres ou bibliothèques

Voici une mini-FAQ sur la façon dont les langages de programmation, les cadres de travail et les bibliothèques logicielles sont utilisés dans le monde réel. Le cas échéant, nous avons également ajouté quelques suggestions sur les points à surveiller lors de la sélection des candidats.

  • Q : Les programmeurs peuvent-ils coder une application sans bibliothèque ni framework, mais en utilisant uniquement leur propre code écrit de toutes pièces ?

R : Oui, ils peuvent, mais cela prendra toujours plus de temps.

  • Q : Les programmeurs peuvent-ils coder une application à l'aide d'un framework et de leur propre code ?

R : Oui, ils peuvent.

  • Q : Les programmeurs peuvent-ils coder une application en utilisant soit une seule bibliothèque (ou plusieurs bibliothèques) plus une partie de leur propre code ?

R : Oui, ils peuvent.

  • Q : Les programmeurs peuvent-ils écrire leur propre bibliothèque ?

R : Oui, et la plupart des programmeurs le font dans le cadre de leur propre travail. C'est l'un des meilleurs moyens d'éviter toute forme de duplication, que tous les programmeurs n'aiment pas. Les développeurs décident parfois de mettre à disposition des bibliothèques communautaires qui se sont révélées particulièrement utiles. En tant que recruteur, il vaut la peine de demander aux candidats s'ils ont apporté de telles contributions à l'open-source.

  • Q : Les programmeurs peuvent-ils coder une application en utilisant un framework plus une bibliothèque (ou plusieurs bibliothèques) plus leur propre code ?

R : Oui, ils peuvent. Si une équipe de développeurs est déjà familiarisée avec un cadre et des bibliothèques pertinentes, et que ce cadre particulier correspond bien au domaine dans lequel le nouveau logiciel fonctionnera, alors cette approche sera probablement la plus efficace et la plus rentable. Cela signifie que, lors du recrutement, vous recherchez des développeurs qui sont déjà familiers avec les cadres et les bibliothèques que votre équipe utilise actuellement.

  • Q : Est-il possible qu'une bibliothèque devienne obsolète ?

R : Oui, mais il est peu probable que cela arrive à une bibliothèque bien connue qui offre des fonctionnalités importantes.

  • Q : Est-il possible qu'un cadre devienne obsolète ?

R : Oui, et c'est l'un des inconvénients potentiels de l'utilisation d'un cadre. Les cadres vont et viennent, et même si un cadre est populaire pendant longtemps, tout cadre peut changer radicalement d'une version majeure à une autre. Bien sûr, les créateurs et les responsables des frameworks populaires essaient de limiter ces changements, mais cela peut arriver et arrive. Vous devriez essayer de vous tenir au courant, au moins, des changements majeurs dans les cadres utilisés par votre équipe.

  • Q : Les programmeurs peuvent-ils créer leur propre cadre ?

R : Oui. Après qu'une équipe de programmeurs a terminé la création d'un nouveau type de logiciel, il arrive assez souvent que, sur la base de leur expérience particulière, ils créent ensuite un cadre conçu pour permettre de créer un type de logiciel similaire d'une manière nettement plus efficace et plus rentable. C'est une bonne idée d'examiner les CV pour voir si les candidats ont eu une telle expérience.

Conclusion

To reiterate, as a technical recruiter, it’s very important that you screen candidates not only in terms of programming languages, but also in terms of frameworks and libraries.

We know that some of the technical language used to talk about programming languages, software frameworks and libraries can be confusing. If you have any doubts, we recommend that you take a look at the glossary which we have prepared specially for this purpose: https://devskiller.com/glossary-it-terms-tech-recruiters/.

Partager le poste

C'est plus qu'un simple bulletin d'information

Recevez des informations utiles directement dans votre boîte de réception et apprenez-en davantage sur l'embauche des techniciens.

Vérifier et développer les compétences de codage de manière transparente.

Voir les produits DevSkiller en action.

Certifications de sécurité et conformité. Nous veillons à ce que vos données soient sûres et sécurisées.