Résultats

Il y a 4 mois

Docteur, j’ai commité 8 Go dans mon Git. C’est grave ?

Dans cet article, nous allons voir les conséquences de commiter de trop gros fichiers sur un dépôt Git et surtout une solution pour y remédier. Histoire Derrière ce titre délibérément provocateur se cache une situation réelle que nous avons vécue sur un projet de développement d’une Plateforme Data Science pour une grande entreprise pharmaceutique française....

Publié par Oleksandr Slynko

Il y a 5 mois

Java est sur le point de devenir pauseless (Z Garbage Collector)

Introduction Depuis Java 11, il y avait une fonctionnalité expérimentale qui est récemment devenue prête pour la production dans la 15e version de Java. Cette fonctionnalité mérite plus d’attention aujourd’hui, on souhaite donc la souligner. La version contient un garbage collector ultra-rapide, ZGC, qui est développé par Oracle et qui promet des temps de pause...

Publié par Bastien Bonnet

Il y a 7 mois

Les exceptions, mauvaise solution pour la gestion des erreurs dans une application

En programmation, les exceptions représentent des anomalies auxquelles il est possible de répondre par un traitement spécifique qui sera déclenché à la détection. L’ensemble constitue un système de gestion des exceptions. Dans cet article, nous prendrons pour référence les exceptions telles que l’on peut les trouver dans le langage Java, mais les points mentionnés restent...

Publié par Lionel Guez, Kevin Archet

Il y a 8 mois

GraalVM – Native-image par l’exemple

Lors d’un précédent article, nous avons vu en quoi consiste GraalVM et son apport à l’écosystème Java. Une des fonctionnalités les plus prometteuses de GraalVM est la génération d’image native. En effet, à l’aide de SubstrateVM, le code Java peut désormais être compilé directement vers du binaire natif, là où la tradition du monde Java...

Publié par Kevin Archet, Lionel Guez

Il y a 9 mois

GraalVM – Tour d’horizon

Introduction GraalVM est une machine virtuelle universelle développée par Oracle. Sortie en 2018, elle n’en reste pas moins dans une phase de développement très active et n’a d’ailleurs connu sa première version LTS (Long-Term Support) que fin 2019. Cette machine virtuelle comporte deux principales particularités : elle est polyglotte et supporte ainsi plusieurs langages en...

Publié par Daniel Chesters

Il y a 10 mois

Pépite : activer les fonctionnalités preview de Java dans un projet Maven

Introduction Dans le cadre de mes essais des nouvelles fonctionnalités de Java (tel que les records ou les classes scellées), il m’a été nécessaire de devoir activer les fonctionnalités disponibles en avant-première via l’option --enable-preview lors de la compilation et de l’exécution. Le but de cet article est de montrer comment il est possible d’avoir...

Publié par Romain Ardiet

Il y a 10 mois

Packaging Python : déploiement et hébergement

Nous avons vu dans un premier article consacré à setup.py et setuptools comment générer des archives distribuables de notre bibliothèque, nous allons voir maintenant comment les publier sur https://pypi.org/, le dépôt central des bibliothèques Python. La procédure pourra s’appliquer sur n’importe quel hébergement de paquets Python, y compris privé, j’y reviendrai par la suite. Twine Finalisation...

Publié par Daniel Chesters

Il y a 11 mois

Introduction au Sealed Classes de Java 15

Introduction Le but de cet article est de présenter les sealed classes (que je nommerais dans la suite de l’article classes scellées) prévu dans Java 15. Pour information, cette fonctionnalité est disponible en avant-première, ce qui nécessite d’utiliser l’option --enable-preview, et des évolutions majeures peuvent survenir dans les prochaines versions de Java. De plus, cette...

Publié par Yassir Sennoun

Il y a 1 an

Pourquoi et comment développer sa plateforme IoT avec l’approche Cloud Native ?

Une plateforme IoT est caractérisée par des problématiques de gestion d’équipements hétérogènes, de traitements et de stockage de grandes masses de données. Par conséquent, il est nécessaire de concevoir une plateforme à partir d’une architecture évolutive et flexible. Certaines entreprises optent pour une architecture monolithique qui n’est pas adaptée aux problématiques précédentes. Cet article vous...

