Les temps sont durs ?

  • Le système est complexe ?
  • Développements de plus en plus lents ?
  • Problèmes de qualité ?
  • Les performances ne sont pas au rendez-vous ?

Votre partenaire dans les difficultés !

Nicolas Raynaud
Consultant Indépendant
Spécialisé en Java
Sur devis ou à la journée
http://www.linkedin.com/in/nicolasraynaud
consulting@nraynaud.com
+33 6 71 43 43 15

Développements complexes


Formation des équipes à certaines techniques de programmations destinées aux algorithmes complexes (programmation dynamique, transformation de graphes, comparaison de complexité). Déplacement d'un calcul du bureau vers le "Cloud".
Expériences : calcul du plus court chemin dans un arbre de défaillance, génération automatique de tests à partir d'un modèle.


Formation à la construction de compilateurs, à la création et manipulation de langages.
Exemples de réalisations : développement d'un lecteur de fichiers GDS et de compilateurs B et OCL.

Formation à la testabilité, à l'architecture émergente, aux processus légers.

Refactoring à grande échelle


Découpage d'un projet en modules, définition des interfaces, découplage, formation de l'équipe à ces techniques. Réduction du code. Introduction des techniques et outil du "Lean".
Exemples de réalisations : division par 5 de la taille du code d'une application, découpage d'une application monolithique en 36 sous-modules avec dépendances inversées.

Performance du code


Détection et suppression des passages inutilement lents dans le code. Audit des performances du système. Formation à l'utilisation d'un profiler, formation à la gestion de la mémoire, à l'exécution des machines virtuelles.
Quelques anomalies détectées au cours d'interventions : 
  • thread synchronisés avec un sleep() de 0,1s -> temps de passage des tests réduit de 86min à 6min après usage de techniques standard.
  • BufferedReader.readline() sur une ligne de 110Mo qui était conservée en mémoire pendant tout un traitement
  • des "fuites" de mémoire par des collections statiques