Retour au blog

L'open source chez Novaway

Un outil open source est un programme informatique dont le code source est utilisable, modifiable ou redistribuable par la communauté utilisatrice. Cela favorise l'échange des connaissances informatiques.

L’open source est omniprésent dans notre quotidien : dans les composants de nos ordinateurs, nos téléphones portables, dans les applications que nous utilisons chaque jour ou les langages de programmation utilisés pour concevoir ces dernières. Il est presque impossible aujourd’hui d’utiliser un composant ou un outil qui n’utilise pas une brique open source.

Rien que sur le web, près de 90% des serveurs utilisent un système d’exploitation type Linux. Les applications et sites sont propulsés, pour 84% d’entre eux, par des serveurs de type Apache ou Nginx, eux aussi open source. Les principales sociétés informatiques que sont Google, Amazon, Facebook, Apple et Microsoft utilisent, développent et contribuent à de nombreuses briques open source.

Utilisation de solutions open source pour développer outils et applications

Chez Novaway, nous développons essentiellement des applications et des outils informatiques basés sur des architectures LEMP dont les 4 composantes Linux, Nginx, MySQL et PHP sont open source. Pour gagner du temps et concevoir des projets de qualité, nous sommes amenés à utiliser de nombreuses solutions proposées par la communauté. Par exemple :

Contribution à des projets existants

Lorsque nous en avons l'occasion, nous contribuons à différents projets que nous introduisons dans nos développements. Ces contributions peuvent alors prendre plusieurs formes :

Développement de composants et bibliothèques open source

En plus de contribuer à des projets existants, nous développons également nos propres composants et bibliothèques afin de répondre à des problématiques qui nous sont propres. Cela peut avoir plusieurs objectifs :

  • Répondre à un besoin spécifique 
  • Extraire une problématique récurrente afin de pouvoir utiliser un module dans différents projets 
  • Acquérir de nouvelles connaissances 
  • Avoir la maîtrise technique et fonctionnelle complète d’un composant 
  • Pour le fun tout simplement

Exemples de projets publiés par Novaway

C’est donc dans cette optique que nous avons publié un certain nombre de projets open source, dont les principaux sont :

 

  • BehatCommonContext : lorsque nous développons nos applications, nous sommes amenés à écrire des tests fonctionnels. Pour cela, nous utilisons Behat qui nous permet de spécifier en langage courant les différents scénarios que nous souhaitons réaliser. Il nous arrive parfois de tester nos interfaces graphiques avec ces mêmes scénarios. Nous avons donc écrit un certain nombre de contextes Behat permettant de manipuler des listes de types Select2 ainsi que quelques autres fonctionnalités pour manipuler des champs de formulaires.

  • NovawayFeatureFlagBundle: il est de plus en plus fréquent d’avoir recours à des features flags pour activer ou désactiver des fonctionnalités au sein d’un projet. Ce composant a été extrait de nos différents développements pour gérer simplement de type d’information.

  • OpenGraph et NovawayOpenGraphBundle : nous sommes régulièrement amenés à ajouter des données de type OpenGraph sur les sites de nos clients. Pour faciliter la mise en place et la génération de ces données, nous avons écrit cette bibliothèque afin de nous aider dans ce travail. Nous avons également créé une intégration de ce composant dans le framework Symfony.

  • ElasticsearchClient : un client Elasticsearch permettant d’ajouter des fonctionnalités supplémentaires au client officiel.