Publié par Édouard Siha

Il y a 1 an

Bien représenter le temps en Java

Représenter la mesure physique du temps dans du logiciel, quel que soit le langage de programmation, est souvent mal vécu par les développeurs. Les conversions entre UTC et l’heure locale sont sources de douleur, d’incompréhension et de problèmes plus obscurs les uns que les autres. Il en va de même pour les tests unitaires faisant...

Il y a 1 an

Asynchronisme en Java : passé, présent et future de la plateforme (partie 2)

Dans mon article pr écédent, nous avons découvert les principales fonctionnalités proposées par Java depuis la première version du langage jusqu’à la version 7. Focalisons-nous sur des versions récentes de Java : Java 8 : la programmation fonctionnelle fait « coucou » Comme vous le savez, la version 8 a généré une révolution au niveau du langage...

Publié par Yassir Sennoun

Il y a 1 an

Les fondamentaux de Kubernetes en 5 minutes

Kubernetes est une des technologies les plus en vogue en ce moment. À l‘origine projet Open Source de Google, son succès est tel qu’il est désormais proposé en tant que service par tous les fournisseurs de cloud. Même s’il y a une pléthore d’articles et de vidéos sur ce sujet, il n’est pas simple de...

Publié par Benjamin Lacroix

Il y a 1 an

Utiliser Terraform pour configurer l’accès de GKE à Cloud SQL

Nous avons comme bonne pratique d’utiliser de l’infra-as-code, notamment via Terraform lorsqu’il s’agit de GCP. Via une seule commande l’infrastructure complète du projet est créée, détruite ou mise à jour. Voyons dans cet article comment créer un cluster GKE, une base de données Cloud SQL Postgres et comment sécuriser l’accès de nos applications à l’instance...

Publié par Romain Ardiet

Il y a 1 an

Packaging Python : setup.py et setuptools

Bien que Python soit aujourd’hui extrêmement populaire il y a une facette de celui-ci qui semble toujours peu maitrisée par les développeurs qui l’utilisent : le packaging de code. Hors le packaging est une étape importante lorsque l’on veut partager et réutiliser du code sans avoir à le dupliquer dans chacun de nos projets. Nous...

Publié par Daniel Chesters

Il y a 1 an

Introduction au Record de Java 14

Avertissement Cette fonctionnalité est disponible en avant-première, ce qui nécessite d’utiliser l’option --enable-preview et que des évolutions majeures peuvent survenir dans les prochaines versions de Java. Qu’est-ce que c’est un record ? the state, the whole state, and nothing but the state Un record est une forme restrictive de classe qui à pour but de...

Publié par Thomas Champion

Il y a 1 an

Comment garder son projet à jour quand le dépôt Git est inaccessible

Introduction C’est notre projet La solution magique Mettre à jour son dépôt local Pousser une branche de feature sur le dépôt distant Travailler de manière collaborative Conclusion Introduction En ces jours de confinement, la majorité des développeurs a recours au télétravail. Fort heureusement, de nombreuses solutions en ligne existent pour versionner, construire et déployer les...

Il y a 1 an

Asynchronisme en Java : passé, présent et future de la plateforme (partie 1)

Tous les langages de programmation proposent des solutions pour gérer l’asynchronisme et le langage Java n’est pas une Exception. Au fil des années, les architectes du langage ont ajouté des nouveaux outils et frameworks pour permettre aux développeurs, comme nous, de mieux exploiter le niveau de parallélisme des processeurs modernes. Dans cet article, je vous...

Publié par Simone Civetta

Il y a 1 an

Platform-Specific implementations in Kotlin Multiplatform

Photo by Devon Rogers on Unsplash In our last article, we covered how to structure your Kotlin project in order to support the Multiplatform features. However, in order to share portions of code between platforms and to define platform-specific implementations, we need to leverage some additional configurations and some interesting language features which we’re going to show in...

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.