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é

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

Une histoire de typage

Les premières lignes de code que j’ai écrites étaient en PHP. J’ai utilisé uniquement ce langage pendant mes premières années de développement sur PHPBoost. Puis, pour ma culture, j’ai suivi les cours de C de l’ex-Site du Zéro. Le passage d’un langage dynamique de haut niveau à un langage statique de bas niveau m’a fait un gros choc, et ma première réaction a été la suivante :

A quoi bon typer son code si ce n’est pas nécessaire pour que le programme fonctionne ? Continuer la lecture de Une histoire de typage