En finir avec les NullPointerExceptions en Java grâce à Optional

Une des erreurs que la JVM doit lever le plus souvent lors de l’exécution d’un programme Java est très certainement la NullPointerException.

L’origine de cette erreur d’exécution est très simple. Lorsqu’on manipule un objet d’un type donné, on sait qu’il peut être compatible avec ce type (lui-même ou un type fils) ou null. Lorsque qu’il s’agit de null, il suffit d’accéder à une propriété (attribut ou méthode) de l’objet en question, qui en fait n’existe pas, pour engendrer cette fameuse NullPointerException. Rappelons que cette erreur d’exécution existe dans la plupart des langages. En C ou C++ cela provoque une erreur de segmentation et c’est encore plus gênant parce que cela provoque l’arrêt du processus. En Python cela conduit à AttributeError. Continuer la lecture de En finir avec les NullPointerExceptions en Java grâce à Optional

Un code de qualité

Au risque d’être un peu polémique, je vais essayer de définir ce qu’est, de mon point de vue, un code de qualité. Je tenterai ensuite d’expliquer quels sont pour moi les moyens qui permettent d’écrire du bon code.

Pour ceux qui ne sont pas d’accord avec moi, les commentaires sont ouverts pour en débattre ! Je précise simplement que je me place dans le contexte d’un code qui va vivre et être exploité en production, et pas un code de POC  destiné à être jeté. Continuer la lecture de Un code de qualité

Java 8 est arrivé

Le 18 mars dernier est sortie la version 8 du langage Java. Il s’agit d’une évolution majeure du langage. Même si elle s’est faite attendre, elle est la preuve que le développement de Java s’est vraiment remis en route après une longue période de stagnation avec notamment le rachat de Sun Microsystems par Oracle.

Continuer la lecture de Java 8 est arrivé

Python, un langage en demi teinte

J’ai depuis plusieurs mois l’occasion de coder régulièrement en Python. Je commence à être familier avec ce langage, ce qui m’a conduit à mener une réflexion à son sujet.

D’une manière générale, je pense que Python est un langage moderne et bien conçu. Continuer la lecture de Python, un langage en demi teinte

Analyse statique de code

L’actualité de ces derniers jours tombe à pic par rapport à ce que j’avais écrit à propos du typage statique et la sécurité que cela apporte. Une faille de sécurité a été corrigée par Apple, dans du code open-source, et elle a fait couler beaucoup d’encre car il s’agit d’une erreur assez grossière dans une section de code assez critique (couche SSL/TLS). Nous allons voir en quoi l’analyse statique de code aurait permis d’éviter tout cela. Continuer la lecture de Analyse statique de code