Comment ne plus avoir de NullPointerException en Java ?

NullPointerException : l’erreur la plus courante dans un programme Java. On est tous à un moment ou à un autre tombé sur cette exception. Malheureusement, ce n’est qu’en production à 4h du matin qu’elle arrive. On corrige donc le bug suivant :

MonObjet monObjet = null;
…
monObjet.maMethode(); // => NullPointerException

Par un rapide :

if(monObjet != null) {
  monObjet.maMethode();
}

Ce correctif est tout à fait honorable, mais pourquoi ne pas essayer de ne plus avoir aucune exception de ce type ?

Il existe plusieurs méthodes validées par le compilateur pour l’éviter, et donc avant la mise en production. Aucune n’est nouvelle, certaines controversés, mais elles sont toutes étudiées dans la suite de cet article.

Lire la suite

Analyser la qualité de votre code Groovy / Grails

Groovy / Grails est une bouffée d’air frais pour le programmeur Java, vous permettant d’écrire du code plus expressif et plus lisible, sans les lourdeurs de Java ou de JEE. Groovy vous simplifie également la vie en vous épargnant les écueils classiques du programmeur débutant ou distrait (BigDecimal, equals(), etc…). Ce n’est pas pour autant suffisant pour s’assurer de la qualité du code délivré et il vous faudra là aussi un ensemble de pratiques pour garder un code maintenable malgré les ajouts et évolutions.

Une de ces pratiques est l’analyse statique de votre code source via des métriques et des règles, et la surveillance de leur évolution d’une version sur l’autre, ou de manière plus ciblée pour une version particulière. Dans ce domaine le programmeur Java est sans aucun doute l’un des mieux outillés, avec des outils comme PMD, FindBugs, CheckStyle, XDepend, Sonar etc… Qu’en est-il en Groovy / Grails ? (Lire la suite…)

Innover sans technologie

Dans un article précédent, Yannick prônait l’innovation durable illustrée dans le secteur des Télécom, auquel un commentateur zélé répondait qu’icelle « n’est pas une question de technologie, ni d’architecture de SI », invoquant même le directeur marketing de Coca-Cola (lire).

Je suis assez tenté de rejoindre votre position, cher commentateur. D’autant plus que, chez OCTO, l’innovation que je vais vous présenter a démarré bien loin de l’IT.
Lire la suite

Les nouveautés du langage dans Java 7

La nouvelle version de Java 7 est en cours de préparation. Malgré le retard et les incertitudes sur le contenu, nous considérons que Java 7 constitue une opportunité intéressante pour le langage. Après un premier article consacré aux nouvelles librairies proposées pour Java 7, ce second article introductif vous propose de découvrir les nouvelles fonctionnalités du langage et de la JVM. Là encore, en cas de doute sur le contenu de la version finale, nous préciserons les réserves concernant une librairie ou une syntaxe en indiquant si l’exemple de code proposé compilait avec la version de prévisualisation 1.7.0-ea-b37.

Lire la suite