Résultats
Il y a 2 ans
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....
Il y a 2 ans
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...
Il y a 2 ans
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...
Il y a 2 ans
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...
Il y a 2 ans
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...
Il y a 2 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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 3 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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...
Il y a 3 ans
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 3 ans
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...
Il y a 3 ans
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...